func GarbageCollect() error {
	return h5err(C.H5garbage_collect())
}
GarbageCollect collects garbage on all free-lists of all types.
package hdf5
import "C"
import (
	"fmt"
)
func init() {
	err := h5err(C.H5open())
	if err != nil {
		err_str := fmt.Sprintf("pb calling H5open(): %s", err)
		panic(err_str)
	}
}
type h5error struct {
	code int
}
func (h h5error) Error() string {
	return fmt.Sprintf("code %d", h.code)
}
func h5err(herr C.herr_t) error {
	if herr < 0 {
		return h5error{code: int(herr)}
	}
	return nil
}
func checkID(hid C.hid_t) error {
	if hid < 0 {
		return h5error{code: int(hid)}
	}
	return nil
}
func Close() error {
	return h5err(C.H5close())
}
type Version struct {
	Major   uint
	Minor   uint
	Release uint
}
func (v Version) String() string {
	return fmt.Sprintf("%d.%d.%d", v.Major, v.Minor, v.Release)
}
func LibVersion() (Version, error) {
	var maj, min, rel C.uint
	var v Version
	err := h5err(C.H5get_libversion(&maj, &min, &rel))
	if err == nil {
		v.Major = uint(maj)
		v.Minor = uint(min)
		v.Release = uint(rel)
	}
	return v, err
}