# BDIO.jl BDIO.jl is a package to write/read [BDIO](http://bdio.org) (**B**inary **D**ata **I**nput/**O**utput) files. The full documentation of the package is available via the usual [Julia `REPL` help mode](https://docs.julialang.org/en/v1/stdlib/REPL/#Help-mode-1) and online in [HTML format](https://ific.uv.es/~alramos/docs/BDIO/). ## Install The package in not in the general registry. Still one can use the package manager ```julia julia> import Pkg (v1.1) pkg> add https://gitlab.ift.uam-csic.es/alberto/bdio.jl ``` ## Configuration The package does not require much configuration, but it is recommended that the variables `user` and `host` contain reasonable values. Since `BDIO` is a light package, probably the easiest is to add to your `~/.julia/config/startup.jl` something like ```julia using BDIO BDIO_set_user("username") BDIO_set_host("laptop") ``` ## Example The test1.jl file in the `tests` directory gives a simple example on the usage of the package ```julia julia> using BDIO julia> BDIO_set_user("alberto") julia> BDIO_set_host("laptop") julia> fb = BDIO_open("foo.bdio", "w", "Test file") julia> BDIO_start_record!(fb, BDIO_BIN_INT64LE, 1, true) julia> BDIO_write!(fb, collect(1:1000)) julia> BDIO_write_hash!(fb) julia> BDIO_start_record!(fb, BDIO_BIN_F64LE, 2, true) julia> vec1 = randn(1000) julia> vec2 = similar(vec1) julia> vec2 .= .- vec1 julia> BDIO_write!(fb, vec1) julia> BDIO_write!(fb, vec2) julia> BDIO_write_hash!(fb) julia> BDIO_close!(fb) julia> fb2 = BDIO_open("foo.bdio", "r") julia> global isum = 0 julia> global fsum = 0.0 julia> while BDIO_seek!(fb2) julia> if BDIO_get_uinfo(fb2) == 1 julia> idt = similar(Array{Int64, 1}, 100) julia> for i = 1:10 julia> BDIO_read(fb2, idt) julia> global isum += sum(idt) julia> end julia> elseif BDIO_get_uinfo(fb2) == 2 julia> fdt = similar(Array{Float64, 1}, 100) julia> for i = 1:20 julia> BDIO_read(fb2, fdt) julia> global fsum += sum(fdt) julia> end julia> end julia> end julia> rm("foo.bdio", force=true) julia> ( (abs(fsum) < 1.0E-10) && ((2*isum - 1000*(1001)) == 0) ) ```