Commit 826ec549 authored by adelmann's avatar adelmann 🎗

rewriting for H5hut

parent b1e8e15b
......@@ -605,9 +605,9 @@ ac_includes_default="\
ac_subst_vars='am__EXEEXT_FALSE
am__EXEEXT_TRUE
LTLIBOBJS
LIBOBJS
AM_LDFLAGS
AM_CPPFLAGS
LIBOBJS
CXXCPP
EGREP
GREP
......@@ -1947,48 +1947,6 @@ $as_echo "$ac_res" >&6; }
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
} # ac_fn_cxx_check_type
# ac_fn_cxx_try_run LINENO
# ------------------------
# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
# that executables *can* be run.
ac_fn_cxx_try_run ()
{
as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
if { { ac_try="$ac_link"
case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_link") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
{ { case "(($ac_try" in
*\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
*) ac_try_echo=$ac_try;;
esac
eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
$as_echo "$ac_try_echo"; } >&5
(eval "$ac_try") 2>&5
ac_status=$?
$as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
test $ac_status = 0; }; }; then :
ac_retval=0
else
$as_echo "$as_me: program exited with status $ac_status" >&5
$as_echo "$as_me: failed program was:" >&5
sed 's/^/| /' conftest.$ac_ext >&5
ac_retval=$ac_status
fi
rm -rf conftest.dSYM conftest_ipa8_conftest.oo
eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
as_fn_set_status $ac_retval
} # ac_fn_cxx_try_run
cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
......@@ -4828,6 +4786,50 @@ else
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lH5hutC" >&5
$as_echo_n "checking for main in -lH5hutC... " >&6; }
if ${ac_cv_lib_H5hutC_main+:} false; then :
$as_echo_n "(cached) " >&6
else
ac_check_lib_save_LIBS=$LIBS
LIBS="-lH5hutC $LIBS"
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
int
main ()
{
return main ();
;
return 0;
}
_ACEOF
if ac_fn_c_try_link "$LINENO"; then :
ac_cv_lib_H5hutC_main=yes
else
ac_cv_lib_H5hutC_main=no
fi
rm -f core conftest.err conftest.$ac_objext \
conftest$ac_exeext conftest.$ac_ext
LIBS=$ac_check_lib_save_LIBS
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_H5hutC_main" >&5
$as_echo "$ac_cv_lib_H5hutC_main" >&6; }
if test "x$ac_cv_lib_H5hutC_main" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_LIBH5HUTC 1
_ACEOF
LIBS="-lH5hutC $LIBS"
else
as_fn_error $? "H5hut library not found!" "$LINENO" 5
fi
ac_ext=c
ac_cpp='$CPP $CPPFLAGS'
ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
......@@ -5211,73 +5213,7 @@ fi
# Checks for library functions.
for ac_header in stdlib.h
do :
ac_fn_cxx_check_header_mongrel "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$ac_includes_default"
if test "x$ac_cv_header_stdlib_h" = xyes; then :
cat >>confdefs.h <<_ACEOF
#define HAVE_STDLIB_H 1
_ACEOF
fi
done
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU libc compatible malloc" >&5
$as_echo_n "checking for GNU libc compatible malloc... " >&6; }
if ${ac_cv_func_malloc_0_nonnull+:} false; then :
$as_echo_n "(cached) " >&6
else
if test "$cross_compiling" = yes; then :
ac_cv_func_malloc_0_nonnull=no
else
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#if defined STDC_HEADERS || defined HAVE_STDLIB_H
# include <stdlib.h>
#else
char *malloc ();
#endif
int
main ()
{
return ! malloc (0);
;
return 0;
}
_ACEOF
if ac_fn_cxx_try_run "$LINENO"; then :
ac_cv_func_malloc_0_nonnull=yes
else
ac_cv_func_malloc_0_nonnull=no
fi
rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
conftest.$ac_objext conftest.beam conftest.$ac_ext
fi
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_malloc_0_nonnull" >&5
$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }
if test $ac_cv_func_malloc_0_nonnull = yes; then :
$as_echo "#define HAVE_MALLOC 1" >>confdefs.h
else
$as_echo "#define HAVE_MALLOC 0" >>confdefs.h
case " $LIBOBJS " in
*" malloc.$ac_objext "* ) ;;
*) LIBOBJS="$LIBOBJS malloc.$ac_objext"
;;
esac
$as_echo "#define malloc rpl_malloc" >>confdefs.h
fi
#AC_FUNC_MALLOC
CPPFLAGS=$CPPFLAGS" -m64 -mtune=k8"
LDFLAGS=$LDFLAGS" -lm"
......
......@@ -95,6 +95,14 @@ AC_LANG_PUSH(C)
[],
[AC_MSG_ERROR(H5hut library not found!)]
)
AC_CHECK_LIB(
[H5hutC],
[main],
[],
[AC_MSG_ERROR(H5hut library not found!)]
)
AC_LANG_POP
AC_LANG(C++)
......@@ -139,7 +147,7 @@ AC_C_CONST
AC_TYPE_SIZE_T
# Checks for library functions.
AC_FUNC_MALLOC
#AC_FUNC_MALLOC
CPPFLAGS=$CPPFLAGS" -m64 -mtune=k8"
LDFLAGS=$LDFLAGS" -lm"
......
......@@ -20,6 +20,7 @@
*
* \todo H5hut port
*/
#include <hdf5.h>
#include "H5hut.h"
......@@ -32,6 +33,8 @@
#include "optparse.hh"
#include <stdlib.h>
#ifdef USE_BOOST
#include <boost/any.hpp>
#endif
......@@ -61,17 +64,17 @@ typedef map<string, boost::any, StringCmp> StringAnyValueMap;
typedef map<string, int, StringCmp> StringIntMap;
typedef map<string, h5_int64_t, StringCmp> StringInt64Map;
h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num);
h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num);
h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num);
h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num);
#ifdef USE_BOOST
h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, StringAnyValueMap &FileAttributes, string AttrName,
h5_int64_t Type, h5_int64_t Num);
h5_int64_t Type, h5_size_t Num);
h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, StringAnyValueMap &FileAttributes, string AttrName,
h5_int64_t Type, h5_int64_t Num);
h5_int64_t Type, h5_size_t Num);
#endif
h5_int64_t copyStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num);
h5_int64_t copyStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num);
h5_int64_t copyDataset(h5_file_t* In, h5_file_t* Out, string SetName,
h5_int64_t Type, h5_float64_t* FloatArray, h5_int64_t* IntArray);
......@@ -127,6 +130,7 @@ int main(int argc, char **argv){
StringIntMap::iterator itName;
StringInt64Map::iterator itType;
StringInt64Map::iterator itNumType;
h5_int64_t NumParticles = 0;
h5_int64_t maxNumParticles = 0;
......@@ -140,8 +144,9 @@ int main(int argc, char **argv){
h5_int64_t Type;
h5_int64_t SetType;
h5_int64_t NumType;
h5_int64_t SetNum;
h5_size_t NumType;
h5_size_t SetNum;
int verbosity = 0;
h5_int64_t rc;
......@@ -308,7 +313,7 @@ int main(int argc, char **argv){
for (int i = 0; i < effNumInput; ++i)
{
H5InFile = H5OpenFile(InputFilenames[i].c_str(), H5_O_RDONLY, NULL);
H5InFile = H5OpenFile(InputFilenames[i].c_str(), H5_O_RDONLY, 0);
/**************************************************************\
* fix range if values are negative
......@@ -409,7 +414,7 @@ int main(int argc, char **argv){
for (int k = from[i]; k <= to[i]; ++k)
{
H5PartSetStep(H5InFile,k);
H5SetStep(H5InFile,k);
if (parser.get<bool>("intersect-datasets"))
{
......@@ -647,7 +652,7 @@ int main(int argc, char **argv){
}
H5OutFile = H5OpenFile(OutputFilename.c_str(), H5_O_WRONLY, NULL);
H5OutFile = H5OpenFile(OutputFilename.c_str(), H5_O_WRONLY, 0);
if (H5OutFile == NULL)
{
cerr << "ABORT: could not open '" << OutputFilename << "' for writing!" << endl;
......@@ -659,7 +664,7 @@ int main(int argc, char **argv){
for (int i = 0; i < effNumInput; ++i)
{
H5InFile = H5OpenFile(InputFilenames[i].c_str(), H5_O_RDONLY, NULL );
H5InFile = H5OpenFile(InputFilenames[i].c_str(), H5_O_RDONLY, 0);
H5SetStep(H5InFile,from[i]);
H5SetStep(H5OutFile,effStep);
......@@ -695,7 +700,7 @@ int main(int argc, char **argv){
h5_int64_t NumFileAttr = H5GetNumFileAttribs(H5InFile);
for (h5_int64_t l = 0; l < NumFileAttr; ++l)
{
H5PartGetFileAttribInfo(H5InFile, l, AttrName, MAX_LEN, &Type, &NumType);
H5GetFileAttribInfo(H5InFile, l, AttrName, MAX_LEN, &Type, &NumType);
if (i == 0)
{
#ifdef USE_BOOST
......@@ -770,7 +775,7 @@ int main(int argc, char **argv){
h5_int64_t NumStepAttr = H5GetNumStepAttribs(H5InFile);
for (h5_int64_t m = 0; m < NumStepAttr; ++m)
{
H5PartGetStepAttribInfo(H5InFile, m, StepAttrName, MAX_LEN, &Type, &NumType);
H5GetStepAttribInfo(H5InFile, m, StepAttrName, MAX_LEN, &Type, &NumType);
rc = copyStepAttribute(H5InFile, H5OutFile, string(StepAttrName), Type, NumType);
if (rc != H5_SUCCESS)
cerr << "WARNING: could not write step attribute '" << StepAttrName << "'" << endl;
......@@ -816,33 +821,33 @@ int main(int argc, char **argv){
delete[] to;
}
h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num)
h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num)
{
h5_int64_t rc;
if (Type == H5T_NATIVE_DOUBLE)
{
void *Attrib = (double*)malloc(sizeof(double)*Num);
rc = H5PartReadFileAttrib(In, AttrName.c_str(), (double*)Attrib);
rc = H5ReadFileAttribFloat64(In, AttrName.c_str(), (double*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteFileAttrib(Out, AttrName.c_str(), Type, (double*)Attrib, Num);
rc = H5WriteFileAttribFloat64(Out, AttrName.c_str(), (double*)Attrib, Num);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_CHAR)
{
void *Attrib = (char*)malloc(sizeof(char)*Num);
rc = H5ReadFileAttrib(In, AttrName.c_str(), (char*)Attrib);
rc = H5ReadFileAttribString(In, AttrName.c_str(), (char*)Attrib);
if (rc == H5_SUCCESS)
rc = H5WriteFileAttrib(Out, AttrName.c_str(), Type, (char*)Attrib, Num);
rc = H5WriteFileAttribString(Out, AttrName.c_str(), (char*)Attrib);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_INT64)
{
void *Attrib = (h5_int64_t*)malloc(sizeof(h5_int64_t)*Num);
rc = H5PartReadFileAttrib(In, AttrName.c_str(), (h5_int64_t*)Attrib);
rc = H5ReadFileAttribInt64(In, AttrName.c_str(), (h5_int64_t*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteFileAttrib(Out, AttrName.c_str(), Type, (h5_int64_t*)Attrib, Num);
rc = H5WriteFileAttribInt64(Out, AttrName.c_str(), (h5_int64_t*)Attrib, Num);
free(Attrib);
return rc;
}
......@@ -854,33 +859,33 @@ h5_int64_t copyFileAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5
}
h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num)
h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num)
{
h5_int64_t rc;
if (Type == H5T_NATIVE_DOUBLE)
{
void *Attrib = (double*)malloc(sizeof(double)*Num);
rc = H5PartReadFileAttrib(In, AttrName.c_str(), (double*)Attrib);
rc = H5ReadFileAttribFloat64(In, AttrName.c_str(), (double*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (double*)Attrib, Num);
rc = H5WriteStepAttribFloat64(Out, AttrName.c_str(), (double*)Attrib, Num);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_CHAR)
{
void *Attrib = (char*)malloc(sizeof(char)*Num);
rc = H5PartReadFileAttrib(In, AttrName.c_str(), (char*)Attrib);
rc = H5ReadFileAttribString(In, AttrName.c_str(), (char*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (char*)Attrib, Num);
rc = H5WriteStepAttribString(Out, AttrName.c_str(), (char*)Attrib);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_INT64)
{
void *Attrib = (h5_int64_t*)malloc(sizeof(h5_int64_t)*Num);
rc = H5PartReadFileAttrib(In, AttrName.c_str(), (h5_int64_t*)Attrib);
rc = H5ReadFileAttribInt64(In, AttrName.c_str(), (h5_int64_t*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (h5_int64_t*)Attrib, Num);
rc = H5WriteStepAttribInt64(Out, AttrName.c_str(), (h5_int64_t*)Attrib, Num);
free(Attrib);
return rc;
}
......@@ -891,33 +896,33 @@ h5_int64_t copyFileToStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrNam
}
}
h5_int64_t copyStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_int64_t Num)
h5_int64_t copyStepAttribute(h5_file_t* In, h5_file_t* Out, string AttrName, h5_int64_t Type, h5_size_t Num)
{
h5_int64_t rc;
if (Type == H5T_NATIVE_DOUBLE)
{
void* Attrib = (double*)malloc(sizeof(double)*Num);;
rc = H5PartReadStepAttrib(In, AttrName.c_str(), (double*)Attrib);
rc = H5ReadStepAttribFloat64(In, AttrName.c_str(), (double*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (double*)Attrib, Num);
rc = H5WriteStepAttribFloat64(Out, AttrName.c_str(), (double*)Attrib, Num);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_CHAR)
{
void* Attrib = (char*)malloc(sizeof(char)*Num);;
rc = H5PartReadStepAttrib(In, AttrName.c_str(), (char*)Attrib);
rc = H5ReadStepAttribString(In, AttrName.c_str(), (char*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (char*)Attrib, Num);
rc = H5WriteStepAttribString(Out, AttrName.c_str(), (char*)Attrib);
free(Attrib);
return rc;
}
else if (Type == H5T_NATIVE_INT64)
{
void* Attrib = (h5_int64_t*)malloc(sizeof(h5_int64_t)*Num);
rc = H5PartReadStepAttrib(In, AttrName.c_str(), (h5_int64_t*)Attrib);
rc = H5ReadStepAttribInt64(In, AttrName.c_str(), (h5_int64_t*)Attrib);
if (rc == H5_SUCCESS)
rc = H5PartWriteStepAttrib(Out, AttrName.c_str(), Type, (h5_int64_t*)Attrib, Num);
rc = H5WriteStepAttribInt64(Out, AttrName.c_str(), (h5_int64_t*)Attrib, Num);
free(Attrib);
return rc;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment