diff --git a/src/TPSA.jl b/src/TPSA.jl index de216bde..fddb8571 100644 --- a/src/TPSA.jl +++ b/src/TPSA.jl @@ -13,53 +13,5991 @@ const MAD_TPSA = :("libmad_tpsa") const MAD_TPSA_DEFAULT::Cuchar = 255 const MAD_TPSA_SAME::Cuchar = 254 +# ------------------------------------------------------------------------------------------ +# LOW LEVEL FUNCTIONS: """ - new_desc(nv::Integer, mo::UInt8)::Ptr{Desc{RTPSA,CTPSA}} +Variable type conversions: +"ord_t": "Cuchar", +"c_int": "Cint", +"c_num_t": "Cdouble", +"c_cpx_t": "ComplexF64", +"c_ssz_t": "Cint", +"c_idx_t": "Cint", +"c_ptr desc": "Ptr{Desc{RTPSA,CTPSA}}", +"c_ptr tpsa": "Ptr{RTPSA{Desc}}", +"c_ptr ctpsa": "Ptr{CTPSA{Desc}}" +""" + +""" + mad_mono_str(n::Cint, mono_a::Ptr{Cuchar}, s::Cstring)::Cint + +??? + +### Input +- `n` -- Monomial and string length +- `mono_a` -- Monomial +- `s` -- Monomial as string "[0-9]*" + +### Output +- `size` -- Adjusted size n if "\0" found +""" +function mad_mono_str(n::Cint, mono_a::Ptr{Cuchar}, s::Cstring)::Cint + size = @ccall MAD_TPSA.mad_mono_str(n::Cint, mono_a::Ptr{Cuchar}, s::Cstring)::Cint + return size +end + + +""" + mad_mono_fill!(n::Cint, mono_a::Ptr{Cuchar}, v::Cuchar) + +Fills the monomial mono_a with the value v. + +### Input +- `n` -- Monomial length +- `mono_a` -- Monomial +- `v` -- Value +""" +function mad_mono_fill!(n::Cint, mono_a::Ptr{Cuchar}, v::Cuchar) + @ccall MAD_TPSA.mad_mono_fill(n::Cint, mono_a::Ptr{Cuchar}, v::Cuchar)::Cvoid +end + + +""" + mad_mono_copy!(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + +Copies monomial mono_a to monomial mono_b. + +### Input +- `n` -- length of monomials +- `mono_a` -- source monomial +- `mono_r` -- destination monomial +""" +function mad_mono_copy!(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_copy(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar})::Cvoid +end + + +""" + mad_mono_rcopy!(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + +??? + +### Input +- `n` -- length of monomials +- `mono_a` -- source monomial +- `mono_r` -- destination monomial +""" +function mad_mono_rcopy!(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_rcopy(n::Cint, mono_a::Ptr{Cuchar}, mono_r::Ptr{Cuchar})::Cvoid +end + + +""" + mad_mono_min(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + +??? + +### Input +- `n` -- Length of monomial +- `mono_a` -- Monomial + +### Output +- `min` -- Minimum order of monomial +""" +function mad_mono_min(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + min = @ccall MAD_TPSA.mad_mono_min(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + return min +end + + +""" + mad_mono_max(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + +??? + +### Input +- `n` -- Monomial length +- `mono_a` -- Monomial + +### Output +- `max` -- Maximum order of monomial +""" +function mad_mono_max(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + max = @ccall MAD_TPSA.mad_mono_max(n::Cint, mono_a::Ptr{Cuchar})::Cuchar + return max +end + + +""" + mad_mono_ord(n::Cint, mono_a::Ptr{Cuchar})::Cint + +??? + +### Input +- `n` -- Monomial length +- `mono_a` -- Monomial + +### Output +- `ord` -- Order of monomial (sum) +""" +function mad_mono_ord(n::Cint, mono_a::Ptr{Cuchar})::Cint + ord = @ccall MAD_TPSA.mad_mono_ord(n::Cint, mono_a::Ptr{Cuchar})::Cint + return ord +end + + +""" + mad_mono_eq(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + +Checks if the monomial mono_a is equal to the monomial mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- True if the monomials are equal, false if otherwise +""" +function mad_mono_eq(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_mono_eq(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + return ret +end + + +""" + mad_mono_lt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + +Checks if monomial mono_a is less than monomial mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- True if mono_a < mono_b, false otherwise +""" +function mad_mono_lt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_mono_lt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + return ret +end + + +""" + mad_mono_gt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + +Checks if monomial mono_a is greater than monomial mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- True if mono_a > mono_b, false otherwise +""" +function mad_mono_gt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_mono_gt(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + return ret +end + +Che +""" + mad_mono_le(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + +Checks if monomial mono_a is less than or equal to monomial mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- True if mono_a <= mono_b, false otherwise +""" +function mad_mono_le(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_mono_le(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + return ret +end + + +""" + mad_mono_ge(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + +Checks if monomial mono_a is greater than or equal to monomial mono_b. + + ### Input + - `n` -- Length of monomials + - `mono_a` -- Monomial a + - `mono_b` -- Monomial b + + ### Output + - `ret` -- True if mono_a >= mono_b, false otherwise + """ +function mad_mono_ge(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_mono_ge(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cuchar + return ret +end + + +""" + mad_mono_cmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + +??? + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- First a[i]-b[i] != 0 +""" +function mad_mono_cmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + ret = @ccall MAD_TPSA.mad_mono_cmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + return ret +end + + +""" + mad_mono_rcmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + +Compare from end. ??? + +### Input +- `n` -- Length of monomials +- `mono_a` -- Monomial a +- `mono_b` -- Monomial b + +### Output +- `ret` -- First a[i]-b[i] != 0 +""" +function mad_mono_rcmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + ret = @ccall MAD_TPSA.mad_mono_rcmp(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar})::Cint + return ret +end + + +""" + mad_mono_add!(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + +Sets monomial mono_c = mono_a + mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Source monomial a +- `mono_b` -- Source monomial b +- `mono_r` -- Destination monomial, mono_c = mono_a + mono_b +""" +function mad_mono_add!(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_add(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar})::Cvoid +end + + +""" + mad_mono_sub!(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + +Sets monomial mono_c = mono_a - mono_b. + +### Input +- `n` -- Length of monomials +- `mono_a` -- Source monomial a +- `mono_b` -- Source monomial b +- `mono_r` -- Destination monomial, mono_c = mono_a - mono_b +""" +function mad_mono_sub!(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_sub(n::Cint, mono_a::Ptr{Cuchar}, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar})::Cvoid +end + + +""" + mad_mono_cat!(na::Cint, mono_a::Ptr{Cuchar}, nb::Cint, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + +Sets mono_c equal to the concatenation of the monomials mono_a and mono_b + +### Input +- `na` -- Length of mono_a +- `mono_a` -- Source monomial a +- `nb` -- Length of mono_b +- `mono_b` -- Source monomial b +- `mono_r` -- Destination monomial of concatenation of mono_a and mono_b (length na+nb) +""" +function mad_mono_cat!(na::Cint, mono_a::Ptr{Cuchar}, nb::Cint, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_cat(na::Cint, mono_a::Ptr{Cuchar}, nb::Cint, mono_b::Ptr{Cuchar}, mono_r::Ptr{Cuchar})::Cvoid +end + + +""" +Original Fortran subroutine: +n,mono_a,idxs +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: mono_a(*) ! src + integer(c_idx_t) :: idxs(*) ! index lookup: a[idxs[i]] is sorted by order +""" +""" + mad_mono_sort!(n::Cint, mono_a::Ptr{Cuchar}, idxs::Ptr{Cint}) + +??? + +### Input +- `n` -- Length of monomial +- `mono_a` -- Source monomial +- `idxs` -- Index lookup: a[idxs[i]] is sorted by order +""" +function mad_mono_sort!(n::Cint, mono_a::Ptr{Cuchar}, idxs::Ptr{Cint}) + @ccall MAD_TPSA.mad_mono_sort(n::Cint, mono_a::Ptr{Cuchar}, idxs::Ptr{Cint})::Cvoid +end + + +""" + mad_mono_print(n::Cint, mono_a::Ptr{Cuchar}) + +Prints the monomial to stdout. + +### Input +- `n` -- Length of monomial +- `mono_a` -- Source monomial to print to stdout +""" +function mad_mono_print(n::Cint, mono_a::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_mono_print(n::Cint, mono_a::Ptr{Cuchar})::Cvoid +end + + +""" +Original Fortran function: +nv,mo_ +bind(C) +! mo = max(1, mo) + import ; implicit none + type(c_ptr) :: desc ! descriptor + integer(c_int), value, intent(in) :: nv ! #vars + integer(c_ord_t), value, intent(in) :: mo_ ! order of tpsa, mo=max(1,mo_) +""" +""" + mad_desc_newv(nv::Cint, mo_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + +Creates a TPSA descriptor with the specified number of variables and maximum order. +The number of parameters is set to 0. + +### Input +- `nv` -- Number of variables in th +- `mo_` -- Maximum order of TPSA, mo_ = max(1, mo_) + +### Output +- `desc` -- Descriptor with the specified number of variables and maximum order +""" +function mad_desc_newv(nv::Cint, mo_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_desc_newv(nv::Cint, mo_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" + mad_desc_newvp(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + +Creates a TPSA descriptor with the specifed number of variables, maximum order, number of +parameters, and parameter order. + +### Input +- `nv` -- Number of variables +- `mo_` -- Maximum order of TPSA, mo_ = max(1, mo_) +- `np_` -- Number of parameters +- `po_` -- Order of parameters, po = max(1, po_) + +### Output +- `desc` -- Descriptor with the specified nv, mo, np, and po. +""" +function mad_desc_newvp(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_desc_newvp(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" + mad_desc_newvpo(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar, no_::Ptr{Cuchar})::Ptr{Desc{RTPSA,CTPSA}} + +Creates a TPSA descriptor with the specifed number of variables, maximum order, number of parameters, +parameter order, and individual variable/parameter orders specified in no. The first nv entries in no +correspond to the variables' orders and the next np entries correspond the parameters' orders. + +### Input +- `nv` -- Number of variables +- `mo_` -- Maximum order of TPSA (mo = max(no_)) +- `np_` -- Number of parameters +- `po_` -- Order of parameters +- `no_` -- Array of orders of variables and parameters + +### Output +- `desc` -- Descriptor with the specified nv, mo, np, po, no. +""" +function mad_desc_newvpo(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar, no_::Ptr{Cuchar})::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_desc_newvpo(nv::Cint, mo_::Cuchar, np_::Cint, po_::Cuchar, no_::Ptr{Cuchar})::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" + mad_desc_del!(desc::Ptr{Desc{RTPSA,CTPSA}}) + +Calls the destructor for the descriptor. + +### Input +- `desc` -- Descriptor to destruct +""" +function mad_desc_del!(desc::Ptr{Desc{RTPSA,CTPSA}}) + @ccall MAD_TPSA.mad_desc_del(desc::Ptr{Desc{RTPSA,CTPSA}})::Cvoid +end + + +""" + mad_desc_getnv(desc::Ptr{Desc{RTPSA,CTPSA}}, mo_::Cuchar, np_::Cint, po_::Cuchar)::Cint + +??? + +### Input +- `desc` -- Descriptor +- `mo_` -- Maximum order +- `np_` -- Number of parameters +- `po_` -- Parameter order + +### Output +- `nv` -- Number of variables in TPSA +""" +function mad_desc_getnv(desc::Ptr{Desc{RTPSA,CTPSA}}, mo_::Cuchar, np_::Cint, po_::Cuchar)::Cint + nv = @ccall MAD_TPSA.mad_desc_getnv(desc::Ptr{Desc{RTPSA,CTPSA}}, mo_::Cuchar, np_::Cint, po_::Cuchar)::Cint + return nv +end + + +""" + mad_desc_maxord(desc::Ptr{Desc{RTPSA,CTPSA}}, nn::Cint, no_::Ptr{Cuchar})::Cuchar + +Sets the order of the variables and parameters of the TPSA to those specified in no_ and +returns the maximum order of the TPSA. + +### Input +- `desc` -- Descriptor +- `nn` -- Number of variables + number of parameters, no_[1..nn] +- `no_` -- Orders of parameters to be filled if provided + +### Output +- `mo` -- Maximum order of TPSA +""" +function mad_desc_maxord(desc::Ptr{Desc{RTPSA,CTPSA}}, nn::Cint, no_::Ptr{Cuchar})::Cuchar + mo = @ccall MAD_TPSA.mad_desc_maxord(desc::Ptr{Desc{RTPSA,CTPSA}}, nn::Cint, no_::Ptr{Cuchar})::Cuchar + return mo +end + + +""" + mad_desc_maxlen(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Cint + +??? + +### Input +- `desc` -- Descriptor +- `mo` -- ordlen(maxord) == maxlen + +### Output +- `olen` -- monomials in 0..order +""" +function mad_desc_maxlen(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Cint + olen = @ccall MAD_TPSA.mad_desc_maxlen(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Cint + return olen +end + + +""" + mad_desc_gtrunc!(desc::Ptr{Desc{RTPSA,CTPSA}}, to::Cuchar)::Cuchar + +Sets the global truncation order (to) of the TPSA, and returns the old global truncation order. + +### Input +- `desc` -- Descriptor +- `to` -- New global truncation order + +### Output +- `oldto` -- Old global truncation order +""" +function mad_desc_gtrunc!(desc::Ptr{Desc{RTPSA,CTPSA}}, to::Cuchar)::Cuchar + oldto = @ccall MAD_TPSA.mad_desc_gtrunc(desc::Ptr{Desc{RTPSA,CTPSA}}, to::Cuchar)::Cuchar + return oldto +end + + +""" + mad_desc_isvalids(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cuchar + +??? + +### Input +- `desc` -- Descriptor +- `n` -- String length of 0 (unknown) +- `s` -- Monomial as string "[0-9]*" + +### Output +- `ret` -- True or false +""" +function mad_desc_isvalids(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cuchar + ret = @ccall MAD_TPSA.mad_desc_isvalids(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cuchar + return ret +end + + +""" + mad_desc_isvalidm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Length of monomial +- `m` -- Monomial + +### Output +- `ret` -- True or false +""" +function mad_desc_isvalidm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_desc_isvalidm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + return ret +end + + +""" +Original Fortran function: +desc,n,m +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: desc ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) +""" +""" + mad_desc_isvalidsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Length of monomial +- `m` -- Sparse monomial (idx, ord) + +### Output +- `ret` -- True or false. +""" +function mad_desc_isvalidsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + ret = @ccall MAD_TPSA.mad_desc_isvalidsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cuchar + return ret +end + + +""" + mad_desc_idxs(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cint + +??? + +### Input +- `desc` -- Descriptor +- `n` -- String length or 0 (unknown) +- `s` -- Monomial as string "[0-9]*" + +### Output +- `idx` -- Monomial index or -1 +""" +function mad_desc_idxs(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cint + idx = @ccall MAD_TPSA.mad_desc_idxs(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, s::Cstring)::Cint + return idx +end + + +""" + mad_desc_idxm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Monomial length +- `m` -- Monomial + +### Output +- `idx` -- Monomial index or -1 +""" +function mad_desc_idxm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_desc_idxm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" + mad_desc_idxsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Monomial length +- `m` -- Sparse monomial (idx,ord) + +### Output +- `idx` -- Monomial index or -1 +""" +function mad_desc_idxsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_desc_idxsm(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" + mad_desc_nxtbyvar(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Monomial length +- `m` -- Monomial + +### Output +- `idx` -- Monomial index or -1 +""" +function mad_desc_nxtbyvar(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_desc_nxtbyvar(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" + mad_desc_nxtbyord(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + +??? + +### Input +- `desc` -- Descriptor +- `n` -- Monomial length +- `m` -- Monomial + +### Output +- `idx` -- Monomial index or -1 +""" +function mad_desc_nxtbyord(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_desc_nxtbyord(desc::Ptr{Desc{RTPSA,CTPSA}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" + mad_desc_mono(desc::Ptr{Desc{RTPSA,CTPSA}}, i::Cint, n::Cint, m_::Ptr{Cuchar})::Cuchar + +??? + +### Input +- `desc` -- Descriptor +- `i` -- Slot index (must be valid) +- `n` -- Monomial length +- `m_` -- Monomial to fill (if provided) + +### Output +- `ord` -- Monomial order +""" +function mad_desc_mono(desc::Ptr{Desc{RTPSA,CTPSA}}, i::Cint, n::Cint, m_::Ptr{Cuchar})::Cuchar + ord = @ccall MAD_TPSA.mad_desc_mono(desc::Ptr{Desc{RTPSA,CTPSA}}, i::Cint, n::Cint, m_::Ptr{Cuchar})::Cuchar + return ord +end + + +""" + mad_tpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + +Creates a real TPSA defined by the specified descriptor and maximum order. +If MAD_TPSA_DEFAULT is passed for mo, the mo defined in the descriptor is used. + +### Input +- `desc` -- Descriptor +- `mo` -- Maximum order + +### Output +- `newtpsa` -- New real TPSA defined by the descriptor +""" +function mad_tpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + newtpsa = @ccall MAD_TPSA.mad_tpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + return newtpsa +end + + +""" + mad_tpsa_new(tpsa::Ptr{RTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + +Creates a real TPSA copy of the inputted TPSA, with maximum order specified by mo. +If MAD_TPSA_SAME is passed for mo, the mo currently in tpsa is used for the created TPSA. + +### Input +- `tpsa` -- Real TPSA to copy +- `mo` -- Maximum order of new TPSA + +### Output +- `newtpsa` -- New real TPSA with maximum order mo +""" +function mad_tpsa_new(tpsa::Ptr{RTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + newtpsa = @ccall MAD_TPSA.mad_tpsa_new(tpsa::Ptr{RTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + return newtpsa +end + + +""" + mad_tpsa_del!(tpsa::Ptr{RTPSA{Desc}}) + +Calls the destructor for the real TPSA. + +### Input +- `tpsa` -- Real TPSA to destruct +""" +function mad_tpsa_del!(tpsa::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_del(tpsa::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" + mad_tpsa_desc(tpsa::Ptr{RTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + +Gets the descriptor for the real TPSA. + +### Input +- `tpsa` -- Real TPSA + +### Output +- `desc` -- Descriptor for the tpsa +""" +function mad_tpsa_desc(tpsa::Ptr{RTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_tpsa_desc(tpsa::Ptr{RTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" + mad_tpsa_uid!(tpsa::Ptr{RTPSA{Desc}}, uid_::Cint)::Cint + +Sets the TPSA uid if uid_ != 0, and returns the current (previous if set) TPSA uid. + +### Input +- `tpsa` -- Real TPSA +- `uid_` -- uid to set in the TPSA if uid_ != 0 + +### Output +- `uid` -- Current (previous if set) TPSA uid +""" +function mad_tpsa_uid!(tpsa::Ptr{RTPSA{Desc}}, uid_::Cint)::Cint + uid = @ccall MAD_TPSA.mad_tpsa_uid(tpsa::Ptr{RTPSA{Desc}}, uid_::Cint)::Cint + return uid +end + + +""" + mad_tpsa_len(tpsa::Ptr{RTPSA{Desc}})::Cint + +??? + +### Input +- `tpsa` -- Real TPSA + +### Output +- `len` -- Monomials in tpsa +""" +function mad_tpsa_len(tpsa::Ptr{RTPSA{Desc}})::Cint + len = @ccall MAD_TPSA.mad_tpsa_len(tpsa::Ptr{RTPSA{Desc}})::Cint + return len +end + + +""" + mad_tpsa_nam(tpsa::Ptr{RTPSA{Desc}})::Cstring + +Get the name of the TPSA. + +### Input +- `tpsa` -- Real TPSA + +### Output +- `nam` -- Name of tpsa (nul term in C) +""" +function mad_tpsa_nam(tpsa::Ptr{RTPSA{Desc}})::Cstring + nam = @ccall MAD_TPSA.mad_tpsa_nam(tpsa::Ptr{RTPSA{Desc}})::Cstring + return nam +end + + +""" + mad_tpsa_ord(tpsa::Ptr{RTPSA{Desc}})::Cuchar + +Gets the TPSA order. + +### Input +- `tpsa` -- Real TPSA + +### Output +- `ord` -- Order of TPSA +""" +function mad_tpsa_ord(tpsa::Ptr{RTPSA{Desc}})::Cuchar + ord = @ccall MAD_TPSA.mad_tpsa_ord(tpsa::Ptr{RTPSA{Desc}})::Cuchar + return ord +end + + +""" +Original Fortran function: +n,tpsa +bind(C) +import ; implicit none + integer(c_ord_t) :: ord ! max of all tpsas order + integer(c_ssz_t), value, intent(in) :: n ! #tpsa + type(c_ptr), intent(in) :: tpsa(*) +""" +""" + mad_tpsa_ordn(n::Cint, tpsa::Ptr{RTPSA{Desc}})::Cuchar + +Gets the max of all TPSAs order. ??? + +### Input +- `n` -- #tpsa +- `tpsa` -- TPSA + +### Output +- `ord` -- Order +""" +function mad_tpsa_ordn(n::Cint, tpsa::Ptr{RTPSA{Desc}})::Cuchar + ord = @ccall MAD_TPSA.mad_tpsa_ordn(n::Cint, tpsa::Ptr{RTPSA{Desc}})::Cuchar + return ord +end + + +""" + mad_tpsa_isvalid(tpsa::Ptr{RTPSA{Desc}})::Cuchar + +Sanity check of the TPSA integrity. + +### Input +- `tpsa` -- Real TPSA to check if valid + +### Output +- `ret` -- True if valid TPSA, false otherwise +""" +function mad_tpsa_isvalid(tpsa::Ptr{RTPSA{Desc}})::Cuchar + ret = @ccall MAD_TPSA.mad_tpsa_isvalid(tpsa::Ptr{RTPSA{Desc}})::Cuchar + return ret +end + + +""" + mad_tpsa_copy!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +Makes a copy of the real TPSA tpsa to tpsa_r. + +### Input +- `tpsa` -- Source real TPSA +- `tpsa_r` -- Destination real TPSA +""" +function mad_tpsa_copy!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_copy(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" + mad_tpsa_sclord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, inv::Cuchar) + +??? + +### Input +- `tpsa` -- Source real TPSA +- `tpsa_r` -- Destination real TPSA +- `inv` -- scl by inverse +""" +function mad_tpsa_sclord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, inv::Cuchar) + @ccall MAD_TPSA.mad_tpsa_sclord(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, inv::Cuchar)::Cvoid +end + + +""" + mad_tpsa_getord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cint) + +??? +is ! ? + +### Input +- `tpsa` -- Source real TPSA +- `tpsa_r` -- Destination real TPSA +- `ord` -- Order to retrieve +""" +function mad_tpsa_getord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cuchar) + @ccall MAD_TPSA.mad_tpsa_getord(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cuchar)::Cvoid +end + + +""" + mad_tpsa_cutord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cint) + +??? + +### Input +- `tpsa` -- Source real TPSA +- `tpsa_r` -- Destination real TPSA +- `ord` -- Cut order: 0..-ord or ord..mo +""" +function mad_tpsa_cutord!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cint) + @ccall MAD_TPSA.mad_tpsa_cutord(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, ord::Cint)::Cvoid +end + + +""" + mad_tpsa_setvar!(tpsa::Ptr{RTPSA{Desc}}, v::Cdouble, iv_::Cint, scl_::Cdouble) + +??? + +### Input +- `tpsa` -- Real TPSA +- `v` -- 0th order value +- `iv_` -- Variable index +- `scl_` -- 1st order variable value +""" +function mad_tpsa_setvar!(tpsa::Ptr{RTPSA{Desc}}, v::Cdouble, iv_::Cint, scl_::Cdouble) + @ccall MAD_TPSA.mad_tpsa_setvar(tpsa::Ptr{RTPSA{Desc}}, v::Cdouble, iv_::Cint, scl_::Cdouble)::Cvoid +end + + +""" + mad_tpsa_setnam!(tpsa::Ptr{RTPSA{Desc}}, nam::Cstring) + +Sets the name of the tpsa. + +### Input +- `tpsa` -- Real TPSA +- `nam` -- Name to set for tpsa +""" +function mad_tpsa_setnam!(tpsa::Ptr{RTPSA{Desc}}, nam::Cstring) + @ccall MAD_TPSA.mad_tpsa_setnam(tpsa::Ptr{RTPSA{Desc}}, nam::Cstring)::Cvoid +end + + +""" + mad_tpsa_clear!(tpsa::Ptr{RTPSA{Desc}}) + +Clears the TPSA (reset to 0) + +### Input +- `tpsa` -- Real TPSA +""" +function mad_tpsa_clear!(tpsa::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_clear(tpsa::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +tpsa +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: tpsa +""" +""" + mad_tpsa_isnul(tpsa::Ptr{RTPSA{Desc}})::Cuchar + +### Input +- `tpsa` + +### Output +- `ret` +""" +function mad_tpsa_isnul(tpsa::Ptr{RTPSA{Desc}})::Cuchar + ret = @ccall MAD_TPSA.mad_tpsa_isnul(tpsa::Ptr{RTPSA{Desc}})::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +tpsa,tpsa_r,n,t2r_,pb +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + integer(c_idx_t), intent(in) :: t2r_(*) ! vector of index lookup + integer(c_int), value, intent(in) :: pb ! poisson bracket 0,1:fwd,-1:bwd +""" +""" + mad_tpsa_convert!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + +### Input +- `tpsa` +- `tpsa_r` +- `n` +- `t2r_` +- `pb` +""" +function mad_tpsa_convert!(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + @ccall MAD_TPSA.mad_tpsa_convert(tpsa::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint)::Cvoid +end + + +""" +Original Fortran function: +tpsa,n,m_,i +bind(C) +import ; implicit none + integer(c_ord_t) :: ord ! monomial order + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t) :: m_(*) ! monomial to fill (if provided) +""" +""" + mad_tpsa_mono(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + +### Input +- `tpsa` +- `n` +- `m_` +- `i` + +### Output +- `ord` +""" +function mad_tpsa_mono(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + ord = @ccall MAD_TPSA.mad_tpsa_mono(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + return ord +end + + +""" +Original Fortran function: +tpsa,n,s +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index or -1 + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as C string "[0-9]*" +""" +""" + mad_tpsa_idxs(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cint + +### Input +- `tpsa` +- `n` +- `s` + +### Output +- `idx` +""" +function mad_tpsa_idxs(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cint + idx = @ccall MAD_TPSA.mad_tpsa_idxs(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cint + return idx +end + + +""" +Original Fortran function: +tpsa,n,m +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index or -1 + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_tpsa_idxm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + +### Input +- `tpsa` +- `n` +- `m` + +### Output +- `idx` +""" +function mad_tpsa_idxm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_tpsa_idxm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" +Original Fortran function: +tpsa,n,m +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index or -1 + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) +""" +""" + mad_tpsa_idxsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + +### Input +- `tpsa` +- `n` +- `m` + +### Output +- `idx` +""" +function mad_tpsa_idxsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_tpsa_idxsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" +Original Fortran function: +tpsa,i,n,m_,v_ +bind(C) +import ; implicit none ! scan for non-zero coefs starting at i + integer(c_idx_t) :: idx ! next index to start searching or -1 + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_idx_t), value, intent(in) :: i ! index to start searching + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t) :: m_(*) ! monomial to fill (if provided) + real(c_num_t), intent(out) :: v_ ! coeff to fill (if provided) +""" +""" + mad_tpsa_cycle(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + +### Input +- `tpsa` +- `i` +- `n` +- `m_` +- `v_` + +### Output +- `idx` +""" +function mad_tpsa_cycle(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + idx = @ccall MAD_TPSA.mad_tpsa_cycle(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + return idx +end + + +""" +Original Fortran function: +tpsa +bind(C) +import ; implicit none + real(c_num_t) :: val ! value at order 0 (index 0) + type(c_ptr), value, intent(in) :: tpsa ! +""" +""" + mad_tpsa_get0(tpsa::Ptr{RTPSA{Desc}})::Cdouble + +### Input +- `tpsa` + +### Output +- `val` +""" +function mad_tpsa_get0(tpsa::Ptr{RTPSA{Desc}})::Cdouble + val = @ccall MAD_TPSA.mad_tpsa_get0(tpsa::Ptr{RTPSA{Desc}})::Cdouble + return val +end + + +""" +Original Fortran function: +tpsa,i +bind(C) +import ; implicit none + real(c_num_t) :: val ! value at index i + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) +""" +""" + mad_tpsa_geti(tpsa::Ptr{RTPSA{Desc}}, i::Cint)::Cdouble + +### Input +- `tpsa` +- `i` + +### Output +- `val` +""" +function mad_tpsa_geti(tpsa::Ptr{RTPSA{Desc}}, i::Cint)::Cdouble + val = @ccall MAD_TPSA.mad_tpsa_geti(tpsa::Ptr{RTPSA{Desc}}, i::Cint)::Cdouble + return val +end + + +""" +Original Fortran function: +tpsa,n,s +bind(C) +import ; implicit none + real(c_num_t) :: val ! value at string monomial + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as string "[0-9]*" +""" +""" + mad_tpsa_gets(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + +### Input +- `tpsa` +- `n` +- `s` + +### Output +- `val` +""" +function mad_tpsa_gets(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + val = @ccall MAD_TPSA.mad_tpsa_gets(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + return val +end + + +""" +Original Fortran function: +tpsa,n,m +bind(C) +import ; implicit none + real(c_num_t) :: val ! value at monomial + type(c_ptr), value, intent(in) :: tpsa ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_tpsa_getm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + +### Input +- `tpsa` +- `n` +- `m` + +### Output +- `val` +""" +function mad_tpsa_getm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + val = @ccall MAD_TPSA.mad_tpsa_getm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + return val +end + + +""" +Original Fortran function: +tpsa,n,m +bind(C) +import ; implicit none + real(c_num_t) :: val ! value at sparse monomial + type(c_ptr), value, intent(in) :: tpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) +""" +""" + mad_tpsa_getsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + +### Input +- `tpsa` +- `n` +- `m` + +### Output +- `val` +""" +function mad_tpsa_getsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + val = @ccall MAD_TPSA.mad_tpsa_getsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + return val +end + + +""" +Original Fortran subroutine: +tpsa,i,n,v +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! vector length + real(c_num_t) :: v(*) ! vector to fill +""" +""" + mad_tpsa_getv!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + +### Input +- `tpsa` +- `i` +- `n` +- `v` +""" +function mad_tpsa_getv!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + @ccall MAD_TPSA.mad_tpsa_getv(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + real(c_num_t), value, intent(in) :: a, b ! t[0] = a*t[0]+b +""" +""" + mad_tpsa_set0!(tpsa::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble) + +### Input +- `tpsa` +- `a` +- `b` +""" +function mad_tpsa_set0!(tpsa::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_tpsa_set0(tpsa::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,i,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + real(c_num_t), value, intent(in) :: a, b ! t[i] = a*t[i]+b +""" +""" + mad_tpsa_seti!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble) + +### Input +- `tpsa` +- `i` +- `a` +- `b` +""" +function mad_tpsa_seti!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_tpsa_seti(tpsa::Ptr{RTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,n,s,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as string "[0-9]*" + real(c_num_t), value, intent(in) :: a, b ! t[s] = a*t[s]+b +""" +""" + mad_tpsa_sets!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble) + +### Input +- `tpsa` +- `n` +- `s` +- `a` +- `b` +""" +function mad_tpsa_sets!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_tpsa_sets(tpsa::Ptr{RTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,n,m,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial + real(c_num_t), value, intent(in) :: a, b ! t[m] = a*t[m]+b +""" +""" + mad_tpsa_setm!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + +### Input +- `tpsa` +- `n` +- `m` +- `a` +- `b` +""" +function mad_tpsa_setm!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_tpsa_setm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,n,m,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) + real(c_num_t), value, intent(in) :: a, b ! t[m] = a*t[m]+b +""" +""" + mad_tpsa_setsm!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + +### Input +- `tpsa` +- `n` +- `m` +- `a` +- `b` +""" +function mad_tpsa_setsm!(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_tpsa_setsm(tpsa::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,i,n,v +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! vector length + real(c_num_t), intent(in) :: v(*) ! vector to copy +""" +""" + mad_tpsa_setv!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + +### Input +- `tpsa` +- `i` +- `n` +- `v` +""" +function mad_tpsa_setv!(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + @ccall MAD_TPSA.mad_tpsa_setv(tpsa::Ptr{RTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar)::Cvoid +end + + +""" +Original Fortran function: +tpsa_a,tpsa_b,eps_ +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b + real(c_num_t), value, intent(in) :: eps_ ! tolerance during comparison +""" +""" + mad_tpsa_equ(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps_::Cdouble)::Cuchar + +### Input +- `tpsa_a` +- `tpsa_b` +- `eps_` + +### Output +- `ret` +""" +function mad_tpsa_equ(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps_::Cdouble)::Cuchar + ret = @ccall MAD_TPSA.mad_tpsa_equ(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps_::Cdouble)::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_dif!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_dif!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_dif(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_add!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_add!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_add(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sub!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_sub!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sub(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_mul!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_mul!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_mul(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_div!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_div!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_div(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_pow!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_pow!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_pow(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,n,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + integer(c_int), value, intent(in) :: n ! power (integer) + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_powi!(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `n` +- `tpsa_r` +""" +function mad_tpsa_powi!(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_powi(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,v,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + real(c_num_t), value, intent(in) :: v ! power (real) + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_pown!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `v` +- `tpsa_r` +""" +function mad_tpsa_pown!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_pown(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst=|src| +""" +""" + mad_tpsa_abs!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_abs!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_abs(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +tpsa_a,tpsa_b_ +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b_ + real(c_num_t) :: nrm ! sum_i |a[i]-b_[i]| +""" +""" + mad_tpsa_nrm(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b_::Ptr{RTPSA{Desc}})::Cdouble + +### Input +- `tpsa_a` +- `tpsa_b_` + +### Output +- `nrm` +""" +function mad_tpsa_nrm(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b_::Ptr{RTPSA{Desc}})::Cdouble + nrm = @ccall MAD_TPSA.mad_tpsa_nrm(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b_::Ptr{RTPSA{Desc}})::Cdouble + return nrm +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r,iv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_int), value, intent(in) :: iv ! variable number (1st order) +""" +""" + mad_tpsa_integ!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint) + +### Input +- `tpsa_a` +- `tpsa_r` +- `iv` +""" +function mad_tpsa_integ!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint) + @ccall MAD_TPSA.mad_tpsa_integ(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r,iv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_int), value, intent(in) :: iv ! variable number (1st order) +""" +""" + mad_tpsa_deriv!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint) + +### Input +- `tpsa_a` +- `tpsa_r` +- `iv` +""" +function mad_tpsa_deriv!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint) + @ccall MAD_TPSA.mad_tpsa_deriv(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, iv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r,n,m +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_tpsa_derivm!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}) + +### Input +- `tpsa_a` +- `tpsa_r` +- `n` +- `m` +""" +function mad_tpsa_derivm!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_tpsa_derivm(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_b,tpsa_r,nv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, tpsa_b ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_int), value, intent(in) :: nv ! #variables (desc%nv if 0) +""" +""" + mad_tpsa_poisbra!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, nv::Cint) + +### Input +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +- `nv` +""" +function mad_tpsa_poisbra!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, nv::Cint) + @ccall MAD_TPSA.mad_tpsa_poisbra(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, nv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,n,coef,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + real(c_num_t), intent(in) :: coef(*) ! vector of taylor coefs +""" +""" + mad_tpsa_taylor!(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, coef::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `n` +- `coef` +- `tpsa_r` +""" +function mad_tpsa_taylor!(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, coef::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_taylor(tpsa_a::Ptr{RTPSA{Desc}}, n::Cint, coef::Cdouble, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,v,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! src and dst + real(c_num_t), value, intent(in) :: v ! r = r + v*a (r not reset!) +""" +""" + mad_tpsa_acc!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `v` +- `tpsa_r` +""" +function mad_tpsa_acc!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_acc(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,v,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + real(c_num_t), value, intent(in) :: v ! r = v*a +""" +""" + mad_tpsa_scl!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `v` +- `tpsa_r` +""" +function mad_tpsa_scl!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_scl(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,v,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + real(c_num_t), value, intent(in) :: v ! r = v/a +""" +""" + mad_tpsa_inv!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `v` +- `tpsa_r` +""" +function mad_tpsa_inv!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_inv(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,v,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst + real(c_num_t), value, intent(in) :: v ! r = v/sqrt(a) +""" +""" + mad_tpsa_invsqrt!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `v` +- `tpsa_r` +""" +function mad_tpsa_invsqrt!(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_invsqrt(tpsa_a::Ptr{RTPSA{Desc}}, v::Cuchar, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sqrt!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_sqrt!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sqrt(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_exp!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_exp!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_exp(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_log!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_log!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_log(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_s,tpsa_c +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_s, tpsa_c ! dst_sin, dst_cos +""" +""" + mad_tpsa_sincos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_s` +- `tpsa_c` +""" +function mad_tpsa_sincos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sincos(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sin!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_sin!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sin(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_cos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_cos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_cos(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_tan!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_tan!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_tan(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_cot!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_cot!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_cot(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sinc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_sinc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sinc(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_s,tpsa_c +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_s, tpsa_c ! dst_sin, dst_cos +""" +""" + mad_tpsa_sincosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_s` +- `tpsa_c` +""" +function mad_tpsa_sincosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sincosh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_s::Ptr{RTPSA{Desc}}, tpsa_c::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sinh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_sinh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sinh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_cosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_cosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_cosh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_tanh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_tanh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_tanh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_coth!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_coth!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_coth(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_sinhc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_sinhc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_sinhc(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_asin!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_asin!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_asin(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_acos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_acos!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_acos(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_atan!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_atan!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_atan(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_acot!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_acot!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_acot(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_asinh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_asinh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_asinh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_acosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_acosh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_acosh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_atanh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_atanh!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_atanh(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_acoth!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_acoth!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_acoth(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_erf!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_erf!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_erf(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_erfc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_erfc!(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_erfc(tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,b,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b ! coefs + type(c_ptr), value, intent(in) :: tpsa_x ! src + type(c_ptr), value :: tpsa_r ! dst=a*x+b +""" +""" + mad_tpsa_axpb!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `b` +- `tpsa_r` +""" +function mad_tpsa_axpb!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axpb(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,b,tpsa_y,c,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y ! src + type(c_ptr), value :: tpsa_r ! dst=a*x+b*y+c +""" +""" + mad_tpsa_axpbypc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `b` +- `tpsa_y` +- `c` +- `tpsa_r` +""" +function mad_tpsa_axpbypc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axpbypc(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,tpsa_y,b,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b ! coefs + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y ! src + type(c_ptr), value :: tpsa_r ! dst=a*x*y+b +""" +""" + mad_tpsa_axypb!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `tpsa_y` +- `b` +- `tpsa_r` +""" +function mad_tpsa_axypb!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axypb(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,tpsa_y,b,tpsa_z,c,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y, tpsa_z ! src + type(c_ptr), value :: tpsa_r ! dst=a*x*y+b*z+c +""" +""" + mad_tpsa_axypbzpc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_z::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `tpsa_y` +- `b` +- `tpsa_z` +- `c` +- `tpsa_r` +""" +function mad_tpsa_axypbzpc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_z::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axypbzpc(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_z::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,tpsa_y,b,tpsa_u,tpsa_v,c,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y, tpsa_u, tpsa_v ! src + type(c_ptr), value :: tpsa_r ! dst=a*x*y+b*u*v+c +""" +""" + mad_tpsa_axypbvwpc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_u::Ptr{RTPSA{Desc}}, tpsa_v::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `tpsa_y` +- `b` +- `tpsa_u` +- `tpsa_v` +- `c` +- `tpsa_r` +""" +function mad_tpsa_axypbvwpc!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_u::Ptr{RTPSA{Desc}}, tpsa_v::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axypbvwpc(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_u::Ptr{RTPSA{Desc}}, tpsa_v::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,tpsa_x,b,tpsa_y,c,tpsa_z,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y, tpsa_z ! src + type(c_ptr), value :: tpsa_r ! dst=a*x^2+b*y^2+c*z^2 +""" +""" + mad_tpsa_ax2pby2pcz2!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_z::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `a` +- `tpsa_x` +- `b` +- `tpsa_y` +- `c` +- `tpsa_z` +- `tpsa_r` +""" +function mad_tpsa_ax2pby2pcz2!(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_z::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_ax2pby2pcz2(a::Cdouble, tpsa_x::Ptr{RTPSA{Desc}}, b::Cdouble, tpsa_y::Ptr{RTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, tpsa_z::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_x,a,b,c,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x ! src + type(c_ptr), value :: tpsa_r ! dst=a*x+sqrt(b+c*x^2) +""" +""" + mad_tpsa_axpsqrtbpcx2!(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_x` +- `a` +- `b` +- `c` +- `tpsa_r` +""" +function mad_tpsa_axpsqrtbpcx2!(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_axpsqrtbpcx2(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_x,a,b,c,tpsa_r +bind(C) +import ; implicit none + real(c_num_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: tpsa_x ! src + type(c_ptr), value :: tpsa_r ! dst=log(a*x+sqrt(b+c*x^2)) +""" +""" + mad_tpsa_logaxpsqrtbpcx2!(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_x` +- `a` +- `b` +- `c` +- `tpsa_r` +""" +function mad_tpsa_logaxpsqrtbpcx2!(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_logaxpsqrtbpcx2(tpsa_x::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_x,tpsa_y,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_x, tpsa_y ! src + type(c_ptr), value :: tpsa_r ! dst=log(x/y) +""" +""" + mad_tpsa_logxdy!(tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `tpsa_x` +- `tpsa_y` +- `tpsa_r` +""" +function mad_tpsa_logxdy!(tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_logxdy(tpsa_x::Ptr{RTPSA{Desc}}, tpsa_y::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +na,tpsa_a +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + real(c_num_t) :: mnrm ! nrm +""" +""" + mad_tpsa_mnrm(na::Cint, tpsa_a::Ptr{RTPSA{Desc}})::Cdouble + +### Input +- `na` +- `tpsa_a` + +### Output +- `mnrm` +""" +function mad_tpsa_mnrm(na::Cint, tpsa_a::Ptr{RTPSA{Desc}})::Cdouble + mnrm = @ccall MAD_TPSA.mad_tpsa_mnrm(na::Cint, tpsa_a::Ptr{RTPSA{Desc}})::Cdouble + return mnrm +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr) :: tpsa_r(*) ! dst +""" +""" + mad_tpsa_minv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_minv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_minv(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_r,select +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr) :: tpsa_r(*) ! dst + integer(c_idx_t), intent(in) :: select(*) ! slots to selected +""" +""" + mad_tpsa_pminv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, select::Ptr{Cint}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_r` +- `select` +""" +function mad_tpsa_pminv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, select::Ptr{Cint}) + @ccall MAD_TPSA.mad_tpsa_pminv(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}, select::Ptr{Cint})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,nb,tpsa_b,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*), tpsa_b(*) ! src + type(c_ptr) :: tpsa_r(*) ! dst[na] +""" +""" + mad_tpsa_compose!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `nb` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_compose!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_compose(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,nb,vb,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + real(c_num_t), intent(in) :: vb(*) ! src + type(c_ptr) :: tpsa_r(*) ! dst[na] +""" +""" + mad_tpsa_translate!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `nb` +- `vb` +- `tpsa_r` +""" +function mad_tpsa_translate!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_translate(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,nb,vb,vr +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + real(c_num_t), intent(in) :: vb(*) ! src + real(c_num_t) :: vr(*) ! dst[nb] +""" +""" + mad_tpsa_eval!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble}) + +### Input +- `na` +- `tpsa_a` +- `nb` +- `vb` +- `vr` +""" +function mad_tpsa_eval!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble}) + @ccall MAD_TPSA.mad_tpsa_eval(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,nr,tpsa_r,n,t2r_,pb +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nr ! vectors lengths + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr) :: tpsa_r(*) ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + integer(c_idx_t), intent(in) :: t2r_(*) ! vector of index lookup + integer(c_int), value, intent(in) :: pb ! poisson bracket 0,1:fwd,-1:bwd +""" +""" + mad_tpsa_mconv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nr::Cint, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + +### Input +- `na` +- `tpsa_a` +- `nr` +- `tpsa_r` +- `n` +- `t2r_` +- `pb` +""" +function mad_tpsa_mconv!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nr::Cint, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + @ccall MAD_TPSA.mad_tpsa_mconv(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, nr::Cint, tpsa_r::Ptr{RTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), value, intent(in) :: tpsa_a ! src + type(c_ptr), intent(out) :: tpsa_r(*) ! dst +""" +""" + mad_tpsa_vec2fld!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_vec2fld!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_vec2fld(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_fld2vec!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_r` +""" +function mad_tpsa_fld2vec!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_fld2vec(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr), value, intent(in) :: tpsa_b ! src + type(c_ptr), value :: tpsa_r ! dst +""" +""" + mad_tpsa_fgrad!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_fgrad!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_fgrad(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: tpsa_a(*), tpsa_b(*) ! src + type(c_ptr), intent(out) :: tpsa_r(*) ! dst[na] +""" +""" + mad_tpsa_liebra!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_liebra!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_liebra(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: tpsa_a(*), tpsa_b(*) ! src + type(c_ptr), intent(out) :: tpsa_r(*) ! dst[na] +""" +""" + mad_tpsa_exppb!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_exppb!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_exppb(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,tpsa_a,tpsa_b,tpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: tpsa_a(*) ! src + type(c_ptr), intent(in), optional :: tpsa_b(*) ! src + type(c_ptr), intent(out) :: tpsa_r(*) ! dst[na] +""" +""" + mad_tpsa_logpb!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `na` +- `tpsa_a` +- `tpsa_b` +- `tpsa_r` +""" +function mad_tpsa_logpb!(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_tpsa_logpb(na::Cint, tpsa_a::Ptr{RTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,name_,eps_,nohdr_,stream_ +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa ! src + character(c_char), intent(in) :: name_(*) ! tpsa name (nul term. C str) + real(c_num_t), value, intent(in) :: eps_ ! display precision, e.g. 1d-12 + integer(c_int), value, intent(in) :: nohdr_ ! discard header if not zero + type(c_ptr), value :: stream_ ! dst=c_null_ptr => stdio +""" +""" + mad_tpsa_print!(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid}) + +### Input +- `tpsa` +- `name_` +- `eps_` +- `nohdr_` +- `stream_` +""" +function mad_tpsa_print!(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_tpsa_print(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid})::Cvoid +end + + +""" +Original Fortran function: +stream_ +bind(C) +import ; implicit none + type(c_ptr) :: tpsa ! tpsa to read + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_tpsa_scan(stream_::Ptr{Cvoid})::Ptr{RTPSA{Desc}} + +### Input +- `stream_` + +### Output +- `tpsa` +""" +function mad_tpsa_scan(stream_::Ptr{Cvoid})::Ptr{RTPSA{Desc}} + tpsa = @ccall MAD_TPSA.mad_tpsa_scan(stream_::Ptr{Cvoid})::Ptr{RTPSA{Desc}} + return tpsa +end + + +""" +Original Fortran function: +kind_,name_,stream_ +bind(C) +import ; implicit none + type(c_ptr) :: desc ! descriptor from header + integer(c_int), optional, intent(out) :: kind_! tpsa kind (0 real, 1 complex) + character(c_char), optional, intent(out) :: name_(*) ! tpsa name (nul term. C str) + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_tpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + +### Input +- `kind_` +- `name_` +- `stream_` + +### Output +- `desc` +""" +function mad_tpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_tpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" +Original Fortran subroutine: +tpsa,stream_ +bind(C) +import ; implicit none + type(c_ptr), value :: tpsa ! tpsa to read + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_tpsa_scan_coef!(tpsa::Ptr{RTPSA{Desc}}, stream_::Ptr{Cvoid}) + +### Input +- `tpsa` +- `stream_` +""" +function mad_tpsa_scan_coef!(tpsa::Ptr{RTPSA{Desc}}, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_tpsa_scan_coef(tpsa::Ptr{RTPSA{Desc}}, stream_::Ptr{Cvoid})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa,name_,fnam_,line_,stream_ +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa ! src + character(c_char), intent(in) :: name_(*) ! tpsa name (nul term. C str) + character(c_char), intent(in) :: fnam_(*) ! filename (nul term. C str) + integer(c_int), value, intent(in) :: line_ ! line number or 0 + type(c_ptr), value :: stream_ ! dst=c_null_ptr => stdio +""" +""" + mad_tpsa_debug!(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid}) + +### Input +- `tpsa` +- `name_` +- `fnam_` +- `line_` +- `stream_` +""" +function mad_tpsa_debug!(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_tpsa_debug(tpsa::Ptr{RTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid})::Cvoid +end + + +""" +Original Fortran function: +desc,mo +bind(C) +import ; implicit none + type(c_ptr) :: newtpsa ! new tpsa + type(c_ptr), value, intent(in) :: desc ! descriptor + integer(c_ord_t), value, intent(in) :: mo ! if mo > d_mo, mo = d_mo +""" +""" + mad_ctpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + +### Input +- `desc` +- `mo` + +### Output +- `newtpsa` +""" +function mad_ctpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + newtpsa = @ccall MAD_TPSA.mad_ctpsa_newd(desc::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + return newtpsa +end + + +""" +Original Fortran function: +ctpsa,mo +bind(C) +import ; implicit none + type(c_ptr) :: newtpsa ! new tpsa + type(c_ptr), value, intent(in) :: ctpsa ! (reference) tpsa + integer(c_ord_t), value, intent(in) :: mo ! if mo > d_mo, mo = d_mo +""" +""" + mad_ctpsa_new(ctpsa::Ptr{CTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + +### Input +- `ctpsa` +- `mo` + +### Output +- `newtpsa` +""" +function mad_ctpsa_new(ctpsa::Ptr{CTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + newtpsa = @ccall MAD_TPSA.mad_ctpsa_new(ctpsa::Ptr{CTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} + return newtpsa +end + + +""" +Original Fortran subroutine: +ctpsa +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! tpsa to delete +""" +""" + mad_ctpsa_del!(ctpsa::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa` +""" +function mad_ctpsa_del!(ctpsa::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_del(ctpsa::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + type(c_ptr) :: desc ! tpsa descriptor + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_desc(ctpsa::Ptr{CTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + +### Input +- `ctpsa` + +### Output +- `desc` +""" +function mad_ctpsa_desc(ctpsa::Ptr{CTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_ctpsa_desc(ctpsa::Ptr{CTPSA{Desc}})::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + integer(c_ssz_t) :: len ! #monomials in tpsa + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_len(ctpsa::Ptr{CTPSA{Desc}})::Cint + +### Input +- `ctpsa` + +### Output +- `len` +""" +function mad_ctpsa_len(ctpsa::Ptr{CTPSA{Desc}})::Cint + len = @ccall MAD_TPSA.mad_ctpsa_len(ctpsa::Ptr{CTPSA{Desc}})::Cint + return len +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + type(c_ptr) :: nam ! tpsa name (nul term. C str) + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_nam(ctpsa::Ptr{CTPSA{Desc}})::Cstring + +### Input +- `ctpsa` + +### Output +- `nam` +""" +function mad_ctpsa_nam(ctpsa::Ptr{CTPSA{Desc}})::Cstring + nam = @ccall MAD_TPSA.mad_ctpsa_nam(ctpsa::Ptr{CTPSA{Desc}})::Cstring + return nam +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + integer(c_ord_t) :: ord ! tpsa order + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_ord(ctpsa::Ptr{CTPSA{Desc}})::Cint + +### Input +- `ctpsa` + +### Output +- `ord` +""" +function mad_ctpsa_ord(ctpsa::Ptr{CTPSA{Desc}})::Cint + ord = @ccall MAD_TPSA.mad_ctpsa_ord(ctpsa::Ptr{CTPSA{Desc}})::Cint + return ord +end + + +""" +Original Fortran function: +n,ctpsa +bind(C) +import ; implicit none + integer(c_ord_t) :: ord ! max of all tpsas order + integer(c_ssz_t), value, intent(in) :: n ! #ctpsa + type(c_ptr), intent(in) :: ctpsa(*) +""" +""" + mad_ctpsa_ordn(n::Cint, ctpsa::Ptr{CTPSA{Desc}})::Cint + +### Input +- `n` +- `ctpsa` + +### Output +- `ord` +""" +function mad_ctpsa_ordn(n::Cint, ctpsa::Ptr{CTPSA{Desc}})::Cint + ord = @ccall MAD_TPSA.mad_ctpsa_ordn(n::Cint, ctpsa::Ptr{CTPSA{Desc}})::Cint + return ord +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: ctpsa ! sanity check on TPSA integrity +""" +""" + mad_ctpsa_isvalid(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + +### Input +- `ctpsa` + +### Output +- `ret` +""" +function mad_ctpsa_isvalid(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + ret = @ccall MAD_TPSA.mad_ctpsa_isvalid(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +ctpsa,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_copy!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa` +- `ctpsa_r` +""" +function mad_ctpsa_copy!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_copy(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,ctpsa_r,inv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: ctpsa_r ! dst + logical(c_bool), value, intent(in) :: inv ! scl by inverse +""" +""" + mad_ctpsa_sclord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, inv::Cuchar) + +### Input +- `ctpsa` +- `ctpsa_r` +- `inv` +""" +function mad_ctpsa_sclord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, inv::Cuchar) + @ccall MAD_TPSA.mad_ctpsa_sclord(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, inv::Cuchar)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,ctpsa_r,ord +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_ord_t), value, intent(in) :: ord ! order to retrieve +""" +""" + mad_ctpsa_getord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint) + +### Input +- `ctpsa` +- `ctpsa_r` +- `ord` +""" +function mad_ctpsa_getord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint) + @ccall MAD_TPSA.mad_ctpsa_getord(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,ctpsa_r,ord +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: ord ! cut order: 0..-ord or ord..mo +""" +""" + mad_ctpsa_cutord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint) + +### Input +- `ctpsa` +- `ctpsa_r` +- `ord` +""" +function mad_ctpsa_cutord!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint) + @ccall MAD_TPSA.mad_ctpsa_cutord(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, ord::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,v,iv_,scl_ +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + complex(c_cpx_t), value, intent(in) :: v, scl_ ! 0th and 1st order values + integer(c_idx_t), value, intent(in) :: iv_ ! variable index (1st order) +""" +""" + mad_ctpsa_setvar!(ctpsa::Ptr{CTPSA{Desc}}, v::Cuchar, iv_::Cint, scl_::Cdouble) + +### Input +- `ctpsa` +- `v` +- `iv_` +- `scl_` +""" +function mad_ctpsa_setvar!(ctpsa::Ptr{CTPSA{Desc}}, v::Cuchar, iv_::Cint, scl_::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_setvar(ctpsa::Ptr{CTPSA{Desc}}, v::Cuchar, iv_::Cint, scl_::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,nam +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + character(c_char), intent(in) :: nam(*) ! tpsa name (nul term. C str) +""" +""" + mad_ctpsa_setnam!(ctpsa::Ptr{CTPSA{Desc}}, nam::Cstring) + +### Input +- `ctpsa` +- `nam` +""" +function mad_ctpsa_setnam!(ctpsa::Ptr{CTPSA{Desc}}, nam::Cstring) + @ccall MAD_TPSA.mad_ctpsa_setnam(ctpsa::Ptr{CTPSA{Desc}}, nam::Cstring)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa +""" +""" + mad_ctpsa_clear!(ctpsa::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa` +""" +function mad_ctpsa_clear!(ctpsa::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_clear(ctpsa::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_isnul(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + +### Input +- `ctpsa` + +### Output +- `ret` +""" +function mad_ctpsa_isnul(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + ret = @ccall MAD_TPSA.mad_ctpsa_isnul(ctpsa::Ptr{CTPSA{Desc}})::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +ctpsa,ctpsa_r,n,t2r_,pb +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + integer(c_idx_t), intent(in) :: t2r_(*) ! vector of index lookup + integer(c_int), value, intent(in) :: pb ! poisson bracket 0,1:fwd,-1:bwd +""" +""" + mad_ctpsa_convert!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + +### Input +- `ctpsa` +- `ctpsa_r` +- `n` +- `t2r_` +- `pb` +""" +function mad_ctpsa_convert!(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + @ccall MAD_TPSA.mad_ctpsa_convert(ctpsa::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: tpsa_r ! dst=real(src) +""" +""" + mad_ctpsa_real!(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `ctpsa` +- `tpsa_r` +""" +function mad_ctpsa_real!(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_real(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,tpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + type(c_ptr), value :: tpsa_r ! dst=imag(src) +""" +""" + mad_ctpsa_imag!(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + +### Input +- `ctpsa` +- `tpsa_r` +""" +function mad_ctpsa_imag!(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_imag(ctpsa::Ptr{CTPSA{Desc}}, tpsa_r::Ptr{RTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_re_,tpsa_im_,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_re_, tpsa_im_ ! src + type(c_ptr), value :: ctpsa_r ! dst=(re or 0)+i*(im or 0) +""" +""" + mad_ctpsa_cplx!(tpsa_re_::Ptr{RTPSA{Desc}}, tpsa_im_::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `tpsa_re_` +- `tpsa_im_` +- `ctpsa_r` +""" +function mad_ctpsa_cplx!(tpsa_re_::Ptr{RTPSA{Desc}}, tpsa_im_::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_cplx(tpsa_re_::Ptr{RTPSA{Desc}}, tpsa_im_::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +ctpsa,n,m_,i +bind(C) +import ; implicit none + integer(c_ord_t) :: ord ! monomial order + type(c_ptr), value, intent(in) :: ctpsa ! + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t) :: m_(*) ! monomial to fill (if provided) +""" +""" + mad_ctpsa_mono(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + +### Input +- `ctpsa` +- `n` +- `m_` +- `i` + +### Output +- `ord` +""" +function mad_ctpsa_mono(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + ord = @ccall MAD_TPSA.mad_ctpsa_mono(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m_::Ptr{Cuchar}, i::Cint)::Cint + return ord +end + + +""" +Original Fortran function: +ctpsa,n,s +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index + type(c_ptr), value, intent(in) :: ctpsa ! + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as string "[0-9]*" +""" +""" + mad_ctpsa_idxs(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cint + +### Input +- `ctpsa` +- `n` +- `s` + +### Output +- `idx` +""" +function mad_ctpsa_idxs(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cint + idx = @ccall MAD_TPSA.mad_ctpsa_idxs(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cint + return idx +end + + +""" +Original Fortran function: +ctpsa,n,m +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index + type(c_ptr), value, intent(in) :: ctpsa ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_ctpsa_idxm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + +### Input +- `ctpsa` +- `n` +- `m` + +### Output +- `idx` +""" +function mad_ctpsa_idxm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_ctpsa_idxm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" +Original Fortran function: +ctpsa,n,m +bind(C) +import ; implicit none + integer(c_idx_t) :: idx ! monomial index + type(c_ptr), value, intent(in) :: ctpsa ! + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) +""" +""" + mad_ctpsa_idxsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + +### Input +- `ctpsa` +- `n` +- `m` + +### Output +- `idx` +""" +function mad_ctpsa_idxsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + idx = @ccall MAD_TPSA.mad_ctpsa_idxsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cint + return idx +end + + +""" +Original Fortran function: +ctpsa,i,n,m_,v_ +bind(C) +import ; implicit none ! scan for non-zero coefs starting at i + integer(c_idx_t) :: idx ! next index to start searching or -1 + type(c_ptr), value, intent(in) :: ctpsa ! + integer(c_idx_t), value, intent(in) :: i ! index to start searching + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t) :: m_(*) ! monomial to fill (if provided) + real(c_cpx_t), intent(out) :: v_ ! coeff to fill (if provided) +""" +""" + mad_ctpsa_cycle(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + +### Input +- `ctpsa` +- `i` +- `n` +- `m_` +- `v_` + +### Output +- `idx` +""" +function mad_ctpsa_cycle(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + idx = @ccall MAD_TPSA.mad_ctpsa_cycle(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, m_::Ptr{Cuchar}, v_::Cdouble)::Cint + return idx +end + + +""" +Original Fortran function: +ctpsa +bind(C) +import ; implicit none + complex(c_cpx_t) :: val ! value at order 0 (index 0) + type(c_ptr), value, intent(in) :: ctpsa +""" +""" + mad_ctpsa_get0(ctpsa::Ptr{CTPSA{Desc}})::Cdouble + +### Input +- `ctpsa` + +### Output +- `val` +""" +function mad_ctpsa_get0(ctpsa::Ptr{CTPSA{Desc}})::Cdouble + val = @ccall MAD_TPSA.mad_ctpsa_get0(ctpsa::Ptr{CTPSA{Desc}})::Cdouble + return val +end + + +""" +Original Fortran function: +ctpsa,i +bind(C) +import ; implicit none + complex(c_cpx_t) :: val ! value at index + type(c_ptr), value, intent(in) :: ctpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) +""" +""" + mad_ctpsa_geti(ctpsa::Ptr{CTPSA{Desc}}, i::Cint)::Cdouble + +### Input +- `ctpsa` +- `i` + +### Output +- `val` +""" +function mad_ctpsa_geti(ctpsa::Ptr{CTPSA{Desc}}, i::Cint)::Cdouble + val = @ccall MAD_TPSA.mad_ctpsa_geti(ctpsa::Ptr{CTPSA{Desc}}, i::Cint)::Cdouble + return val +end + + +""" +Original Fortran function: +ctpsa,n,s +bind(C) +import ; implicit none + complex(c_cpx_t) :: val ! value at string monomial + type(c_ptr), value, intent(in) :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as string "[0-9]*" +""" +""" + mad_ctpsa_gets(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + +### Input +- `ctpsa` +- `n` +- `s` + +### Output +- `val` +""" +function mad_ctpsa_gets(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + val = @ccall MAD_TPSA.mad_ctpsa_gets(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring)::Cdouble + return val +end + + +""" +Original Fortran function: +ctpsa,n,m +bind(C) +import ; implicit none + complex(c_cpx_t) :: val ! value at monomial + type(c_ptr), value, intent(in) :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_ctpsa_getm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + +### Input +- `ctpsa` +- `n` +- `m` + +### Output +- `val` +""" +function mad_ctpsa_getm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + val = @ccall MAD_TPSA.mad_ctpsa_getm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + return val +end + + +""" +Original Fortran function: +ctpsa,n,m +bind(C) +import ; implicit none + complex(c_cpx_t) :: val ! value at sparse monomial + type(c_ptr), value, intent(in) :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) +""" +""" + mad_ctpsa_getsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + +### Input +- `ctpsa` +- `n` +- `m` + +### Output +- `val` +""" +function mad_ctpsa_getsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + val = @ccall MAD_TPSA.mad_ctpsa_getsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cdouble + return val +end + + +""" +Original Fortran subroutine: +ctpsa,i,n,v +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! vector length + complex(c_cpx_t) :: v(*) ! vector to fill +""" +""" + mad_ctpsa_getv!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + +### Input +- `ctpsa` +- `i` +- `n` +- `v` +""" +function mad_ctpsa_getv!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + @ccall MAD_TPSA.mad_ctpsa_getv(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + complex(c_cpx_t), value, intent(in) :: a, b ! ct[0] = a*ct[0]+b +""" +""" + mad_ctpsa_set0!(ctpsa::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble) + +### Input +- `ctpsa` +- `a` +- `b` +""" +function mad_ctpsa_set0!(ctpsa::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_set0(ctpsa::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,i,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + complex(c_cpx_t), value, intent(in) :: a, b ! ct[i] = a*ct[i]+b +""" +""" + mad_ctpsa_seti!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble) + +### Input +- `ctpsa` +- `i` +- `a` +- `b` +""" +function mad_ctpsa_seti!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_seti(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,n,s,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! string length or 0 (unknown) + character(c_char), intent(in) :: s(*) ! monomial as string "[0-9]*" + complex(c_cpx_t), value, intent(in) :: a, b ! ct[s] = a*ct[s]+b +""" +""" + mad_ctpsa_sets!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble) + +### Input +- `ctpsa` +- `n` +- `s` +- `a` +- `b` +""" +function mad_ctpsa_sets!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_sets(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, s::Cstring, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,n,m,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial + complex(c_cpx_t), value, intent(in) :: a, b ! ct[m] = a*ct[m]+b +""" +""" + mad_ctpsa_setm!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + +### Input +- `ctpsa` +- `n` +- `m` +- `a` +- `b` +""" +function mad_ctpsa_setm!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_setm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,n,m,a,b +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_int), intent(in) :: m(*) ! sparse monomial (idx,ord) + complex(c_cpx_t), value, intent(in) :: a, b ! ct[m] = a*ct[m]+b +""" +""" + mad_ctpsa_setsm!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + +### Input +- `ctpsa` +- `n` +- `m` +- `a` +- `b` +""" +function mad_ctpsa_setsm!(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble) + @ccall MAD_TPSA.mad_ctpsa_setsm(ctpsa::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}, a::Cdouble, b::Cdouble)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,i,n,v +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa + integer(c_idx_t), value, intent(in) :: i ! slot index (must be valid) + integer(c_ssz_t), value, intent(in) :: n ! vector length + complex(c_cpx_t), intent(in) :: v(*) ! vector to copy +""" +""" + mad_ctpsa_setv!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + +### Input +- `ctpsa` +- `i` +- `n` +- `v` +""" +function mad_ctpsa_setv!(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar) + @ccall MAD_TPSA.mad_ctpsa_setv(ctpsa::Ptr{CTPSA{Desc}}, i::Cint, n::Cint, v::Cuchar)::Cvoid +end + + +""" +Original Fortran function: +ctpsa_a,ctpsa_b,eps_ +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b + real(c_num_t), value, intent(in) :: eps_ ! tolerance during comparison +""" +""" + mad_ctpsa_equ(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, eps_::Cdouble)::Cuchar + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `eps_` + +### Output +- `ret` +""" +function mad_ctpsa_equ(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, eps_::Cdouble)::Cuchar + ret = @ccall MAD_TPSA.mad_ctpsa_equ(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, eps_::Cdouble)::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_dif!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_dif!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_dif(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_add!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_add!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_add(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sub!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_sub!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sub(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_mul!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_mul!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_mul(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_div!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_div!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_div(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_pow!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_pow!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_pow(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,n,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + integer(c_int), value, intent(in) :: n ! power (integer) + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_powi!(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `n` +- `ctpsa_r` +""" +function mad_ctpsa_powi!(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_powi(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,v,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + complex(c_cpx_t), value, intent(in) :: v ! power (real) + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_pown!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `v` +- `ctpsa_r` +""" +function mad_ctpsa_pown!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_pown(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +ctpsa_a,tpsa_b,eps +bind(C) +import ; implicit none + logical(c_bool) :: ret ! true or false + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b + real(c_num_t), value, intent(in) :: eps ! tolerance during comparison +""" +""" + mad_ctpsa_equt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps::Cdouble)::Cuchar + +### Input +- `ctpsa_a` +- `tpsa_b` +- `eps` + +### Output +- `ret` +""" +function mad_ctpsa_equt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps::Cdouble)::Cuchar + ret = @ccall MAD_TPSA.mad_ctpsa_equt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, eps::Cdouble)::Cuchar + return ret +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_addt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_addt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_addt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_subt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_subt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_subt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tsub!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `tpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_tsub!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tsub(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_dift!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_dift!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_dift(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tdif!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `tpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_tdif!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tdif(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_mult!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_mult!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_mult(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_divt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_divt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_divt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tdiv!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `tpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_tdiv!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tdiv(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_powt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_powt!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_powt(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, ctpsa_b ! lhs, rhs + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tpow!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `tpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_tpow!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tpow(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,tpsa_b,ctpsa_r,nv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a, tpsa_b ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: nv ! #variables (desc%nv if 0) +""" +""" + mad_ctpsa_poisbrat!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + +### Input +- `ctpsa_a` +- `tpsa_b` +- `ctpsa_r` +- `nv` +""" +function mad_ctpsa_poisbrat!(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + @ccall MAD_TPSA.mad_ctpsa_poisbrat(ctpsa_a::Ptr{CTPSA{Desc}}, tpsa_b::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +tpsa_a,ctpsa_b,ctpsa_r,nv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: tpsa_a, ctpsa_b ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: nv ! #variables (desc%nv if 0) +""" +""" + mad_ctpsa_tpoisbra!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + +### Input +- `tpsa_a` +- `ctpsa_b` +- `ctpsa_r` +- `nv` +""" +function mad_ctpsa_tpoisbra!(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + @ccall MAD_TPSA.mad_ctpsa_tpoisbra(tpsa_a::Ptr{RTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_abs!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_abs!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_abs(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_arg!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_arg!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_arg(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_conj!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_conj!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_conj(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +ctpsa_a,ctpsa_b_ +bind(C) +import ; implicit none + complex(c_cpx_t) :: nrm1 ! sum_i |a[i]-b_[i]| + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b_ +""" +""" + mad_ctpsa_nrm1(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + +### Input +- `ctpsa_a` +- `ctpsa_b_` + +### Output +- `nrm1` +""" +function mad_ctpsa_nrm1(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + nrm1 = @ccall MAD_TPSA.mad_ctpsa_nrm1(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + return nrm1 +end + + +""" +Original Fortran function: +ctpsa_a,ctpsa_b_ +bind(C) +import ; implicit none + complex(c_cpx_t) :: nrm2 ! sqrt(sum_i (a[i]-b_[i])^2) + type(c_ptr), value, intent(in) :: ctpsa_a, ctpsa_b_ +""" +""" + mad_ctpsa_nrm2(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + +### Input +- `ctpsa_a` +- `ctpsa_b_` + +### Output +- `nrm2` +""" +function mad_ctpsa_nrm2(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + nrm2 = @ccall MAD_TPSA.mad_ctpsa_nrm2(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b_::Ptr{CTPSA{Desc}})::ComplexF64 + return nrm2 +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r,iv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: iv ! variable index (1st order) +""" +""" + mad_ctpsa_integ!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint) + +### Input +- `ctpsa_a` +- `ctpsa_r` +- `iv` +""" +function mad_ctpsa_integ!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint) + @ccall MAD_TPSA.mad_ctpsa_integ(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r,iv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: iv ! variable index (1st order) +""" +""" + mad_ctpsa_deriv!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint) + +### Input +- `ctpsa_a` +- `ctpsa_r` +- `iv` +""" +function mad_ctpsa_deriv!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint) + @ccall MAD_TPSA.mad_ctpsa_deriv(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, iv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r,n,m +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! monomial length + integer(c_ord_t), intent(in) :: m(*) ! monomial +""" +""" + mad_ctpsa_derivm!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +- `n` +- `m` +""" +function mad_ctpsa_derivm!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar}) + @ccall MAD_TPSA.mad_ctpsa_derivm(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, m::Ptr{Cuchar})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_b,ctpsa_r,nv +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a,ctpsa_b ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_int), value, intent(in) :: nv ! #variables (desc%nv if 0) +""" +""" + mad_ctpsa_poisbra!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + +### Input +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +- `nv` +""" +function mad_ctpsa_poisbra!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint) + @ccall MAD_TPSA.mad_ctpsa_poisbra(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, nv::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,n,coef,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + complex(c_cpx_t), intent(in) :: coef(*) ! vector of taylor coefs +""" +""" + mad_ctpsa_taylor!(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, coef::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `n` +- `coef` +- `ctpsa_r` +""" +function mad_ctpsa_taylor!(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, coef::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_taylor(ctpsa_a::Ptr{CTPSA{Desc}}, n::Cint, coef::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,v,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! src and dst + complex(c_cpx_t), value, intent(in) :: v ! r = r+v*a +""" +""" + mad_ctpsa_acc!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `v` +- `ctpsa_r` +""" +function mad_ctpsa_acc!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_acc(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,v,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + complex(c_cpx_t), value, intent(in) :: v ! r = v*a +""" +""" + mad_ctpsa_scl!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `v` +- `ctpsa_r` +""" +function mad_ctpsa_scl!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_scl(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,v,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + complex(c_cpx_t), value, intent(in) :: v ! r = v/a +""" +""" + mad_ctpsa_inv!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `v` +- `ctpsa_r` +""" +function mad_ctpsa_inv!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_inv(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,v,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst + complex(c_cpx_t), value, intent(in) :: v ! r = v/sqrt(a) +""" +""" + mad_ctpsa_invsqrt!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `v` +- `ctpsa_r` +""" +function mad_ctpsa_invsqrt!(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_invsqrt(ctpsa_a::Ptr{CTPSA{Desc}}, v::Cuchar, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sqrt!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_sqrt!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sqrt(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_exp!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_exp!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_exp(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_log!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_log!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_log(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_s,ctpsa_c +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_s, ctpsa_c ! dst_sin, dst_cos +""" +""" + mad_ctpsa_sincos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_s` +- `ctpsa_c` +""" +function mad_ctpsa_sincos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sincos(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sin!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_sin!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sin(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_cos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_cos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_cos(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tan!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_tan!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tan(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_cot!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_cot!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_cot(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sinc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_sinc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sinc(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_s,ctpsa_c +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_s, ctpsa_c ! dst_sin, dst_cos +""" +""" + mad_ctpsa_sincosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_s` +- `ctpsa_c` +""" +function mad_ctpsa_sincosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sincosh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_s::Ptr{CTPSA{Desc}}, ctpsa_c::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sinh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_sinh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sinh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_cosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_cosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_cosh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_tanh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_tanh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_tanh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_coth!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_coth!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_coth(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_sinhc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_sinhc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_sinhc(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_asin!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_asin!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_asin(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_acos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_acos!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_acos(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_atan!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_atan!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_atan(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_acot!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_acot!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_acot(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_asinh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_asinh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_asinh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_acosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_acosh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_acosh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_atanh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_atanh!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_atanh(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_acoth!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_acoth!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_acoth(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_erf!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_erf!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_erf(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_erfc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_erfc!(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_erfc(ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,b,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x+b +""" +""" + mad_ctpsa_axpb!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `b` +- `ctpsa_r` +""" +function mad_ctpsa_axpb!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axpb(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,b,ctpsa_y,c,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x+b*y+c +""" +""" + mad_ctpsa_axpbypc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `b` +- `ctpsa_y` +- `c` +- `ctpsa_r` +""" +function mad_ctpsa_axpbypc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axpbypc(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,ctpsa_y,b,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x*y+b +""" +""" + mad_ctpsa_axypb!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `ctpsa_y` +- `b` +- `ctpsa_r` +""" +function mad_ctpsa_axypb!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axypb(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,ctpsa_y,b,ctpsa_z,c,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y, ctpsa_z ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x*y+b*z+c +""" +""" + mad_ctpsa_axypbzpc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_z::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `ctpsa_y` +- `b` +- `ctpsa_z` +- `c` +- `ctpsa_r` +""" +function mad_ctpsa_axypbzpc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_z::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axypbzpc(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_z::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,ctpsa_y,b,ctpsa_u,ctpsa_v,c,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y, ctpsa_u, ctpsa_v ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x*y+b*u*v+c +""" +""" + mad_ctpsa_axypbvwpc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_u::Ptr{CTPSA{Desc}}, ctpsa_v::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `ctpsa_y` +- `b` +- `ctpsa_u` +- `ctpsa_v` +- `c` +- `ctpsa_r` +""" +function mad_ctpsa_axypbvwpc!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_u::Ptr{CTPSA{Desc}}, ctpsa_v::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axypbvwpc(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_u::Ptr{CTPSA{Desc}}, ctpsa_v::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +a,ctpsa_x,b,ctpsa_y,c,ctpsa_z,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y, ctpsa_z ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x^2+b*y^2+c*z^2 +""" +""" + mad_ctpsa_ax2pby2pcz2!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_z::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `a` +- `ctpsa_x` +- `b` +- `ctpsa_y` +- `c` +- `ctpsa_z` +- `ctpsa_r` +""" +function mad_ctpsa_ax2pby2pcz2!(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_z::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_ax2pby2pcz2(a::Cdouble, ctpsa_x::Ptr{CTPSA{Desc}}, b::Cdouble, ctpsa_y::Ptr{CTPSA{Desc}}, c::Ptr{RTPSA{Desc}}, ctpsa_z::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_x,a,b,c,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x ! src + type(c_ptr), value :: ctpsa_r ! dst=a*x+sqrt(b+c*x^2) +""" +""" + mad_ctpsa_axpsqrtbpcx2!(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_x` +- `a` +- `b` +- `c` +- `ctpsa_r` +""" +function mad_ctpsa_axpsqrtbpcx2!(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_axpsqrtbpcx2(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_x,a,b,c,ctpsa_r +bind(C) +import ; implicit none + complex(c_cpx_t), value, intent(in) :: a, b, c ! coefs + type(c_ptr), value, intent(in) :: ctpsa_x ! src + type(c_ptr), value :: ctpsa_r ! dst=log(a*x+sqrt(b+c*x^2)) +""" +""" + mad_ctpsa_logaxpsqrtbpcx2!(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_x` +- `a` +- `b` +- `c` +- `ctpsa_r` +""" +function mad_ctpsa_logaxpsqrtbpcx2!(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_logaxpsqrtbpcx2(ctpsa_x::Ptr{CTPSA{Desc}}, a::Cdouble, b::Cdouble, c::Ptr{RTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa_x,ctpsa_y,ctpsa_r +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa_x, ctpsa_y ! src + type(c_ptr), value :: ctpsa_r ! dst=log(x/y) +""" +""" + mad_ctpsa_logxdy!(ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `ctpsa_x` +- `ctpsa_y` +- `ctpsa_r` +""" +function mad_ctpsa_logxdy!(ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_logxdy(ctpsa_x::Ptr{CTPSA{Desc}}, ctpsa_y::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran function: +na,ctpsa_a +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + real(c_num_t) :: mnrm ! nrm +""" +""" + mad_ctpsa_mnrm(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}})::Cdouble + +### Input +- `na` +- `ctpsa_a` + +### Output +- `mnrm` +""" +function mad_ctpsa_mnrm(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}})::Cdouble + mnrm = @ccall MAD_TPSA.mad_ctpsa_mnrm(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}})::Cdouble + return mnrm +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr) :: ctpsa_r(*) ! dst +""" +""" + mad_ctpsa_minv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_minv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_minv(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_r,select +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr) :: ctpsa_r(*) ! dst + integer(c_ssz_t), intent(in) :: select(*) ! slots to selected +""" +""" + mad_ctpsa_pminv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, select::Ptr{Cint}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_r` +- `select` +""" +function mad_ctpsa_pminv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, select::Ptr{Cint}) + @ccall MAD_TPSA.mad_ctpsa_pminv(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}, select::Ptr{Cint})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,nb,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*), ctpsa_b(*) ! src + type(c_ptr) :: ctpsa_r(*) ! dst[na] +""" +""" + mad_ctpsa_compose!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `nb` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_compose!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_compose(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,nb,vb,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + complex(c_cpx_t), intent(in) :: vb(*) ! src + type(c_ptr) :: ctpsa_r(*) ! dst[na] +""" +""" + mad_ctpsa_translate!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `nb` +- `vb` +- `ctpsa_r` +""" +function mad_ctpsa_translate!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_translate(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,nb,vb,vr +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nb ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + complex(c_cpx_t), intent(in) :: vb(*) ! src + complex(c_cpx_t) :: vr(*) ! dst[nb] +""" +""" + mad_ctpsa_eval!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble}) + +### Input +- `na` +- `ctpsa_a` +- `nb` +- `vb` +- `vr` +""" +function mad_ctpsa_eval!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble}) + @ccall MAD_TPSA.mad_ctpsa_eval(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nb::Cint, vb::Ptr{Cdouble}, vr::Ptr{Cdouble})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,nr,ctpsa_r,n,t2r_,pb +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na, nr ! vectors lengths + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr) :: ctpsa_r(*) ! dst + integer(c_ssz_t), value, intent(in) :: n ! vector length + integer(c_idx_t), intent(in) :: t2r_(*) ! vector of index lookup + integer(c_int), value, intent(in) :: pb ! poisson bracket 0,1:fwd,-1:bwd +""" +""" + mad_ctpsa_mconv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nr::Cint, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + +### Input +- `na` +- `ctpsa_a` +- `nr` +- `ctpsa_r` +- `n` +- `t2r_` +- `pb` +""" +function mad_ctpsa_mconv!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nr::Cint, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint) + @ccall MAD_TPSA.mad_ctpsa_mconv(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, nr::Cint, ctpsa_r::Ptr{CTPSA{Desc}}, n::Cint, t2r_::Ptr{Cint}, pb::Cint)::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), value, intent(in) :: ctpsa_a ! src + type(c_ptr), intent(out) :: ctpsa_r(*) ! dst +""" +""" + mad_ctpsa_vec2fld!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_vec2fld!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_vec2fld(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_fld2vec!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_r` +""" +function mad_ctpsa_fld2vec!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_fld2vec(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr), value, intent(in) :: ctpsa_b ! src + type(c_ptr), value :: ctpsa_r ! dst +""" +""" + mad_ctpsa_fgrad!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_fgrad!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_fgrad(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: ctpsa_a(*), ctpsa_b(*) ! src + type(c_ptr), intent(out) :: ctpsa_r(*) ! dst[na] +""" +""" + mad_ctpsa_liebra!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_liebra!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_liebra(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: ctpsa_a(*), ctpsa_b(*) ! src + type(c_ptr), intent(out) :: ctpsa_r(*) ! dst[na] +""" +""" + mad_ctpsa_exppb!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_exppb!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_exppb(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +na,ctpsa_a,ctpsa_b,ctpsa_r +bind(C) +import ; implicit none + integer(c_ssz_t), value, intent(in) :: na ! vectors length + type(c_ptr), intent(in) :: ctpsa_a(*) ! src + type(c_ptr), intent(in), optional :: ctpsa_b(*) ! src + type(c_ptr), intent(out) :: ctpsa_r(*) ! dst[na] +""" +""" + mad_ctpsa_logpb!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + +### Input +- `na` +- `ctpsa_a` +- `ctpsa_b` +- `ctpsa_r` +""" +function mad_ctpsa_logpb!(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}}) + @ccall MAD_TPSA.mad_ctpsa_logpb(na::Cint, ctpsa_a::Ptr{CTPSA{Desc}}, ctpsa_b::Ptr{CTPSA{Desc}}, ctpsa_r::Ptr{CTPSA{Desc}})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,name_,eps_,nohdr_,stream_ +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + character(c_char), intent(in) :: name_(*) ! tpsa name (nul term. C str) + real(c_num_t), value, intent(in) :: eps_ ! display precision, e.g. 1d-12 + integer(c_int), value, intent(in) :: nohdr_ ! discard header if not zero + type(c_ptr), value :: stream_ ! dst=c_null_ptr => stdio +""" +""" + mad_ctpsa_print!(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid}) + +### Input +- `ctpsa` +- `name_` +- `eps_` +- `nohdr_` +- `stream_` +""" +function mad_ctpsa_print!(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_ctpsa_print(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, eps_::Cdouble, nohdr_::Cint, stream_::Ptr{Cvoid})::Cvoid +end + + +""" +Original Fortran function: +stream_ +bind(C) +import ; implicit none + type(c_ptr) :: ctpsa ! tpsa to read + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_ctpsa_scan(stream_::Ptr{Cvoid})::Ptr{CTPSA{Desc}} + +### Input +- `stream_` + +### Output +- `ctpsa` +""" +function mad_ctpsa_scan(stream_::Ptr{Cvoid})::Ptr{CTPSA{Desc}} + ctpsa = @ccall MAD_TPSA.mad_ctpsa_scan(stream_::Ptr{Cvoid})::Ptr{CTPSA{Desc}} + return ctpsa +end + + +""" +Original Fortran function: +kind_,name_,stream_ +bind(C) +import ; implicit none + type(c_ptr) :: desc ! descriptor from header + integer(c_int), optional, intent(out) :: kind_! tpsa kind (0 real, 1 complex) + character(c_char), optional, intent(out) :: name_(*) ! tpsa name (nul term. C str) + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_ctpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + +### Input +- `kind_` +- `name_` +- `stream_` + +### Output +- `desc` +""" +function mad_ctpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + desc = @ccall MAD_TPSA.mad_ctpsa_scan_hdr(kind_::Cint, name_::Cstring, stream_::Ptr{Cvoid})::Ptr{Desc{RTPSA,CTPSA}} + return desc +end + + +""" +Original Fortran subroutine: +ctpsa,stream_ +bind(C) +import ; implicit none + type(c_ptr), value :: ctpsa ! tpsa to read + type(c_ptr), value, intent(in) :: stream_ ! src=c_null_ptr => stdin +""" +""" + mad_ctpsa_scan_coef!(ctpsa::Ptr{CTPSA{Desc}}, stream_::Ptr{Cvoid}) + +### Input +- `ctpsa` +- `stream_` +""" +function mad_ctpsa_scan_coef!(ctpsa::Ptr{CTPSA{Desc}}, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_ctpsa_scan_coef(ctpsa::Ptr{CTPSA{Desc}}, stream_::Ptr{Cvoid})::Cvoid +end + + +""" +Original Fortran subroutine: +ctpsa,name_,fnam_,line_,stream_ +bind(C) +import ; implicit none + type(c_ptr), value, intent(in) :: ctpsa ! src + character(c_char), intent(in) :: name_(*) ! tpsa name (nul term. C str) + character(c_char), intent(in) :: fnam_(*) ! filename (nul term. C str) + integer(c_int), value, intent(in) :: line_ ! line number or 0 + type(c_ptr), value :: stream_ ! dst=c_null_ptr => stdio +""" +""" + mad_ctpsa_debug!(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid}) + +### Input +- `ctpsa` +- `name_` +- `fnam_` +- `line_` +- `stream_` +""" +function mad_ctpsa_debug!(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid}) + @ccall MAD_TPSA.mad_ctpsa_debug(ctpsa::Ptr{CTPSA{Desc}}, name_::Cstring, fnam_::Cstring, line_::Cint, stream_::Ptr{Cvoid})::Cvoid +end + + + + + + + + + + + + + + + + + + + + + +# ------------------------------------------------------------------------------------------ +# HIGHER LEVEL FUNCTIONS BELOW: + +# ------------------------------------------------------------------------------------------ +# DESCRIPTOR FUNCTIONS: + +""" + new_desc(nv::Integer, mo::Integer)::Ptr{Desc{RTPSA,CTPSA}} Creates a TPSA descriptor with the specified number of variables and maximum order. The number of parameters is set to 0. Input: nv -- Number of variables - mo -- Maximum order, must be between 0x0 and 0x255 (UInt8) + mo -- Maximum order Output: A pointer to the TPSA descriptor created, with: Desc.nv = nv Desc.mo = mo """ -function new_desc(nv::Integer, mo::UInt8)::Ptr{Desc{RTPSA,CTPSA}} +function new_desc(nv::Integer, mo::Integer)::Ptr{Desc{RTPSA,CTPSA}} d = @ccall MAD_TPSA.mad_desc_newv(nv::Cint,mo::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} return d end """ - new_desc(nv::Integer, mo::UInt8, np::Integer, po::UInt8)::Ptr{Desc{RTPSA,CTPSA}} + new_desc(nv::Integer, mo::Integer, np_::Integer, po_::Integer)::Ptr{Desc{RTPSA,CTPSA}} Creates a TPSA descriptor with the specifed number of variables, maximum order, number of parameters, and parameter order. Input: nv -- Number of variables - mo -- Maximum order, must be between 0x0 and 0x255 (UInt8) - np -- Number of parameters - po -- Parameter order, must be between 0x0 and 0x255 (UInt8) + mo -- Maximum order + np_ -- Number of parameters + po_ -- Parameter order Output: A pointer to the TPSA descriptor created, with: Desc.nv = nv Desc.mo = mo - Desc.np = np - Desc.po = po + Desc.np = np_ + Desc.po = po_ """ -function new_desc(nv::Integer, mo::UInt8, np::Integer, po::UInt8)::Ptr{Desc{RTPSA,CTPSA}} - d = @ccall MAD_TPSA.mad_desc_newvp(nv::Cint, mo::Cuchar, np::Cint, po::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} +function new_desc(nv::Integer, mo::Integer, np_::Integer, po_::Integer)::Ptr{Desc{RTPSA,CTPSA}} + d = @ccall MAD_TPSA.mad_desc_newvp(nv::Cint, mo::Cuchar, np_::Cint, po_::Cuchar)::Ptr{Desc{RTPSA,CTPSA}} return d end """ - new_desc(nv::Integer, mo::UInt8, np::Integer, po::UInt8, no::Vector{<:UInt8})::Ptr{Desc{RTPSA,CTPSA}} + new_desc(nv::Integer, mo::Integer, np_::Integer, po_::Integer, no_::Vector{<:Integer})::Ptr{Desc{RTPSA,CTPSA}} Creates a TPSA descriptor with the specifed number of variables, maximum order, number of parameters, parameter order, and individual variable/parameter orders @@ -68,34 +6006,62 @@ and the next np entries correspond the parameters' orders. Input: nv -- Number of variables - mo -- Maximum order, must be between 0x0 and 0x255 (UInt8) - np -- Number of parameters - po -- Parameter order, must be between 0x0 and 0x255 (UInt8) - no -- Vector of variable and parameter orders, in order. Must be length nv+np (FIGURE OUT order). + mo -- Maximum order + np_ -- Number of parameters + po_ -- Parameter order + no_ -- Vector of variable and parameter orders, in order. Must be length nv+np_ (FIGURE OUT order). Output: A pointer to the TPSA descriptor created, with: Desc.nv = nv Desc.mo = mo - Desc.np = np - Desc.po = po - Desc.no = no + Desc.np = np_ + Desc.po = po_ + Desc.no = no_ """ -function new_desc(nv::Integer, mo::UInt8, np::Integer, po::UInt8, no::Vector{<:UInt8})::Ptr{Desc{RTPSA,CTPSA}} - d = @ccall MAD_TPSA.mad_desc_newvpo(nv::Cint, mo::Cuchar, np::Cint, po::Cuchar, no::Ptr{Cuchar})::Ptr{Desc{RTPSA,CTPSA}} +function new_desc(nv::Integer, mo::Integer, np_::Integer, po_::Integer, no_::Vector{<:Integer})::Ptr{Desc{RTPSA,CTPSA}} + no = convert(Vector{UInt8}, no_) + d = @ccall MAD_TPSA.mad_desc_newvpo(nv::Cint, mo::Cuchar, np_::Cint, po_::Cuchar, no::Ptr{Cuchar})::Ptr{Desc{RTPSA,CTPSA}} return d end +""" + del!(d::Ptr{Desc{RTPSA,CTPSA}}) + + Destroys the descriptor d. + + Input: + d -- Descriptor to destroy + + Output: + None. +""" +function del!(d::Ptr{Desc{RTPSA,CTPSA}}) + @ccall MAD_TPSA.mad_desc_del(d::Ptr{Desc{RTPSA,CTPSA}})::Cvoid +end + +""" + cleanup() + + Destroys all descriptors. +""" +function cleanup() + @ccall MAD_TPSA.mad_desc_del(0::Cint)::Cvoid +end + + +# ------------------------------------------------------------------------------------------ +# TPSA FUNCTIONS """ - new_TPSA(d::Ptr{Desc{RTPSA,CTPSA}}, mo::UInt8)::Ptr{RTPSA{Desc}} + new_TPSA(d::Ptr{Desc{RTPSA,CTPSA}}, mo::Integer)::Ptr{RTPSA{Desc}} Creates a real TPSA defined by the specified descriptor and maximum order. If mad_tpsa_default is passed for mo, the mo defined in the descriptor is used. Input: d -- Descriptor for TPSA - mo -- Maximum order of TPSA, must be between 0x0 and 0x255 (UInt8) + mo -- Maximum order of TPSA Output: A pointer to the real TPSA created, with: @@ -103,24 +6069,24 @@ end RTPSA.mo = mo and all other members initialized to 0. """ -function new_TPSA(d::Ptr{Desc{RTPSA,CTPSA}}, mo::UInt8)::Ptr{RTPSA{Desc}} +function new_TPSA(d::Ptr{Desc{RTPSA,CTPSA}}, mo::Integer)::Ptr{RTPSA{Desc}} @ccall MAD_TPSA.mad_tpsa_newd(d::Ptr{Desc{RTPSA,CTPSA}},mo::Cuchar)::Ptr{RTPSA{Desc}} end """ - new_TPSA(t::Ptr{RTPSA{Desc}}, mo::UInt8)::Ptr{RTPSA{Desc}} + new_TPSA(t::Ptr{RTPSA{Desc}}, mo::Integer)::Ptr{RTPSA{Desc}} Creates a real TPSA copy of the inputted TPSA, with maximum order specified by mo. If mad_tpsa_same is passed for mo, the mo currently in t is used for the created TPSA. Input: t -- Pointer to real TPSA to copy - mo -- Maximum order of new TPSA, must be between 0x0 and 0x255 (UInt8) + mo -- Maximum order of new TPSA Output: A pointer to the real TPSA copy created with maximum order mo. """ -function new_TPSA(t::Ptr{RTPSA{Desc}}, mo::UInt8)::Ptr{RTPSA{Desc}} +function new_TPSA(t::Ptr{RTPSA{Desc}}, mo::Integer)::Ptr{RTPSA{Desc}} @ccall MAD_TPSA.mad_tpsa_new(t::Ptr{RTPSA{Desc}}, mo::Cuchar)::Ptr{RTPSA{Desc}} end @@ -128,7 +6094,7 @@ end set_TPSA(t::Ptr{RTPSA{Desc}}, i::Integer, n::Integer, v::Vector{<:Float64}) Sets the coefficients of the TPSA in indices i:i+n to those in v. That is, - t.coefs[i:i+n] = v. v must be length n. + t.coefs[i:i+n] = v. The coefficients are sorted by order. v must be length n. Input: t -- Pointer to real TPSA @@ -143,6 +6109,12 @@ function set_TPSA!(t::Ptr{RTPSA{Desc}}, i::Integer, n::Integer, v::Vector{<:Floa @ccall MAD_TPSA.mad_tpsa_setv(t::Ptr{RTPSA{Desc}}, i::Cint, n::Cuint, v::Ptr{Cdouble})::Cvoid end + +# ONly 1 function for setting needed +function set_TPSA!(t::Ptr{RTPSA{Desc}}, a::Float64, b::Float64) + @ccall MAD_TPSA.mad_tpsa_set0(t::Ptr{RTPSA{Desc}}, a::Cdouble, b::Cdouble)::Cvoid +end + """ print_TPSA(t::Ptr{RTPSA{Desc}}, name::AbstractString, eps_::Real = 0.0, nohdr_::Bool = false, filename::AbstractString = "", mode::AbstractString="w+") @@ -179,7 +6151,7 @@ end """ NEEDS DOCUMENTATION """ -function desc_maxlen(d::Ptr{Desc{RTPSA,CTPSA}}, mo::UInt8)::Int64 +function desc_maxlen(d::Ptr{Desc{RTPSA,CTPSA}}, mo::Integer)::Int64 ret = @ccall MAD_TPSA.mad_desc_maxlen(d::Ptr{Desc{RTPSA,CTPSA}}, mo::Cuchar)::Int64 return ret end @@ -232,28 +6204,5 @@ function del!(t::Ptr{RTPSA{Desc}}) @ccall MAD_TPSA.mad_tpsa_del(t::Ptr{RTPSA{Desc}})::Cvoid end -""" - del!(d::Ptr{Desc{RTPSA,CTPSA}}) - - Destroys the descriptor d. - - Input: - d -- Descriptor to destroy - - Output: - None. -""" -function del!(d::Ptr{Desc{RTPSA,CTPSA}}) - @ccall "libmad_tpsa".mad_desc_del(d::Ptr{Desc{RTPSA,CTPSA}})::Cvoid -end - -""" - cleanup() - Destroys all descriptors. -""" -function cleanup() - @ccall "libmad_tpsa".mad_desc_del(0::Cint)::Cvoid -end -end diff --git a/test/runtests.jl b/test/runtests.jl index 55c0e211..03e87387 100644 --- a/test/runtests.jl +++ b/test/runtests.jl @@ -8,4 +8,5 @@ using Test @test String(read("test2.txt")) == String(read("../gtpsa_c/gtpsa_ex2.txt")); @test String(read("test3.txt")) == String(read("../gtpsa_c/gtpsa_ex3.txt")); @test String(read("test4.txt")) == String(read("../gtpsa_c/gtpsa_ex4.txt")); + @test String(read("test5.txt")) == String(read("../gtpsa_c/gtpsa_ex5.txt")); end diff --git a/test/test5.txt b/test/test5.txt new file mode 100644 index 00000000..c08cb266 --- /dev/null +++ b/test/test5.txt @@ -0,0 +1,1487 @@ +d2 length=5151 coefs +d length= 686 coefs + + ini : R, NV = 6, MO = 2, NP = 94, PO = 1 + ******************************************************* + I COEFFICIENT ORDER EXPONENTS + 1 5.2359877559829882E-01 0 0 0 0 0 0 0 + 2 1.0000000000000000E+00 1 1 0 0 0 0 0 + 3 1.0000000000000000E+00 1 0 1 0 0 0 0 + 4 1.0000000000000000E+00 1 0 0 1 0 0 0 + 5 1.0000000000000000E+00 1 0 0 0 1 0 0 + 6 1.0000000000000000E+00 1 0 0 0 0 1 0 + 7 1.0000000000000000E+00 1 0 0 0 0 0 1 + 8 1.0000000000000000E+00 1 0 0 0 0 0 0 7^1 + 9 1.0000000000000000E+00 1 0 0 0 0 0 0 8^1 + 10 1.0000000000000000E+00 1 0 0 0 0 0 0 9^1 + 11 1.0000000000000000E+00 1 0 0 0 0 0 0 10^1 + 12 1.0000000000000000E+00 1 0 0 0 0 0 0 11^1 + 13 1.0000000000000000E+00 1 0 0 0 0 0 0 12^1 + 14 1.0000000000000000E+00 1 0 0 0 0 0 0 13^1 + 15 1.0000000000000000E+00 1 0 0 0 0 0 0 14^1 + 16 1.0000000000000000E+00 1 0 0 0 0 0 0 15^1 + 17 1.0000000000000000E+00 1 0 0 0 0 0 0 16^1 + 18 1.0000000000000000E+00 1 0 0 0 0 0 0 17^1 + 19 1.0000000000000000E+00 1 0 0 0 0 0 0 18^1 + 20 1.0000000000000000E+00 1 0 0 0 0 0 0 19^1 + 21 1.0000000000000000E+00 1 0 0 0 0 0 0 20^1 + 22 1.0000000000000000E+00 1 0 0 0 0 0 0 21^1 + 23 1.0000000000000000E+00 1 0 0 0 0 0 0 22^1 + 24 1.0000000000000000E+00 1 0 0 0 0 0 0 23^1 + 25 1.0000000000000000E+00 1 0 0 0 0 0 0 24^1 + 26 1.0000000000000000E+00 1 0 0 0 0 0 0 25^1 + 27 1.0000000000000000E+00 1 0 0 0 0 0 0 26^1 + 28 1.0000000000000000E+00 1 0 0 0 0 0 0 27^1 + 29 1.0000000000000000E+00 1 0 0 0 0 0 0 28^1 + 30 1.0000000000000000E+00 1 0 0 0 0 0 0 29^1 + 31 1.0000000000000000E+00 1 0 0 0 0 0 0 30^1 + 32 1.0000000000000000E+00 1 0 0 0 0 0 0 31^1 + 33 1.0000000000000000E+00 1 0 0 0 0 0 0 32^1 + 34 1.0000000000000000E+00 1 0 0 0 0 0 0 33^1 + 35 1.0000000000000000E+00 1 0 0 0 0 0 0 34^1 + 36 1.0000000000000000E+00 1 0 0 0 0 0 0 35^1 + 37 1.0000000000000000E+00 1 0 0 0 0 0 0 36^1 + 38 1.0000000000000000E+00 1 0 0 0 0 0 0 37^1 + 39 1.0000000000000000E+00 1 0 0 0 0 0 0 38^1 + 40 1.0000000000000000E+00 1 0 0 0 0 0 0 39^1 + 41 1.0000000000000000E+00 1 0 0 0 0 0 0 40^1 + 42 1.0000000000000000E+00 1 0 0 0 0 0 0 41^1 + 43 1.0000000000000000E+00 1 0 0 0 0 0 0 42^1 + 44 1.0000000000000000E+00 1 0 0 0 0 0 0 43^1 + 45 1.0000000000000000E+00 1 0 0 0 0 0 0 44^1 + 46 1.0000000000000000E+00 1 0 0 0 0 0 0 45^1 + 47 1.0000000000000000E+00 1 0 0 0 0 0 0 46^1 + 48 1.0000000000000000E+00 1 0 0 0 0 0 0 47^1 + 49 1.0000000000000000E+00 1 0 0 0 0 0 0 48^1 + 50 1.0000000000000000E+00 1 0 0 0 0 0 0 49^1 + 51 1.0000000000000000E+00 1 0 0 0 0 0 0 50^1 + 52 1.0000000000000000E+00 1 0 0 0 0 0 0 51^1 + 53 1.0000000000000000E+00 1 0 0 0 0 0 0 52^1 + 54 1.0000000000000000E+00 1 0 0 0 0 0 0 53^1 + 55 1.0000000000000000E+00 1 0 0 0 0 0 0 54^1 + 56 1.0000000000000000E+00 1 0 0 0 0 0 0 55^1 + 57 1.0000000000000000E+00 1 0 0 0 0 0 0 56^1 + 58 1.0000000000000000E+00 1 0 0 0 0 0 0 57^1 + 59 1.0000000000000000E+00 1 0 0 0 0 0 0 58^1 + 60 1.0000000000000000E+00 1 0 0 0 0 0 0 59^1 + 61 1.0000000000000000E+00 1 0 0 0 0 0 0 60^1 + 62 1.0000000000000000E+00 1 0 0 0 0 0 0 61^1 + 63 1.0000000000000000E+00 1 0 0 0 0 0 0 62^1 + 64 1.0000000000000000E+00 1 0 0 0 0 0 0 63^1 + 65 1.0000000000000000E+00 1 0 0 0 0 0 0 64^1 + 66 1.0000000000000000E+00 1 0 0 0 0 0 0 65^1 + 67 1.0000000000000000E+00 1 0 0 0 0 0 0 66^1 + 68 1.0000000000000000E+00 1 0 0 0 0 0 0 67^1 + 69 1.0000000000000000E+00 1 0 0 0 0 0 0 68^1 + 70 1.0000000000000000E+00 1 0 0 0 0 0 0 69^1 + 71 1.0000000000000000E+00 1 0 0 0 0 0 0 70^1 + 72 1.0000000000000000E+00 1 0 0 0 0 0 0 71^1 + 73 1.0000000000000000E+00 1 0 0 0 0 0 0 72^1 + 74 1.0000000000000000E+00 1 0 0 0 0 0 0 73^1 + 75 1.0000000000000000E+00 1 0 0 0 0 0 0 74^1 + 76 1.0000000000000000E+00 1 0 0 0 0 0 0 75^1 + 77 1.0000000000000000E+00 1 0 0 0 0 0 0 76^1 + 78 1.0000000000000000E+00 1 0 0 0 0 0 0 77^1 + 79 1.0000000000000000E+00 1 0 0 0 0 0 0 78^1 + 80 1.0000000000000000E+00 1 0 0 0 0 0 0 79^1 + 81 1.0000000000000000E+00 1 0 0 0 0 0 0 80^1 + 82 1.0000000000000000E+00 1 0 0 0 0 0 0 81^1 + 83 1.0000000000000000E+00 1 0 0 0 0 0 0 82^1 + 84 1.0000000000000000E+00 1 0 0 0 0 0 0 83^1 + 85 1.0000000000000000E+00 1 0 0 0 0 0 0 84^1 + 86 1.0000000000000000E+00 1 0 0 0 0 0 0 85^1 + 87 1.0000000000000000E+00 1 0 0 0 0 0 0 86^1 + 88 1.0000000000000000E+00 1 0 0 0 0 0 0 87^1 + 89 1.0000000000000000E+00 1 0 0 0 0 0 0 88^1 + 90 1.0000000000000000E+00 1 0 0 0 0 0 0 89^1 + 91 1.0000000000000000E+00 1 0 0 0 0 0 0 90^1 + 92 1.0000000000000000E+00 1 0 0 0 0 0 0 91^1 + 93 1.0000000000000000E+00 1 0 0 0 0 0 0 92^1 + 94 1.0000000000000000E+00 1 0 0 0 0 0 0 93^1 + 95 1.0000000000000000E+00 1 0 0 0 0 0 0 94^1 + 96 1.0000000000000000E+00 1 0 0 0 0 0 0 95^1 + 97 1.0000000000000000E+00 1 0 0 0 0 0 0 96^1 + 98 1.0000000000000000E+00 1 0 0 0 0 0 0 97^1 + 99 1.0000000000000000E+00 1 0 0 0 0 0 0 98^1 + 100 1.0000000000000000E+00 1 0 0 0 0 0 0 99^1 + 101 1.0000000000000000E+00 1 0 0 0 0 0 0 100^1 + + sin : R, NV = 6, MO = 2, NP = 94, PO = 1 + ******************************************************* + I COEFFICIENT ORDER EXPONENTS + 1 4.9999999999999994E-01 0 0 0 0 0 0 0 + 2 8.6602540378443871E-01 1 1 0 0 0 0 0 + 3 8.6602540378443871E-01 1 0 1 0 0 0 0 + 4 8.6602540378443871E-01 1 0 0 1 0 0 0 + 5 8.6602540378443871E-01 1 0 0 0 1 0 0 + 6 8.6602540378443871E-01 1 0 0 0 0 1 0 + 7 8.6602540378443871E-01 1 0 0 0 0 0 1 + 8 8.6602540378443871E-01 1 0 0 0 0 0 0 7^1 + 9 8.6602540378443871E-01 1 0 0 0 0 0 0 8^1 + 10 8.6602540378443871E-01 1 0 0 0 0 0 0 9^1 + 11 8.6602540378443871E-01 1 0 0 0 0 0 0 10^1 + 12 8.6602540378443871E-01 1 0 0 0 0 0 0 11^1 + 13 8.6602540378443871E-01 1 0 0 0 0 0 0 12^1 + 14 8.6602540378443871E-01 1 0 0 0 0 0 0 13^1 + 15 8.6602540378443871E-01 1 0 0 0 0 0 0 14^1 + 16 8.6602540378443871E-01 1 0 0 0 0 0 0 15^1 + 17 8.6602540378443871E-01 1 0 0 0 0 0 0 16^1 + 18 8.6602540378443871E-01 1 0 0 0 0 0 0 17^1 + 19 8.6602540378443871E-01 1 0 0 0 0 0 0 18^1 + 20 8.6602540378443871E-01 1 0 0 0 0 0 0 19^1 + 21 8.6602540378443871E-01 1 0 0 0 0 0 0 20^1 + 22 8.6602540378443871E-01 1 0 0 0 0 0 0 21^1 + 23 8.6602540378443871E-01 1 0 0 0 0 0 0 22^1 + 24 8.6602540378443871E-01 1 0 0 0 0 0 0 23^1 + 25 8.6602540378443871E-01 1 0 0 0 0 0 0 24^1 + 26 8.6602540378443871E-01 1 0 0 0 0 0 0 25^1 + 27 8.6602540378443871E-01 1 0 0 0 0 0 0 26^1 + 28 8.6602540378443871E-01 1 0 0 0 0 0 0 27^1 + 29 8.6602540378443871E-01 1 0 0 0 0 0 0 28^1 + 30 8.6602540378443871E-01 1 0 0 0 0 0 0 29^1 + 31 8.6602540378443871E-01 1 0 0 0 0 0 0 30^1 + 32 8.6602540378443871E-01 1 0 0 0 0 0 0 31^1 + 33 8.6602540378443871E-01 1 0 0 0 0 0 0 32^1 + 34 8.6602540378443871E-01 1 0 0 0 0 0 0 33^1 + 35 8.6602540378443871E-01 1 0 0 0 0 0 0 34^1 + 36 8.6602540378443871E-01 1 0 0 0 0 0 0 35^1 + 37 8.6602540378443871E-01 1 0 0 0 0 0 0 36^1 + 38 8.6602540378443871E-01 1 0 0 0 0 0 0 37^1 + 39 8.6602540378443871E-01 1 0 0 0 0 0 0 38^1 + 40 8.6602540378443871E-01 1 0 0 0 0 0 0 39^1 + 41 8.6602540378443871E-01 1 0 0 0 0 0 0 40^1 + 42 8.6602540378443871E-01 1 0 0 0 0 0 0 41^1 + 43 8.6602540378443871E-01 1 0 0 0 0 0 0 42^1 + 44 8.6602540378443871E-01 1 0 0 0 0 0 0 43^1 + 45 8.6602540378443871E-01 1 0 0 0 0 0 0 44^1 + 46 8.6602540378443871E-01 1 0 0 0 0 0 0 45^1 + 47 8.6602540378443871E-01 1 0 0 0 0 0 0 46^1 + 48 8.6602540378443871E-01 1 0 0 0 0 0 0 47^1 + 49 8.6602540378443871E-01 1 0 0 0 0 0 0 48^1 + 50 8.6602540378443871E-01 1 0 0 0 0 0 0 49^1 + 51 8.6602540378443871E-01 1 0 0 0 0 0 0 50^1 + 52 8.6602540378443871E-01 1 0 0 0 0 0 0 51^1 + 53 8.6602540378443871E-01 1 0 0 0 0 0 0 52^1 + 54 8.6602540378443871E-01 1 0 0 0 0 0 0 53^1 + 55 8.6602540378443871E-01 1 0 0 0 0 0 0 54^1 + 56 8.6602540378443871E-01 1 0 0 0 0 0 0 55^1 + 57 8.6602540378443871E-01 1 0 0 0 0 0 0 56^1 + 58 8.6602540378443871E-01 1 0 0 0 0 0 0 57^1 + 59 8.6602540378443871E-01 1 0 0 0 0 0 0 58^1 + 60 8.6602540378443871E-01 1 0 0 0 0 0 0 59^1 + 61 8.6602540378443871E-01 1 0 0 0 0 0 0 60^1 + 62 8.6602540378443871E-01 1 0 0 0 0 0 0 61^1 + 63 8.6602540378443871E-01 1 0 0 0 0 0 0 62^1 + 64 8.6602540378443871E-01 1 0 0 0 0 0 0 63^1 + 65 8.6602540378443871E-01 1 0 0 0 0 0 0 64^1 + 66 8.6602540378443871E-01 1 0 0 0 0 0 0 65^1 + 67 8.6602540378443871E-01 1 0 0 0 0 0 0 66^1 + 68 8.6602540378443871E-01 1 0 0 0 0 0 0 67^1 + 69 8.6602540378443871E-01 1 0 0 0 0 0 0 68^1 + 70 8.6602540378443871E-01 1 0 0 0 0 0 0 69^1 + 71 8.6602540378443871E-01 1 0 0 0 0 0 0 70^1 + 72 8.6602540378443871E-01 1 0 0 0 0 0 0 71^1 + 73 8.6602540378443871E-01 1 0 0 0 0 0 0 72^1 + 74 8.6602540378443871E-01 1 0 0 0 0 0 0 73^1 + 75 8.6602540378443871E-01 1 0 0 0 0 0 0 74^1 + 76 8.6602540378443871E-01 1 0 0 0 0 0 0 75^1 + 77 8.6602540378443871E-01 1 0 0 0 0 0 0 76^1 + 78 8.6602540378443871E-01 1 0 0 0 0 0 0 77^1 + 79 8.6602540378443871E-01 1 0 0 0 0 0 0 78^1 + 80 8.6602540378443871E-01 1 0 0 0 0 0 0 79^1 + 81 8.6602540378443871E-01 1 0 0 0 0 0 0 80^1 + 82 8.6602540378443871E-01 1 0 0 0 0 0 0 81^1 + 83 8.6602540378443871E-01 1 0 0 0 0 0 0 82^1 + 84 8.6602540378443871E-01 1 0 0 0 0 0 0 83^1 + 85 8.6602540378443871E-01 1 0 0 0 0 0 0 84^1 + 86 8.6602540378443871E-01 1 0 0 0 0 0 0 85^1 + 87 8.6602540378443871E-01 1 0 0 0 0 0 0 86^1 + 88 8.6602540378443871E-01 1 0 0 0 0 0 0 87^1 + 89 8.6602540378443871E-01 1 0 0 0 0 0 0 88^1 + 90 8.6602540378443871E-01 1 0 0 0 0 0 0 89^1 + 91 8.6602540378443871E-01 1 0 0 0 0 0 0 90^1 + 92 8.6602540378443871E-01 1 0 0 0 0 0 0 91^1 + 93 8.6602540378443871E-01 1 0 0 0 0 0 0 92^1 + 94 8.6602540378443871E-01 1 0 0 0 0 0 0 93^1 + 95 8.6602540378443871E-01 1 0 0 0 0 0 0 94^1 + 96 8.6602540378443871E-01 1 0 0 0 0 0 0 95^1 + 97 8.6602540378443871E-01 1 0 0 0 0 0 0 96^1 + 98 8.6602540378443871E-01 1 0 0 0 0 0 0 97^1 + 99 8.6602540378443871E-01 1 0 0 0 0 0 0 98^1 + 100 8.6602540378443871E-01 1 0 0 0 0 0 0 99^1 + 101 8.6602540378443871E-01 1 0 0 0 0 0 0 100^1 + 102 -2.4999999999999997E-01 2 2 0 0 0 0 0 + 103 -4.9999999999999994E-01 2 1 1 0 0 0 0 + 104 -2.4999999999999997E-01 2 0 2 0 0 0 0 + 105 -4.9999999999999994E-01 2 1 0 1 0 0 0 + 106 -4.9999999999999994E-01 2 0 1 1 0 0 0 + 107 -2.4999999999999997E-01 2 0 0 2 0 0 0 + 108 -4.9999999999999994E-01 2 1 0 0 1 0 0 + 109 -4.9999999999999994E-01 2 0 1 0 1 0 0 + 110 -4.9999999999999994E-01 2 0 0 1 1 0 0 + 111 -2.4999999999999997E-01 2 0 0 0 2 0 0 + 112 -4.9999999999999994E-01 2 1 0 0 0 1 0 + 113 -4.9999999999999994E-01 2 0 1 0 0 1 0 + 114 -4.9999999999999994E-01 2 0 0 1 0 1 0 + 115 -4.9999999999999994E-01 2 0 0 0 1 1 0 + 116 -2.4999999999999997E-01 2 0 0 0 0 2 0 + 117 -4.9999999999999994E-01 2 1 0 0 0 0 1 + 118 -4.9999999999999994E-01 2 0 1 0 0 0 1 + 119 -4.9999999999999994E-01 2 0 0 1 0 0 1 + 120 -4.9999999999999994E-01 2 0 0 0 1 0 1 + 121 -4.9999999999999994E-01 2 0 0 0 0 1 1 + 122 -2.4999999999999997E-01 2 0 0 0 0 0 2 + 123 -4.9999999999999994E-01 2 1 0 0 0 0 0 7^1 + 124 -4.9999999999999994E-01 2 0 1 0 0 0 0 7^1 + 125 -4.9999999999999994E-01 2 0 0 1 0 0 0 7^1 + 126 -4.9999999999999994E-01 2 0 0 0 1 0 0 7^1 + 127 -4.9999999999999994E-01 2 0 0 0 0 1 0 7^1 + 128 -4.9999999999999994E-01 2 0 0 0 0 0 1 7^1 + 129 -4.9999999999999994E-01 2 1 0 0 0 0 0 8^1 + 130 -4.9999999999999994E-01 2 0 1 0 0 0 0 8^1 + 131 -4.9999999999999994E-01 2 0 0 1 0 0 0 8^1 + 132 -4.9999999999999994E-01 2 0 0 0 1 0 0 8^1 + 133 -4.9999999999999994E-01 2 0 0 0 0 1 0 8^1 + 134 -4.9999999999999994E-01 2 0 0 0 0 0 1 8^1 + 135 -4.9999999999999994E-01 2 1 0 0 0 0 0 9^1 + 136 -4.9999999999999994E-01 2 0 1 0 0 0 0 9^1 + 137 -4.9999999999999994E-01 2 0 0 1 0 0 0 9^1 + 138 -4.9999999999999994E-01 2 0 0 0 1 0 0 9^1 + 139 -4.9999999999999994E-01 2 0 0 0 0 1 0 9^1 + 140 -4.9999999999999994E-01 2 0 0 0 0 0 1 9^1 + 141 -4.9999999999999994E-01 2 1 0 0 0 0 0 10^1 + 142 -4.9999999999999994E-01 2 0 1 0 0 0 0 10^1 + 143 -4.9999999999999994E-01 2 0 0 1 0 0 0 10^1 + 144 -4.9999999999999994E-01 2 0 0 0 1 0 0 10^1 + 145 -4.9999999999999994E-01 2 0 0 0 0 1 0 10^1 + 146 -4.9999999999999994E-01 2 0 0 0 0 0 1 10^1 + 147 -4.9999999999999994E-01 2 1 0 0 0 0 0 11^1 + 148 -4.9999999999999994E-01 2 0 1 0 0 0 0 11^1 + 149 -4.9999999999999994E-01 2 0 0 1 0 0 0 11^1 + 150 -4.9999999999999994E-01 2 0 0 0 1 0 0 11^1 + 151 -4.9999999999999994E-01 2 0 0 0 0 1 0 11^1 + 152 -4.9999999999999994E-01 2 0 0 0 0 0 1 11^1 + 153 -4.9999999999999994E-01 2 1 0 0 0 0 0 12^1 + 154 -4.9999999999999994E-01 2 0 1 0 0 0 0 12^1 + 155 -4.9999999999999994E-01 2 0 0 1 0 0 0 12^1 + 156 -4.9999999999999994E-01 2 0 0 0 1 0 0 12^1 + 157 -4.9999999999999994E-01 2 0 0 0 0 1 0 12^1 + 158 -4.9999999999999994E-01 2 0 0 0 0 0 1 12^1 + 159 -4.9999999999999994E-01 2 1 0 0 0 0 0 13^1 + 160 -4.9999999999999994E-01 2 0 1 0 0 0 0 13^1 + 161 -4.9999999999999994E-01 2 0 0 1 0 0 0 13^1 + 162 -4.9999999999999994E-01 2 0 0 0 1 0 0 13^1 + 163 -4.9999999999999994E-01 2 0 0 0 0 1 0 13^1 + 164 -4.9999999999999994E-01 2 0 0 0 0 0 1 13^1 + 165 -4.9999999999999994E-01 2 1 0 0 0 0 0 14^1 + 166 -4.9999999999999994E-01 2 0 1 0 0 0 0 14^1 + 167 -4.9999999999999994E-01 2 0 0 1 0 0 0 14^1 + 168 -4.9999999999999994E-01 2 0 0 0 1 0 0 14^1 + 169 -4.9999999999999994E-01 2 0 0 0 0 1 0 14^1 + 170 -4.9999999999999994E-01 2 0 0 0 0 0 1 14^1 + 171 -4.9999999999999994E-01 2 1 0 0 0 0 0 15^1 + 172 -4.9999999999999994E-01 2 0 1 0 0 0 0 15^1 + 173 -4.9999999999999994E-01 2 0 0 1 0 0 0 15^1 + 174 -4.9999999999999994E-01 2 0 0 0 1 0 0 15^1 + 175 -4.9999999999999994E-01 2 0 0 0 0 1 0 15^1 + 176 -4.9999999999999994E-01 2 0 0 0 0 0 1 15^1 + 177 -4.9999999999999994E-01 2 1 0 0 0 0 0 16^1 + 178 -4.9999999999999994E-01 2 0 1 0 0 0 0 16^1 + 179 -4.9999999999999994E-01 2 0 0 1 0 0 0 16^1 + 180 -4.9999999999999994E-01 2 0 0 0 1 0 0 16^1 + 181 -4.9999999999999994E-01 2 0 0 0 0 1 0 16^1 + 182 -4.9999999999999994E-01 2 0 0 0 0 0 1 16^1 + 183 -4.9999999999999994E-01 2 1 0 0 0 0 0 17^1 + 184 -4.9999999999999994E-01 2 0 1 0 0 0 0 17^1 + 185 -4.9999999999999994E-01 2 0 0 1 0 0 0 17^1 + 186 -4.9999999999999994E-01 2 0 0 0 1 0 0 17^1 + 187 -4.9999999999999994E-01 2 0 0 0 0 1 0 17^1 + 188 -4.9999999999999994E-01 2 0 0 0 0 0 1 17^1 + 189 -4.9999999999999994E-01 2 1 0 0 0 0 0 18^1 + 190 -4.9999999999999994E-01 2 0 1 0 0 0 0 18^1 + 191 -4.9999999999999994E-01 2 0 0 1 0 0 0 18^1 + 192 -4.9999999999999994E-01 2 0 0 0 1 0 0 18^1 + 193 -4.9999999999999994E-01 2 0 0 0 0 1 0 18^1 + 194 -4.9999999999999994E-01 2 0 0 0 0 0 1 18^1 + 195 -4.9999999999999994E-01 2 1 0 0 0 0 0 19^1 + 196 -4.9999999999999994E-01 2 0 1 0 0 0 0 19^1 + 197 -4.9999999999999994E-01 2 0 0 1 0 0 0 19^1 + 198 -4.9999999999999994E-01 2 0 0 0 1 0 0 19^1 + 199 -4.9999999999999994E-01 2 0 0 0 0 1 0 19^1 + 200 -4.9999999999999994E-01 2 0 0 0 0 0 1 19^1 + 201 -4.9999999999999994E-01 2 1 0 0 0 0 0 20^1 + 202 -4.9999999999999994E-01 2 0 1 0 0 0 0 20^1 + 203 -4.9999999999999994E-01 2 0 0 1 0 0 0 20^1 + 204 -4.9999999999999994E-01 2 0 0 0 1 0 0 20^1 + 205 -4.9999999999999994E-01 2 0 0 0 0 1 0 20^1 + 206 -4.9999999999999994E-01 2 0 0 0 0 0 1 20^1 + 207 -4.9999999999999994E-01 2 1 0 0 0 0 0 21^1 + 208 -4.9999999999999994E-01 2 0 1 0 0 0 0 21^1 + 209 -4.9999999999999994E-01 2 0 0 1 0 0 0 21^1 + 210 -4.9999999999999994E-01 2 0 0 0 1 0 0 21^1 + 211 -4.9999999999999994E-01 2 0 0 0 0 1 0 21^1 + 212 -4.9999999999999994E-01 2 0 0 0 0 0 1 21^1 + 213 -4.9999999999999994E-01 2 1 0 0 0 0 0 22^1 + 214 -4.9999999999999994E-01 2 0 1 0 0 0 0 22^1 + 215 -4.9999999999999994E-01 2 0 0 1 0 0 0 22^1 + 216 -4.9999999999999994E-01 2 0 0 0 1 0 0 22^1 + 217 -4.9999999999999994E-01 2 0 0 0 0 1 0 22^1 + 218 -4.9999999999999994E-01 2 0 0 0 0 0 1 22^1 + 219 -4.9999999999999994E-01 2 1 0 0 0 0 0 23^1 + 220 -4.9999999999999994E-01 2 0 1 0 0 0 0 23^1 + 221 -4.9999999999999994E-01 2 0 0 1 0 0 0 23^1 + 222 -4.9999999999999994E-01 2 0 0 0 1 0 0 23^1 + 223 -4.9999999999999994E-01 2 0 0 0 0 1 0 23^1 + 224 -4.9999999999999994E-01 2 0 0 0 0 0 1 23^1 + 225 -4.9999999999999994E-01 2 1 0 0 0 0 0 24^1 + 226 -4.9999999999999994E-01 2 0 1 0 0 0 0 24^1 + 227 -4.9999999999999994E-01 2 0 0 1 0 0 0 24^1 + 228 -4.9999999999999994E-01 2 0 0 0 1 0 0 24^1 + 229 -4.9999999999999994E-01 2 0 0 0 0 1 0 24^1 + 230 -4.9999999999999994E-01 2 0 0 0 0 0 1 24^1 + 231 -4.9999999999999994E-01 2 1 0 0 0 0 0 25^1 + 232 -4.9999999999999994E-01 2 0 1 0 0 0 0 25^1 + 233 -4.9999999999999994E-01 2 0 0 1 0 0 0 25^1 + 234 -4.9999999999999994E-01 2 0 0 0 1 0 0 25^1 + 235 -4.9999999999999994E-01 2 0 0 0 0 1 0 25^1 + 236 -4.9999999999999994E-01 2 0 0 0 0 0 1 25^1 + 237 -4.9999999999999994E-01 2 1 0 0 0 0 0 26^1 + 238 -4.9999999999999994E-01 2 0 1 0 0 0 0 26^1 + 239 -4.9999999999999994E-01 2 0 0 1 0 0 0 26^1 + 240 -4.9999999999999994E-01 2 0 0 0 1 0 0 26^1 + 241 -4.9999999999999994E-01 2 0 0 0 0 1 0 26^1 + 242 -4.9999999999999994E-01 2 0 0 0 0 0 1 26^1 + 243 -4.9999999999999994E-01 2 1 0 0 0 0 0 27^1 + 244 -4.9999999999999994E-01 2 0 1 0 0 0 0 27^1 + 245 -4.9999999999999994E-01 2 0 0 1 0 0 0 27^1 + 246 -4.9999999999999994E-01 2 0 0 0 1 0 0 27^1 + 247 -4.9999999999999994E-01 2 0 0 0 0 1 0 27^1 + 248 -4.9999999999999994E-01 2 0 0 0 0 0 1 27^1 + 249 -4.9999999999999994E-01 2 1 0 0 0 0 0 28^1 + 250 -4.9999999999999994E-01 2 0 1 0 0 0 0 28^1 + 251 -4.9999999999999994E-01 2 0 0 1 0 0 0 28^1 + 252 -4.9999999999999994E-01 2 0 0 0 1 0 0 28^1 + 253 -4.9999999999999994E-01 2 0 0 0 0 1 0 28^1 + 254 -4.9999999999999994E-01 2 0 0 0 0 0 1 28^1 + 255 -4.9999999999999994E-01 2 1 0 0 0 0 0 29^1 + 256 -4.9999999999999994E-01 2 0 1 0 0 0 0 29^1 + 257 -4.9999999999999994E-01 2 0 0 1 0 0 0 29^1 + 258 -4.9999999999999994E-01 2 0 0 0 1 0 0 29^1 + 259 -4.9999999999999994E-01 2 0 0 0 0 1 0 29^1 + 260 -4.9999999999999994E-01 2 0 0 0 0 0 1 29^1 + 261 -4.9999999999999994E-01 2 1 0 0 0 0 0 30^1 + 262 -4.9999999999999994E-01 2 0 1 0 0 0 0 30^1 + 263 -4.9999999999999994E-01 2 0 0 1 0 0 0 30^1 + 264 -4.9999999999999994E-01 2 0 0 0 1 0 0 30^1 + 265 -4.9999999999999994E-01 2 0 0 0 0 1 0 30^1 + 266 -4.9999999999999994E-01 2 0 0 0 0 0 1 30^1 + 267 -4.9999999999999994E-01 2 1 0 0 0 0 0 31^1 + 268 -4.9999999999999994E-01 2 0 1 0 0 0 0 31^1 + 269 -4.9999999999999994E-01 2 0 0 1 0 0 0 31^1 + 270 -4.9999999999999994E-01 2 0 0 0 1 0 0 31^1 + 271 -4.9999999999999994E-01 2 0 0 0 0 1 0 31^1 + 272 -4.9999999999999994E-01 2 0 0 0 0 0 1 31^1 + 273 -4.9999999999999994E-01 2 1 0 0 0 0 0 32^1 + 274 -4.9999999999999994E-01 2 0 1 0 0 0 0 32^1 + 275 -4.9999999999999994E-01 2 0 0 1 0 0 0 32^1 + 276 -4.9999999999999994E-01 2 0 0 0 1 0 0 32^1 + 277 -4.9999999999999994E-01 2 0 0 0 0 1 0 32^1 + 278 -4.9999999999999994E-01 2 0 0 0 0 0 1 32^1 + 279 -4.9999999999999994E-01 2 1 0 0 0 0 0 33^1 + 280 -4.9999999999999994E-01 2 0 1 0 0 0 0 33^1 + 281 -4.9999999999999994E-01 2 0 0 1 0 0 0 33^1 + 282 -4.9999999999999994E-01 2 0 0 0 1 0 0 33^1 + 283 -4.9999999999999994E-01 2 0 0 0 0 1 0 33^1 + 284 -4.9999999999999994E-01 2 0 0 0 0 0 1 33^1 + 285 -4.9999999999999994E-01 2 1 0 0 0 0 0 34^1 + 286 -4.9999999999999994E-01 2 0 1 0 0 0 0 34^1 + 287 -4.9999999999999994E-01 2 0 0 1 0 0 0 34^1 + 288 -4.9999999999999994E-01 2 0 0 0 1 0 0 34^1 + 289 -4.9999999999999994E-01 2 0 0 0 0 1 0 34^1 + 290 -4.9999999999999994E-01 2 0 0 0 0 0 1 34^1 + 291 -4.9999999999999994E-01 2 1 0 0 0 0 0 35^1 + 292 -4.9999999999999994E-01 2 0 1 0 0 0 0 35^1 + 293 -4.9999999999999994E-01 2 0 0 1 0 0 0 35^1 + 294 -4.9999999999999994E-01 2 0 0 0 1 0 0 35^1 + 295 -4.9999999999999994E-01 2 0 0 0 0 1 0 35^1 + 296 -4.9999999999999994E-01 2 0 0 0 0 0 1 35^1 + 297 -4.9999999999999994E-01 2 1 0 0 0 0 0 36^1 + 298 -4.9999999999999994E-01 2 0 1 0 0 0 0 36^1 + 299 -4.9999999999999994E-01 2 0 0 1 0 0 0 36^1 + 300 -4.9999999999999994E-01 2 0 0 0 1 0 0 36^1 + 301 -4.9999999999999994E-01 2 0 0 0 0 1 0 36^1 + 302 -4.9999999999999994E-01 2 0 0 0 0 0 1 36^1 + 303 -4.9999999999999994E-01 2 1 0 0 0 0 0 37^1 + 304 -4.9999999999999994E-01 2 0 1 0 0 0 0 37^1 + 305 -4.9999999999999994E-01 2 0 0 1 0 0 0 37^1 + 306 -4.9999999999999994E-01 2 0 0 0 1 0 0 37^1 + 307 -4.9999999999999994E-01 2 0 0 0 0 1 0 37^1 + 308 -4.9999999999999994E-01 2 0 0 0 0 0 1 37^1 + 309 -4.9999999999999994E-01 2 1 0 0 0 0 0 38^1 + 310 -4.9999999999999994E-01 2 0 1 0 0 0 0 38^1 + 311 -4.9999999999999994E-01 2 0 0 1 0 0 0 38^1 + 312 -4.9999999999999994E-01 2 0 0 0 1 0 0 38^1 + 313 -4.9999999999999994E-01 2 0 0 0 0 1 0 38^1 + 314 -4.9999999999999994E-01 2 0 0 0 0 0 1 38^1 + 315 -4.9999999999999994E-01 2 1 0 0 0 0 0 39^1 + 316 -4.9999999999999994E-01 2 0 1 0 0 0 0 39^1 + 317 -4.9999999999999994E-01 2 0 0 1 0 0 0 39^1 + 318 -4.9999999999999994E-01 2 0 0 0 1 0 0 39^1 + 319 -4.9999999999999994E-01 2 0 0 0 0 1 0 39^1 + 320 -4.9999999999999994E-01 2 0 0 0 0 0 1 39^1 + 321 -4.9999999999999994E-01 2 1 0 0 0 0 0 40^1 + 322 -4.9999999999999994E-01 2 0 1 0 0 0 0 40^1 + 323 -4.9999999999999994E-01 2 0 0 1 0 0 0 40^1 + 324 -4.9999999999999994E-01 2 0 0 0 1 0 0 40^1 + 325 -4.9999999999999994E-01 2 0 0 0 0 1 0 40^1 + 326 -4.9999999999999994E-01 2 0 0 0 0 0 1 40^1 + 327 -4.9999999999999994E-01 2 1 0 0 0 0 0 41^1 + 328 -4.9999999999999994E-01 2 0 1 0 0 0 0 41^1 + 329 -4.9999999999999994E-01 2 0 0 1 0 0 0 41^1 + 330 -4.9999999999999994E-01 2 0 0 0 1 0 0 41^1 + 331 -4.9999999999999994E-01 2 0 0 0 0 1 0 41^1 + 332 -4.9999999999999994E-01 2 0 0 0 0 0 1 41^1 + 333 -4.9999999999999994E-01 2 1 0 0 0 0 0 42^1 + 334 -4.9999999999999994E-01 2 0 1 0 0 0 0 42^1 + 335 -4.9999999999999994E-01 2 0 0 1 0 0 0 42^1 + 336 -4.9999999999999994E-01 2 0 0 0 1 0 0 42^1 + 337 -4.9999999999999994E-01 2 0 0 0 0 1 0 42^1 + 338 -4.9999999999999994E-01 2 0 0 0 0 0 1 42^1 + 339 -4.9999999999999994E-01 2 1 0 0 0 0 0 43^1 + 340 -4.9999999999999994E-01 2 0 1 0 0 0 0 43^1 + 341 -4.9999999999999994E-01 2 0 0 1 0 0 0 43^1 + 342 -4.9999999999999994E-01 2 0 0 0 1 0 0 43^1 + 343 -4.9999999999999994E-01 2 0 0 0 0 1 0 43^1 + 344 -4.9999999999999994E-01 2 0 0 0 0 0 1 43^1 + 345 -4.9999999999999994E-01 2 1 0 0 0 0 0 44^1 + 346 -4.9999999999999994E-01 2 0 1 0 0 0 0 44^1 + 347 -4.9999999999999994E-01 2 0 0 1 0 0 0 44^1 + 348 -4.9999999999999994E-01 2 0 0 0 1 0 0 44^1 + 349 -4.9999999999999994E-01 2 0 0 0 0 1 0 44^1 + 350 -4.9999999999999994E-01 2 0 0 0 0 0 1 44^1 + 351 -4.9999999999999994E-01 2 1 0 0 0 0 0 45^1 + 352 -4.9999999999999994E-01 2 0 1 0 0 0 0 45^1 + 353 -4.9999999999999994E-01 2 0 0 1 0 0 0 45^1 + 354 -4.9999999999999994E-01 2 0 0 0 1 0 0 45^1 + 355 -4.9999999999999994E-01 2 0 0 0 0 1 0 45^1 + 356 -4.9999999999999994E-01 2 0 0 0 0 0 1 45^1 + 357 -4.9999999999999994E-01 2 1 0 0 0 0 0 46^1 + 358 -4.9999999999999994E-01 2 0 1 0 0 0 0 46^1 + 359 -4.9999999999999994E-01 2 0 0 1 0 0 0 46^1 + 360 -4.9999999999999994E-01 2 0 0 0 1 0 0 46^1 + 361 -4.9999999999999994E-01 2 0 0 0 0 1 0 46^1 + 362 -4.9999999999999994E-01 2 0 0 0 0 0 1 46^1 + 363 -4.9999999999999994E-01 2 1 0 0 0 0 0 47^1 + 364 -4.9999999999999994E-01 2 0 1 0 0 0 0 47^1 + 365 -4.9999999999999994E-01 2 0 0 1 0 0 0 47^1 + 366 -4.9999999999999994E-01 2 0 0 0 1 0 0 47^1 + 367 -4.9999999999999994E-01 2 0 0 0 0 1 0 47^1 + 368 -4.9999999999999994E-01 2 0 0 0 0 0 1 47^1 + 369 -4.9999999999999994E-01 2 1 0 0 0 0 0 48^1 + 370 -4.9999999999999994E-01 2 0 1 0 0 0 0 48^1 + 371 -4.9999999999999994E-01 2 0 0 1 0 0 0 48^1 + 372 -4.9999999999999994E-01 2 0 0 0 1 0 0 48^1 + 373 -4.9999999999999994E-01 2 0 0 0 0 1 0 48^1 + 374 -4.9999999999999994E-01 2 0 0 0 0 0 1 48^1 + 375 -4.9999999999999994E-01 2 1 0 0 0 0 0 49^1 + 376 -4.9999999999999994E-01 2 0 1 0 0 0 0 49^1 + 377 -4.9999999999999994E-01 2 0 0 1 0 0 0 49^1 + 378 -4.9999999999999994E-01 2 0 0 0 1 0 0 49^1 + 379 -4.9999999999999994E-01 2 0 0 0 0 1 0 49^1 + 380 -4.9999999999999994E-01 2 0 0 0 0 0 1 49^1 + 381 -4.9999999999999994E-01 2 1 0 0 0 0 0 50^1 + 382 -4.9999999999999994E-01 2 0 1 0 0 0 0 50^1 + 383 -4.9999999999999994E-01 2 0 0 1 0 0 0 50^1 + 384 -4.9999999999999994E-01 2 0 0 0 1 0 0 50^1 + 385 -4.9999999999999994E-01 2 0 0 0 0 1 0 50^1 + 386 -4.9999999999999994E-01 2 0 0 0 0 0 1 50^1 + 387 -4.9999999999999994E-01 2 1 0 0 0 0 0 51^1 + 388 -4.9999999999999994E-01 2 0 1 0 0 0 0 51^1 + 389 -4.9999999999999994E-01 2 0 0 1 0 0 0 51^1 + 390 -4.9999999999999994E-01 2 0 0 0 1 0 0 51^1 + 391 -4.9999999999999994E-01 2 0 0 0 0 1 0 51^1 + 392 -4.9999999999999994E-01 2 0 0 0 0 0 1 51^1 + 393 -4.9999999999999994E-01 2 1 0 0 0 0 0 52^1 + 394 -4.9999999999999994E-01 2 0 1 0 0 0 0 52^1 + 395 -4.9999999999999994E-01 2 0 0 1 0 0 0 52^1 + 396 -4.9999999999999994E-01 2 0 0 0 1 0 0 52^1 + 397 -4.9999999999999994E-01 2 0 0 0 0 1 0 52^1 + 398 -4.9999999999999994E-01 2 0 0 0 0 0 1 52^1 + 399 -4.9999999999999994E-01 2 1 0 0 0 0 0 53^1 + 400 -4.9999999999999994E-01 2 0 1 0 0 0 0 53^1 + 401 -4.9999999999999994E-01 2 0 0 1 0 0 0 53^1 + 402 -4.9999999999999994E-01 2 0 0 0 1 0 0 53^1 + 403 -4.9999999999999994E-01 2 0 0 0 0 1 0 53^1 + 404 -4.9999999999999994E-01 2 0 0 0 0 0 1 53^1 + 405 -4.9999999999999994E-01 2 1 0 0 0 0 0 54^1 + 406 -4.9999999999999994E-01 2 0 1 0 0 0 0 54^1 + 407 -4.9999999999999994E-01 2 0 0 1 0 0 0 54^1 + 408 -4.9999999999999994E-01 2 0 0 0 1 0 0 54^1 + 409 -4.9999999999999994E-01 2 0 0 0 0 1 0 54^1 + 410 -4.9999999999999994E-01 2 0 0 0 0 0 1 54^1 + 411 -4.9999999999999994E-01 2 1 0 0 0 0 0 55^1 + 412 -4.9999999999999994E-01 2 0 1 0 0 0 0 55^1 + 413 -4.9999999999999994E-01 2 0 0 1 0 0 0 55^1 + 414 -4.9999999999999994E-01 2 0 0 0 1 0 0 55^1 + 415 -4.9999999999999994E-01 2 0 0 0 0 1 0 55^1 + 416 -4.9999999999999994E-01 2 0 0 0 0 0 1 55^1 + 417 -4.9999999999999994E-01 2 1 0 0 0 0 0 56^1 + 418 -4.9999999999999994E-01 2 0 1 0 0 0 0 56^1 + 419 -4.9999999999999994E-01 2 0 0 1 0 0 0 56^1 + 420 -4.9999999999999994E-01 2 0 0 0 1 0 0 56^1 + 421 -4.9999999999999994E-01 2 0 0 0 0 1 0 56^1 + 422 -4.9999999999999994E-01 2 0 0 0 0 0 1 56^1 + 423 -4.9999999999999994E-01 2 1 0 0 0 0 0 57^1 + 424 -4.9999999999999994E-01 2 0 1 0 0 0 0 57^1 + 425 -4.9999999999999994E-01 2 0 0 1 0 0 0 57^1 + 426 -4.9999999999999994E-01 2 0 0 0 1 0 0 57^1 + 427 -4.9999999999999994E-01 2 0 0 0 0 1 0 57^1 + 428 -4.9999999999999994E-01 2 0 0 0 0 0 1 57^1 + 429 -4.9999999999999994E-01 2 1 0 0 0 0 0 58^1 + 430 -4.9999999999999994E-01 2 0 1 0 0 0 0 58^1 + 431 -4.9999999999999994E-01 2 0 0 1 0 0 0 58^1 + 432 -4.9999999999999994E-01 2 0 0 0 1 0 0 58^1 + 433 -4.9999999999999994E-01 2 0 0 0 0 1 0 58^1 + 434 -4.9999999999999994E-01 2 0 0 0 0 0 1 58^1 + 435 -4.9999999999999994E-01 2 1 0 0 0 0 0 59^1 + 436 -4.9999999999999994E-01 2 0 1 0 0 0 0 59^1 + 437 -4.9999999999999994E-01 2 0 0 1 0 0 0 59^1 + 438 -4.9999999999999994E-01 2 0 0 0 1 0 0 59^1 + 439 -4.9999999999999994E-01 2 0 0 0 0 1 0 59^1 + 440 -4.9999999999999994E-01 2 0 0 0 0 0 1 59^1 + 441 -4.9999999999999994E-01 2 1 0 0 0 0 0 60^1 + 442 -4.9999999999999994E-01 2 0 1 0 0 0 0 60^1 + 443 -4.9999999999999994E-01 2 0 0 1 0 0 0 60^1 + 444 -4.9999999999999994E-01 2 0 0 0 1 0 0 60^1 + 445 -4.9999999999999994E-01 2 0 0 0 0 1 0 60^1 + 446 -4.9999999999999994E-01 2 0 0 0 0 0 1 60^1 + 447 -4.9999999999999994E-01 2 1 0 0 0 0 0 61^1 + 448 -4.9999999999999994E-01 2 0 1 0 0 0 0 61^1 + 449 -4.9999999999999994E-01 2 0 0 1 0 0 0 61^1 + 450 -4.9999999999999994E-01 2 0 0 0 1 0 0 61^1 + 451 -4.9999999999999994E-01 2 0 0 0 0 1 0 61^1 + 452 -4.9999999999999994E-01 2 0 0 0 0 0 1 61^1 + 453 -4.9999999999999994E-01 2 1 0 0 0 0 0 62^1 + 454 -4.9999999999999994E-01 2 0 1 0 0 0 0 62^1 + 455 -4.9999999999999994E-01 2 0 0 1 0 0 0 62^1 + 456 -4.9999999999999994E-01 2 0 0 0 1 0 0 62^1 + 457 -4.9999999999999994E-01 2 0 0 0 0 1 0 62^1 + 458 -4.9999999999999994E-01 2 0 0 0 0 0 1 62^1 + 459 -4.9999999999999994E-01 2 1 0 0 0 0 0 63^1 + 460 -4.9999999999999994E-01 2 0 1 0 0 0 0 63^1 + 461 -4.9999999999999994E-01 2 0 0 1 0 0 0 63^1 + 462 -4.9999999999999994E-01 2 0 0 0 1 0 0 63^1 + 463 -4.9999999999999994E-01 2 0 0 0 0 1 0 63^1 + 464 -4.9999999999999994E-01 2 0 0 0 0 0 1 63^1 + 465 -4.9999999999999994E-01 2 1 0 0 0 0 0 64^1 + 466 -4.9999999999999994E-01 2 0 1 0 0 0 0 64^1 + 467 -4.9999999999999994E-01 2 0 0 1 0 0 0 64^1 + 468 -4.9999999999999994E-01 2 0 0 0 1 0 0 64^1 + 469 -4.9999999999999994E-01 2 0 0 0 0 1 0 64^1 + 470 -4.9999999999999994E-01 2 0 0 0 0 0 1 64^1 + 471 -4.9999999999999994E-01 2 1 0 0 0 0 0 65^1 + 472 -4.9999999999999994E-01 2 0 1 0 0 0 0 65^1 + 473 -4.9999999999999994E-01 2 0 0 1 0 0 0 65^1 + 474 -4.9999999999999994E-01 2 0 0 0 1 0 0 65^1 + 475 -4.9999999999999994E-01 2 0 0 0 0 1 0 65^1 + 476 -4.9999999999999994E-01 2 0 0 0 0 0 1 65^1 + 477 -4.9999999999999994E-01 2 1 0 0 0 0 0 66^1 + 478 -4.9999999999999994E-01 2 0 1 0 0 0 0 66^1 + 479 -4.9999999999999994E-01 2 0 0 1 0 0 0 66^1 + 480 -4.9999999999999994E-01 2 0 0 0 1 0 0 66^1 + 481 -4.9999999999999994E-01 2 0 0 0 0 1 0 66^1 + 482 -4.9999999999999994E-01 2 0 0 0 0 0 1 66^1 + 483 -4.9999999999999994E-01 2 1 0 0 0 0 0 67^1 + 484 -4.9999999999999994E-01 2 0 1 0 0 0 0 67^1 + 485 -4.9999999999999994E-01 2 0 0 1 0 0 0 67^1 + 486 -4.9999999999999994E-01 2 0 0 0 1 0 0 67^1 + 487 -4.9999999999999994E-01 2 0 0 0 0 1 0 67^1 + 488 -4.9999999999999994E-01 2 0 0 0 0 0 1 67^1 + 489 -4.9999999999999994E-01 2 1 0 0 0 0 0 68^1 + 490 -4.9999999999999994E-01 2 0 1 0 0 0 0 68^1 + 491 -4.9999999999999994E-01 2 0 0 1 0 0 0 68^1 + 492 -4.9999999999999994E-01 2 0 0 0 1 0 0 68^1 + 493 -4.9999999999999994E-01 2 0 0 0 0 1 0 68^1 + 494 -4.9999999999999994E-01 2 0 0 0 0 0 1 68^1 + 495 -4.9999999999999994E-01 2 1 0 0 0 0 0 69^1 + 496 -4.9999999999999994E-01 2 0 1 0 0 0 0 69^1 + 497 -4.9999999999999994E-01 2 0 0 1 0 0 0 69^1 + 498 -4.9999999999999994E-01 2 0 0 0 1 0 0 69^1 + 499 -4.9999999999999994E-01 2 0 0 0 0 1 0 69^1 + 500 -4.9999999999999994E-01 2 0 0 0 0 0 1 69^1 + 501 -4.9999999999999994E-01 2 1 0 0 0 0 0 70^1 + 502 -4.9999999999999994E-01 2 0 1 0 0 0 0 70^1 + 503 -4.9999999999999994E-01 2 0 0 1 0 0 0 70^1 + 504 -4.9999999999999994E-01 2 0 0 0 1 0 0 70^1 + 505 -4.9999999999999994E-01 2 0 0 0 0 1 0 70^1 + 506 -4.9999999999999994E-01 2 0 0 0 0 0 1 70^1 + 507 -4.9999999999999994E-01 2 1 0 0 0 0 0 71^1 + 508 -4.9999999999999994E-01 2 0 1 0 0 0 0 71^1 + 509 -4.9999999999999994E-01 2 0 0 1 0 0 0 71^1 + 510 -4.9999999999999994E-01 2 0 0 0 1 0 0 71^1 + 511 -4.9999999999999994E-01 2 0 0 0 0 1 0 71^1 + 512 -4.9999999999999994E-01 2 0 0 0 0 0 1 71^1 + 513 -4.9999999999999994E-01 2 1 0 0 0 0 0 72^1 + 514 -4.9999999999999994E-01 2 0 1 0 0 0 0 72^1 + 515 -4.9999999999999994E-01 2 0 0 1 0 0 0 72^1 + 516 -4.9999999999999994E-01 2 0 0 0 1 0 0 72^1 + 517 -4.9999999999999994E-01 2 0 0 0 0 1 0 72^1 + 518 -4.9999999999999994E-01 2 0 0 0 0 0 1 72^1 + 519 -4.9999999999999994E-01 2 1 0 0 0 0 0 73^1 + 520 -4.9999999999999994E-01 2 0 1 0 0 0 0 73^1 + 521 -4.9999999999999994E-01 2 0 0 1 0 0 0 73^1 + 522 -4.9999999999999994E-01 2 0 0 0 1 0 0 73^1 + 523 -4.9999999999999994E-01 2 0 0 0 0 1 0 73^1 + 524 -4.9999999999999994E-01 2 0 0 0 0 0 1 73^1 + 525 -4.9999999999999994E-01 2 1 0 0 0 0 0 74^1 + 526 -4.9999999999999994E-01 2 0 1 0 0 0 0 74^1 + 527 -4.9999999999999994E-01 2 0 0 1 0 0 0 74^1 + 528 -4.9999999999999994E-01 2 0 0 0 1 0 0 74^1 + 529 -4.9999999999999994E-01 2 0 0 0 0 1 0 74^1 + 530 -4.9999999999999994E-01 2 0 0 0 0 0 1 74^1 + 531 -4.9999999999999994E-01 2 1 0 0 0 0 0 75^1 + 532 -4.9999999999999994E-01 2 0 1 0 0 0 0 75^1 + 533 -4.9999999999999994E-01 2 0 0 1 0 0 0 75^1 + 534 -4.9999999999999994E-01 2 0 0 0 1 0 0 75^1 + 535 -4.9999999999999994E-01 2 0 0 0 0 1 0 75^1 + 536 -4.9999999999999994E-01 2 0 0 0 0 0 1 75^1 + 537 -4.9999999999999994E-01 2 1 0 0 0 0 0 76^1 + 538 -4.9999999999999994E-01 2 0 1 0 0 0 0 76^1 + 539 -4.9999999999999994E-01 2 0 0 1 0 0 0 76^1 + 540 -4.9999999999999994E-01 2 0 0 0 1 0 0 76^1 + 541 -4.9999999999999994E-01 2 0 0 0 0 1 0 76^1 + 542 -4.9999999999999994E-01 2 0 0 0 0 0 1 76^1 + 543 -4.9999999999999994E-01 2 1 0 0 0 0 0 77^1 + 544 -4.9999999999999994E-01 2 0 1 0 0 0 0 77^1 + 545 -4.9999999999999994E-01 2 0 0 1 0 0 0 77^1 + 546 -4.9999999999999994E-01 2 0 0 0 1 0 0 77^1 + 547 -4.9999999999999994E-01 2 0 0 0 0 1 0 77^1 + 548 -4.9999999999999994E-01 2 0 0 0 0 0 1 77^1 + 549 -4.9999999999999994E-01 2 1 0 0 0 0 0 78^1 + 550 -4.9999999999999994E-01 2 0 1 0 0 0 0 78^1 + 551 -4.9999999999999994E-01 2 0 0 1 0 0 0 78^1 + 552 -4.9999999999999994E-01 2 0 0 0 1 0 0 78^1 + 553 -4.9999999999999994E-01 2 0 0 0 0 1 0 78^1 + 554 -4.9999999999999994E-01 2 0 0 0 0 0 1 78^1 + 555 -4.9999999999999994E-01 2 1 0 0 0 0 0 79^1 + 556 -4.9999999999999994E-01 2 0 1 0 0 0 0 79^1 + 557 -4.9999999999999994E-01 2 0 0 1 0 0 0 79^1 + 558 -4.9999999999999994E-01 2 0 0 0 1 0 0 79^1 + 559 -4.9999999999999994E-01 2 0 0 0 0 1 0 79^1 + 560 -4.9999999999999994E-01 2 0 0 0 0 0 1 79^1 + 561 -4.9999999999999994E-01 2 1 0 0 0 0 0 80^1 + 562 -4.9999999999999994E-01 2 0 1 0 0 0 0 80^1 + 563 -4.9999999999999994E-01 2 0 0 1 0 0 0 80^1 + 564 -4.9999999999999994E-01 2 0 0 0 1 0 0 80^1 + 565 -4.9999999999999994E-01 2 0 0 0 0 1 0 80^1 + 566 -4.9999999999999994E-01 2 0 0 0 0 0 1 80^1 + 567 -4.9999999999999994E-01 2 1 0 0 0 0 0 81^1 + 568 -4.9999999999999994E-01 2 0 1 0 0 0 0 81^1 + 569 -4.9999999999999994E-01 2 0 0 1 0 0 0 81^1 + 570 -4.9999999999999994E-01 2 0 0 0 1 0 0 81^1 + 571 -4.9999999999999994E-01 2 0 0 0 0 1 0 81^1 + 572 -4.9999999999999994E-01 2 0 0 0 0 0 1 81^1 + 573 -4.9999999999999994E-01 2 1 0 0 0 0 0 82^1 + 574 -4.9999999999999994E-01 2 0 1 0 0 0 0 82^1 + 575 -4.9999999999999994E-01 2 0 0 1 0 0 0 82^1 + 576 -4.9999999999999994E-01 2 0 0 0 1 0 0 82^1 + 577 -4.9999999999999994E-01 2 0 0 0 0 1 0 82^1 + 578 -4.9999999999999994E-01 2 0 0 0 0 0 1 82^1 + 579 -4.9999999999999994E-01 2 1 0 0 0 0 0 83^1 + 580 -4.9999999999999994E-01 2 0 1 0 0 0 0 83^1 + 581 -4.9999999999999994E-01 2 0 0 1 0 0 0 83^1 + 582 -4.9999999999999994E-01 2 0 0 0 1 0 0 83^1 + 583 -4.9999999999999994E-01 2 0 0 0 0 1 0 83^1 + 584 -4.9999999999999994E-01 2 0 0 0 0 0 1 83^1 + 585 -4.9999999999999994E-01 2 1 0 0 0 0 0 84^1 + 586 -4.9999999999999994E-01 2 0 1 0 0 0 0 84^1 + 587 -4.9999999999999994E-01 2 0 0 1 0 0 0 84^1 + 588 -4.9999999999999994E-01 2 0 0 0 1 0 0 84^1 + 589 -4.9999999999999994E-01 2 0 0 0 0 1 0 84^1 + 590 -4.9999999999999994E-01 2 0 0 0 0 0 1 84^1 + 591 -4.9999999999999994E-01 2 1 0 0 0 0 0 85^1 + 592 -4.9999999999999994E-01 2 0 1 0 0 0 0 85^1 + 593 -4.9999999999999994E-01 2 0 0 1 0 0 0 85^1 + 594 -4.9999999999999994E-01 2 0 0 0 1 0 0 85^1 + 595 -4.9999999999999994E-01 2 0 0 0 0 1 0 85^1 + 596 -4.9999999999999994E-01 2 0 0 0 0 0 1 85^1 + 597 -4.9999999999999994E-01 2 1 0 0 0 0 0 86^1 + 598 -4.9999999999999994E-01 2 0 1 0 0 0 0 86^1 + 599 -4.9999999999999994E-01 2 0 0 1 0 0 0 86^1 + 600 -4.9999999999999994E-01 2 0 0 0 1 0 0 86^1 + 601 -4.9999999999999994E-01 2 0 0 0 0 1 0 86^1 + 602 -4.9999999999999994E-01 2 0 0 0 0 0 1 86^1 + 603 -4.9999999999999994E-01 2 1 0 0 0 0 0 87^1 + 604 -4.9999999999999994E-01 2 0 1 0 0 0 0 87^1 + 605 -4.9999999999999994E-01 2 0 0 1 0 0 0 87^1 + 606 -4.9999999999999994E-01 2 0 0 0 1 0 0 87^1 + 607 -4.9999999999999994E-01 2 0 0 0 0 1 0 87^1 + 608 -4.9999999999999994E-01 2 0 0 0 0 0 1 87^1 + 609 -4.9999999999999994E-01 2 1 0 0 0 0 0 88^1 + 610 -4.9999999999999994E-01 2 0 1 0 0 0 0 88^1 + 611 -4.9999999999999994E-01 2 0 0 1 0 0 0 88^1 + 612 -4.9999999999999994E-01 2 0 0 0 1 0 0 88^1 + 613 -4.9999999999999994E-01 2 0 0 0 0 1 0 88^1 + 614 -4.9999999999999994E-01 2 0 0 0 0 0 1 88^1 + 615 -4.9999999999999994E-01 2 1 0 0 0 0 0 89^1 + 616 -4.9999999999999994E-01 2 0 1 0 0 0 0 89^1 + 617 -4.9999999999999994E-01 2 0 0 1 0 0 0 89^1 + 618 -4.9999999999999994E-01 2 0 0 0 1 0 0 89^1 + 619 -4.9999999999999994E-01 2 0 0 0 0 1 0 89^1 + 620 -4.9999999999999994E-01 2 0 0 0 0 0 1 89^1 + 621 -4.9999999999999994E-01 2 1 0 0 0 0 0 90^1 + 622 -4.9999999999999994E-01 2 0 1 0 0 0 0 90^1 + 623 -4.9999999999999994E-01 2 0 0 1 0 0 0 90^1 + 624 -4.9999999999999994E-01 2 0 0 0 1 0 0 90^1 + 625 -4.9999999999999994E-01 2 0 0 0 0 1 0 90^1 + 626 -4.9999999999999994E-01 2 0 0 0 0 0 1 90^1 + 627 -4.9999999999999994E-01 2 1 0 0 0 0 0 91^1 + 628 -4.9999999999999994E-01 2 0 1 0 0 0 0 91^1 + 629 -4.9999999999999994E-01 2 0 0 1 0 0 0 91^1 + 630 -4.9999999999999994E-01 2 0 0 0 1 0 0 91^1 + 631 -4.9999999999999994E-01 2 0 0 0 0 1 0 91^1 + 632 -4.9999999999999994E-01 2 0 0 0 0 0 1 91^1 + 633 -4.9999999999999994E-01 2 1 0 0 0 0 0 92^1 + 634 -4.9999999999999994E-01 2 0 1 0 0 0 0 92^1 + 635 -4.9999999999999994E-01 2 0 0 1 0 0 0 92^1 + 636 -4.9999999999999994E-01 2 0 0 0 1 0 0 92^1 + 637 -4.9999999999999994E-01 2 0 0 0 0 1 0 92^1 + 638 -4.9999999999999994E-01 2 0 0 0 0 0 1 92^1 + 639 -4.9999999999999994E-01 2 1 0 0 0 0 0 93^1 + 640 -4.9999999999999994E-01 2 0 1 0 0 0 0 93^1 + 641 -4.9999999999999994E-01 2 0 0 1 0 0 0 93^1 + 642 -4.9999999999999994E-01 2 0 0 0 1 0 0 93^1 + 643 -4.9999999999999994E-01 2 0 0 0 0 1 0 93^1 + 644 -4.9999999999999994E-01 2 0 0 0 0 0 1 93^1 + 645 -4.9999999999999994E-01 2 1 0 0 0 0 0 94^1 + 646 -4.9999999999999994E-01 2 0 1 0 0 0 0 94^1 + 647 -4.9999999999999994E-01 2 0 0 1 0 0 0 94^1 + 648 -4.9999999999999994E-01 2 0 0 0 1 0 0 94^1 + 649 -4.9999999999999994E-01 2 0 0 0 0 1 0 94^1 + 650 -4.9999999999999994E-01 2 0 0 0 0 0 1 94^1 + 651 -4.9999999999999994E-01 2 1 0 0 0 0 0 95^1 + 652 -4.9999999999999994E-01 2 0 1 0 0 0 0 95^1 + 653 -4.9999999999999994E-01 2 0 0 1 0 0 0 95^1 + 654 -4.9999999999999994E-01 2 0 0 0 1 0 0 95^1 + 655 -4.9999999999999994E-01 2 0 0 0 0 1 0 95^1 + 656 -4.9999999999999994E-01 2 0 0 0 0 0 1 95^1 + 657 -4.9999999999999994E-01 2 1 0 0 0 0 0 96^1 + 658 -4.9999999999999994E-01 2 0 1 0 0 0 0 96^1 + 659 -4.9999999999999994E-01 2 0 0 1 0 0 0 96^1 + 660 -4.9999999999999994E-01 2 0 0 0 1 0 0 96^1 + 661 -4.9999999999999994E-01 2 0 0 0 0 1 0 96^1 + 662 -4.9999999999999994E-01 2 0 0 0 0 0 1 96^1 + 663 -4.9999999999999994E-01 2 1 0 0 0 0 0 97^1 + 664 -4.9999999999999994E-01 2 0 1 0 0 0 0 97^1 + 665 -4.9999999999999994E-01 2 0 0 1 0 0 0 97^1 + 666 -4.9999999999999994E-01 2 0 0 0 1 0 0 97^1 + 667 -4.9999999999999994E-01 2 0 0 0 0 1 0 97^1 + 668 -4.9999999999999994E-01 2 0 0 0 0 0 1 97^1 + 669 -4.9999999999999994E-01 2 1 0 0 0 0 0 98^1 + 670 -4.9999999999999994E-01 2 0 1 0 0 0 0 98^1 + 671 -4.9999999999999994E-01 2 0 0 1 0 0 0 98^1 + 672 -4.9999999999999994E-01 2 0 0 0 1 0 0 98^1 + 673 -4.9999999999999994E-01 2 0 0 0 0 1 0 98^1 + 674 -4.9999999999999994E-01 2 0 0 0 0 0 1 98^1 + 675 -4.9999999999999994E-01 2 1 0 0 0 0 0 99^1 + 676 -4.9999999999999994E-01 2 0 1 0 0 0 0 99^1 + 677 -4.9999999999999994E-01 2 0 0 1 0 0 0 99^1 + 678 -4.9999999999999994E-01 2 0 0 0 1 0 0 99^1 + 679 -4.9999999999999994E-01 2 0 0 0 0 1 0 99^1 + 680 -4.9999999999999994E-01 2 0 0 0 0 0 1 99^1 + 681 -4.9999999999999994E-01 2 1 0 0 0 0 0 100^1 + 682 -4.9999999999999994E-01 2 0 1 0 0 0 0 100^1 + 683 -4.9999999999999994E-01 2 0 0 1 0 0 0 100^1 + 684 -4.9999999999999994E-01 2 0 0 0 1 0 0 100^1 + 685 -4.9999999999999994E-01 2 0 0 0 0 1 0 100^1 + 686 -4.9999999999999994E-01 2 0 0 0 0 0 1 100^1 + + asin : R, NV = 6, MO = 2, NP = 94, PO = 1 + ******************************************************* + I COEFFICIENT ORDER EXPONENTS + 1 5.2359877559829882E-01 0 0 0 0 0 0 0 + 2 1.0000000000000002E+00 1 1 0 0 0 0 0 + 3 1.0000000000000002E+00 1 0 1 0 0 0 0 + 4 1.0000000000000002E+00 1 0 0 1 0 0 0 + 5 1.0000000000000002E+00 1 0 0 0 1 0 0 + 6 1.0000000000000002E+00 1 0 0 0 0 1 0 + 7 1.0000000000000002E+00 1 0 0 0 0 0 1 + 8 1.0000000000000002E+00 1 0 0 0 0 0 0 7^1 + 9 1.0000000000000002E+00 1 0 0 0 0 0 0 8^1 + 10 1.0000000000000002E+00 1 0 0 0 0 0 0 9^1 + 11 1.0000000000000002E+00 1 0 0 0 0 0 0 10^1 + 12 1.0000000000000002E+00 1 0 0 0 0 0 0 11^1 + 13 1.0000000000000002E+00 1 0 0 0 0 0 0 12^1 + 14 1.0000000000000002E+00 1 0 0 0 0 0 0 13^1 + 15 1.0000000000000002E+00 1 0 0 0 0 0 0 14^1 + 16 1.0000000000000002E+00 1 0 0 0 0 0 0 15^1 + 17 1.0000000000000002E+00 1 0 0 0 0 0 0 16^1 + 18 1.0000000000000002E+00 1 0 0 0 0 0 0 17^1 + 19 1.0000000000000002E+00 1 0 0 0 0 0 0 18^1 + 20 1.0000000000000002E+00 1 0 0 0 0 0 0 19^1 + 21 1.0000000000000002E+00 1 0 0 0 0 0 0 20^1 + 22 1.0000000000000002E+00 1 0 0 0 0 0 0 21^1 + 23 1.0000000000000002E+00 1 0 0 0 0 0 0 22^1 + 24 1.0000000000000002E+00 1 0 0 0 0 0 0 23^1 + 25 1.0000000000000002E+00 1 0 0 0 0 0 0 24^1 + 26 1.0000000000000002E+00 1 0 0 0 0 0 0 25^1 + 27 1.0000000000000002E+00 1 0 0 0 0 0 0 26^1 + 28 1.0000000000000002E+00 1 0 0 0 0 0 0 27^1 + 29 1.0000000000000002E+00 1 0 0 0 0 0 0 28^1 + 30 1.0000000000000002E+00 1 0 0 0 0 0 0 29^1 + 31 1.0000000000000002E+00 1 0 0 0 0 0 0 30^1 + 32 1.0000000000000002E+00 1 0 0 0 0 0 0 31^1 + 33 1.0000000000000002E+00 1 0 0 0 0 0 0 32^1 + 34 1.0000000000000002E+00 1 0 0 0 0 0 0 33^1 + 35 1.0000000000000002E+00 1 0 0 0 0 0 0 34^1 + 36 1.0000000000000002E+00 1 0 0 0 0 0 0 35^1 + 37 1.0000000000000002E+00 1 0 0 0 0 0 0 36^1 + 38 1.0000000000000002E+00 1 0 0 0 0 0 0 37^1 + 39 1.0000000000000002E+00 1 0 0 0 0 0 0 38^1 + 40 1.0000000000000002E+00 1 0 0 0 0 0 0 39^1 + 41 1.0000000000000002E+00 1 0 0 0 0 0 0 40^1 + 42 1.0000000000000002E+00 1 0 0 0 0 0 0 41^1 + 43 1.0000000000000002E+00 1 0 0 0 0 0 0 42^1 + 44 1.0000000000000002E+00 1 0 0 0 0 0 0 43^1 + 45 1.0000000000000002E+00 1 0 0 0 0 0 0 44^1 + 46 1.0000000000000002E+00 1 0 0 0 0 0 0 45^1 + 47 1.0000000000000002E+00 1 0 0 0 0 0 0 46^1 + 48 1.0000000000000002E+00 1 0 0 0 0 0 0 47^1 + 49 1.0000000000000002E+00 1 0 0 0 0 0 0 48^1 + 50 1.0000000000000002E+00 1 0 0 0 0 0 0 49^1 + 51 1.0000000000000002E+00 1 0 0 0 0 0 0 50^1 + 52 1.0000000000000002E+00 1 0 0 0 0 0 0 51^1 + 53 1.0000000000000002E+00 1 0 0 0 0 0 0 52^1 + 54 1.0000000000000002E+00 1 0 0 0 0 0 0 53^1 + 55 1.0000000000000002E+00 1 0 0 0 0 0 0 54^1 + 56 1.0000000000000002E+00 1 0 0 0 0 0 0 55^1 + 57 1.0000000000000002E+00 1 0 0 0 0 0 0 56^1 + 58 1.0000000000000002E+00 1 0 0 0 0 0 0 57^1 + 59 1.0000000000000002E+00 1 0 0 0 0 0 0 58^1 + 60 1.0000000000000002E+00 1 0 0 0 0 0 0 59^1 + 61 1.0000000000000002E+00 1 0 0 0 0 0 0 60^1 + 62 1.0000000000000002E+00 1 0 0 0 0 0 0 61^1 + 63 1.0000000000000002E+00 1 0 0 0 0 0 0 62^1 + 64 1.0000000000000002E+00 1 0 0 0 0 0 0 63^1 + 65 1.0000000000000002E+00 1 0 0 0 0 0 0 64^1 + 66 1.0000000000000002E+00 1 0 0 0 0 0 0 65^1 + 67 1.0000000000000002E+00 1 0 0 0 0 0 0 66^1 + 68 1.0000000000000002E+00 1 0 0 0 0 0 0 67^1 + 69 1.0000000000000002E+00 1 0 0 0 0 0 0 68^1 + 70 1.0000000000000002E+00 1 0 0 0 0 0 0 69^1 + 71 1.0000000000000002E+00 1 0 0 0 0 0 0 70^1 + 72 1.0000000000000002E+00 1 0 0 0 0 0 0 71^1 + 73 1.0000000000000002E+00 1 0 0 0 0 0 0 72^1 + 74 1.0000000000000002E+00 1 0 0 0 0 0 0 73^1 + 75 1.0000000000000002E+00 1 0 0 0 0 0 0 74^1 + 76 1.0000000000000002E+00 1 0 0 0 0 0 0 75^1 + 77 1.0000000000000002E+00 1 0 0 0 0 0 0 76^1 + 78 1.0000000000000002E+00 1 0 0 0 0 0 0 77^1 + 79 1.0000000000000002E+00 1 0 0 0 0 0 0 78^1 + 80 1.0000000000000002E+00 1 0 0 0 0 0 0 79^1 + 81 1.0000000000000002E+00 1 0 0 0 0 0 0 80^1 + 82 1.0000000000000002E+00 1 0 0 0 0 0 0 81^1 + 83 1.0000000000000002E+00 1 0 0 0 0 0 0 82^1 + 84 1.0000000000000002E+00 1 0 0 0 0 0 0 83^1 + 85 1.0000000000000002E+00 1 0 0 0 0 0 0 84^1 + 86 1.0000000000000002E+00 1 0 0 0 0 0 0 85^1 + 87 1.0000000000000002E+00 1 0 0 0 0 0 0 86^1 + 88 1.0000000000000002E+00 1 0 0 0 0 0 0 87^1 + 89 1.0000000000000002E+00 1 0 0 0 0 0 0 88^1 + 90 1.0000000000000002E+00 1 0 0 0 0 0 0 89^1 + 91 1.0000000000000002E+00 1 0 0 0 0 0 0 90^1 + 92 1.0000000000000002E+00 1 0 0 0 0 0 0 91^1 + 93 1.0000000000000002E+00 1 0 0 0 0 0 0 92^1 + 94 1.0000000000000002E+00 1 0 0 0 0 0 0 93^1 + 95 1.0000000000000002E+00 1 0 0 0 0 0 0 94^1 + 96 1.0000000000000002E+00 1 0 0 0 0 0 0 95^1 + 97 1.0000000000000002E+00 1 0 0 0 0 0 0 96^1 + 98 1.0000000000000002E+00 1 0 0 0 0 0 0 97^1 + 99 1.0000000000000002E+00 1 0 0 0 0 0 0 98^1 + 100 1.0000000000000002E+00 1 0 0 0 0 0 0 99^1 + 101 1.0000000000000002E+00 1 0 0 0 0 0 0 100^1 + 102 1.6653345369377348E-16 2 2 0 0 0 0 0 + 103 3.3306690738754696E-16 2 1 1 0 0 0 0 + 104 1.6653345369377348E-16 2 0 2 0 0 0 0 + 105 3.3306690738754696E-16 2 1 0 1 0 0 0 + 106 3.3306690738754696E-16 2 0 1 1 0 0 0 + 107 1.6653345369377348E-16 2 0 0 2 0 0 0 + 108 3.3306690738754696E-16 2 1 0 0 1 0 0 + 109 3.3306690738754696E-16 2 0 1 0 1 0 0 + 110 3.3306690738754696E-16 2 0 0 1 1 0 0 + 111 1.6653345369377348E-16 2 0 0 0 2 0 0 + 112 3.3306690738754696E-16 2 1 0 0 0 1 0 + 113 3.3306690738754696E-16 2 0 1 0 0 1 0 + 114 3.3306690738754696E-16 2 0 0 1 0 1 0 + 115 3.3306690738754696E-16 2 0 0 0 1 1 0 + 116 1.6653345369377348E-16 2 0 0 0 0 2 0 + 117 3.3306690738754696E-16 2 1 0 0 0 0 1 + 118 3.3306690738754696E-16 2 0 1 0 0 0 1 + 119 3.3306690738754696E-16 2 0 0 1 0 0 1 + 120 3.3306690738754696E-16 2 0 0 0 1 0 1 + 121 3.3306690738754696E-16 2 0 0 0 0 1 1 + 122 1.6653345369377348E-16 2 0 0 0 0 0 2 + 123 3.3306690738754696E-16 2 1 0 0 0 0 0 7^1 + 124 3.3306690738754696E-16 2 0 1 0 0 0 0 7^1 + 125 3.3306690738754696E-16 2 0 0 1 0 0 0 7^1 + 126 3.3306690738754696E-16 2 0 0 0 1 0 0 7^1 + 127 3.3306690738754696E-16 2 0 0 0 0 1 0 7^1 + 128 3.3306690738754696E-16 2 0 0 0 0 0 1 7^1 + 129 3.3306690738754696E-16 2 1 0 0 0 0 0 8^1 + 130 3.3306690738754696E-16 2 0 1 0 0 0 0 8^1 + 131 3.3306690738754696E-16 2 0 0 1 0 0 0 8^1 + 132 3.3306690738754696E-16 2 0 0 0 1 0 0 8^1 + 133 3.3306690738754696E-16 2 0 0 0 0 1 0 8^1 + 134 3.3306690738754696E-16 2 0 0 0 0 0 1 8^1 + 135 3.3306690738754696E-16 2 1 0 0 0 0 0 9^1 + 136 3.3306690738754696E-16 2 0 1 0 0 0 0 9^1 + 137 3.3306690738754696E-16 2 0 0 1 0 0 0 9^1 + 138 3.3306690738754696E-16 2 0 0 0 1 0 0 9^1 + 139 3.3306690738754696E-16 2 0 0 0 0 1 0 9^1 + 140 3.3306690738754696E-16 2 0 0 0 0 0 1 9^1 + 141 3.3306690738754696E-16 2 1 0 0 0 0 0 10^1 + 142 3.3306690738754696E-16 2 0 1 0 0 0 0 10^1 + 143 3.3306690738754696E-16 2 0 0 1 0 0 0 10^1 + 144 3.3306690738754696E-16 2 0 0 0 1 0 0 10^1 + 145 3.3306690738754696E-16 2 0 0 0 0 1 0 10^1 + 146 3.3306690738754696E-16 2 0 0 0 0 0 1 10^1 + 147 3.3306690738754696E-16 2 1 0 0 0 0 0 11^1 + 148 3.3306690738754696E-16 2 0 1 0 0 0 0 11^1 + 149 3.3306690738754696E-16 2 0 0 1 0 0 0 11^1 + 150 3.3306690738754696E-16 2 0 0 0 1 0 0 11^1 + 151 3.3306690738754696E-16 2 0 0 0 0 1 0 11^1 + 152 3.3306690738754696E-16 2 0 0 0 0 0 1 11^1 + 153 3.3306690738754696E-16 2 1 0 0 0 0 0 12^1 + 154 3.3306690738754696E-16 2 0 1 0 0 0 0 12^1 + 155 3.3306690738754696E-16 2 0 0 1 0 0 0 12^1 + 156 3.3306690738754696E-16 2 0 0 0 1 0 0 12^1 + 157 3.3306690738754696E-16 2 0 0 0 0 1 0 12^1 + 158 3.3306690738754696E-16 2 0 0 0 0 0 1 12^1 + 159 3.3306690738754696E-16 2 1 0 0 0 0 0 13^1 + 160 3.3306690738754696E-16 2 0 1 0 0 0 0 13^1 + 161 3.3306690738754696E-16 2 0 0 1 0 0 0 13^1 + 162 3.3306690738754696E-16 2 0 0 0 1 0 0 13^1 + 163 3.3306690738754696E-16 2 0 0 0 0 1 0 13^1 + 164 3.3306690738754696E-16 2 0 0 0 0 0 1 13^1 + 165 3.3306690738754696E-16 2 1 0 0 0 0 0 14^1 + 166 3.3306690738754696E-16 2 0 1 0 0 0 0 14^1 + 167 3.3306690738754696E-16 2 0 0 1 0 0 0 14^1 + 168 3.3306690738754696E-16 2 0 0 0 1 0 0 14^1 + 169 3.3306690738754696E-16 2 0 0 0 0 1 0 14^1 + 170 3.3306690738754696E-16 2 0 0 0 0 0 1 14^1 + 171 3.3306690738754696E-16 2 1 0 0 0 0 0 15^1 + 172 3.3306690738754696E-16 2 0 1 0 0 0 0 15^1 + 173 3.3306690738754696E-16 2 0 0 1 0 0 0 15^1 + 174 3.3306690738754696E-16 2 0 0 0 1 0 0 15^1 + 175 3.3306690738754696E-16 2 0 0 0 0 1 0 15^1 + 176 3.3306690738754696E-16 2 0 0 0 0 0 1 15^1 + 177 3.3306690738754696E-16 2 1 0 0 0 0 0 16^1 + 178 3.3306690738754696E-16 2 0 1 0 0 0 0 16^1 + 179 3.3306690738754696E-16 2 0 0 1 0 0 0 16^1 + 180 3.3306690738754696E-16 2 0 0 0 1 0 0 16^1 + 181 3.3306690738754696E-16 2 0 0 0 0 1 0 16^1 + 182 3.3306690738754696E-16 2 0 0 0 0 0 1 16^1 + 183 3.3306690738754696E-16 2 1 0 0 0 0 0 17^1 + 184 3.3306690738754696E-16 2 0 1 0 0 0 0 17^1 + 185 3.3306690738754696E-16 2 0 0 1 0 0 0 17^1 + 186 3.3306690738754696E-16 2 0 0 0 1 0 0 17^1 + 187 3.3306690738754696E-16 2 0 0 0 0 1 0 17^1 + 188 3.3306690738754696E-16 2 0 0 0 0 0 1 17^1 + 189 3.3306690738754696E-16 2 1 0 0 0 0 0 18^1 + 190 3.3306690738754696E-16 2 0 1 0 0 0 0 18^1 + 191 3.3306690738754696E-16 2 0 0 1 0 0 0 18^1 + 192 3.3306690738754696E-16 2 0 0 0 1 0 0 18^1 + 193 3.3306690738754696E-16 2 0 0 0 0 1 0 18^1 + 194 3.3306690738754696E-16 2 0 0 0 0 0 1 18^1 + 195 3.3306690738754696E-16 2 1 0 0 0 0 0 19^1 + 196 3.3306690738754696E-16 2 0 1 0 0 0 0 19^1 + 197 3.3306690738754696E-16 2 0 0 1 0 0 0 19^1 + 198 3.3306690738754696E-16 2 0 0 0 1 0 0 19^1 + 199 3.3306690738754696E-16 2 0 0 0 0 1 0 19^1 + 200 3.3306690738754696E-16 2 0 0 0 0 0 1 19^1 + 201 3.3306690738754696E-16 2 1 0 0 0 0 0 20^1 + 202 3.3306690738754696E-16 2 0 1 0 0 0 0 20^1 + 203 3.3306690738754696E-16 2 0 0 1 0 0 0 20^1 + 204 3.3306690738754696E-16 2 0 0 0 1 0 0 20^1 + 205 3.3306690738754696E-16 2 0 0 0 0 1 0 20^1 + 206 3.3306690738754696E-16 2 0 0 0 0 0 1 20^1 + 207 3.3306690738754696E-16 2 1 0 0 0 0 0 21^1 + 208 3.3306690738754696E-16 2 0 1 0 0 0 0 21^1 + 209 3.3306690738754696E-16 2 0 0 1 0 0 0 21^1 + 210 3.3306690738754696E-16 2 0 0 0 1 0 0 21^1 + 211 3.3306690738754696E-16 2 0 0 0 0 1 0 21^1 + 212 3.3306690738754696E-16 2 0 0 0 0 0 1 21^1 + 213 3.3306690738754696E-16 2 1 0 0 0 0 0 22^1 + 214 3.3306690738754696E-16 2 0 1 0 0 0 0 22^1 + 215 3.3306690738754696E-16 2 0 0 1 0 0 0 22^1 + 216 3.3306690738754696E-16 2 0 0 0 1 0 0 22^1 + 217 3.3306690738754696E-16 2 0 0 0 0 1 0 22^1 + 218 3.3306690738754696E-16 2 0 0 0 0 0 1 22^1 + 219 3.3306690738754696E-16 2 1 0 0 0 0 0 23^1 + 220 3.3306690738754696E-16 2 0 1 0 0 0 0 23^1 + 221 3.3306690738754696E-16 2 0 0 1 0 0 0 23^1 + 222 3.3306690738754696E-16 2 0 0 0 1 0 0 23^1 + 223 3.3306690738754696E-16 2 0 0 0 0 1 0 23^1 + 224 3.3306690738754696E-16 2 0 0 0 0 0 1 23^1 + 225 3.3306690738754696E-16 2 1 0 0 0 0 0 24^1 + 226 3.3306690738754696E-16 2 0 1 0 0 0 0 24^1 + 227 3.3306690738754696E-16 2 0 0 1 0 0 0 24^1 + 228 3.3306690738754696E-16 2 0 0 0 1 0 0 24^1 + 229 3.3306690738754696E-16 2 0 0 0 0 1 0 24^1 + 230 3.3306690738754696E-16 2 0 0 0 0 0 1 24^1 + 231 3.3306690738754696E-16 2 1 0 0 0 0 0 25^1 + 232 3.3306690738754696E-16 2 0 1 0 0 0 0 25^1 + 233 3.3306690738754696E-16 2 0 0 1 0 0 0 25^1 + 234 3.3306690738754696E-16 2 0 0 0 1 0 0 25^1 + 235 3.3306690738754696E-16 2 0 0 0 0 1 0 25^1 + 236 3.3306690738754696E-16 2 0 0 0 0 0 1 25^1 + 237 3.3306690738754696E-16 2 1 0 0 0 0 0 26^1 + 238 3.3306690738754696E-16 2 0 1 0 0 0 0 26^1 + 239 3.3306690738754696E-16 2 0 0 1 0 0 0 26^1 + 240 3.3306690738754696E-16 2 0 0 0 1 0 0 26^1 + 241 3.3306690738754696E-16 2 0 0 0 0 1 0 26^1 + 242 3.3306690738754696E-16 2 0 0 0 0 0 1 26^1 + 243 3.3306690738754696E-16 2 1 0 0 0 0 0 27^1 + 244 3.3306690738754696E-16 2 0 1 0 0 0 0 27^1 + 245 3.3306690738754696E-16 2 0 0 1 0 0 0 27^1 + 246 3.3306690738754696E-16 2 0 0 0 1 0 0 27^1 + 247 3.3306690738754696E-16 2 0 0 0 0 1 0 27^1 + 248 3.3306690738754696E-16 2 0 0 0 0 0 1 27^1 + 249 3.3306690738754696E-16 2 1 0 0 0 0 0 28^1 + 250 3.3306690738754696E-16 2 0 1 0 0 0 0 28^1 + 251 3.3306690738754696E-16 2 0 0 1 0 0 0 28^1 + 252 3.3306690738754696E-16 2 0 0 0 1 0 0 28^1 + 253 3.3306690738754696E-16 2 0 0 0 0 1 0 28^1 + 254 3.3306690738754696E-16 2 0 0 0 0 0 1 28^1 + 255 3.3306690738754696E-16 2 1 0 0 0 0 0 29^1 + 256 3.3306690738754696E-16 2 0 1 0 0 0 0 29^1 + 257 3.3306690738754696E-16 2 0 0 1 0 0 0 29^1 + 258 3.3306690738754696E-16 2 0 0 0 1 0 0 29^1 + 259 3.3306690738754696E-16 2 0 0 0 0 1 0 29^1 + 260 3.3306690738754696E-16 2 0 0 0 0 0 1 29^1 + 261 3.3306690738754696E-16 2 1 0 0 0 0 0 30^1 + 262 3.3306690738754696E-16 2 0 1 0 0 0 0 30^1 + 263 3.3306690738754696E-16 2 0 0 1 0 0 0 30^1 + 264 3.3306690738754696E-16 2 0 0 0 1 0 0 30^1 + 265 3.3306690738754696E-16 2 0 0 0 0 1 0 30^1 + 266 3.3306690738754696E-16 2 0 0 0 0 0 1 30^1 + 267 3.3306690738754696E-16 2 1 0 0 0 0 0 31^1 + 268 3.3306690738754696E-16 2 0 1 0 0 0 0 31^1 + 269 3.3306690738754696E-16 2 0 0 1 0 0 0 31^1 + 270 3.3306690738754696E-16 2 0 0 0 1 0 0 31^1 + 271 3.3306690738754696E-16 2 0 0 0 0 1 0 31^1 + 272 3.3306690738754696E-16 2 0 0 0 0 0 1 31^1 + 273 3.3306690738754696E-16 2 1 0 0 0 0 0 32^1 + 274 3.3306690738754696E-16 2 0 1 0 0 0 0 32^1 + 275 3.3306690738754696E-16 2 0 0 1 0 0 0 32^1 + 276 3.3306690738754696E-16 2 0 0 0 1 0 0 32^1 + 277 3.3306690738754696E-16 2 0 0 0 0 1 0 32^1 + 278 3.3306690738754696E-16 2 0 0 0 0 0 1 32^1 + 279 3.3306690738754696E-16 2 1 0 0 0 0 0 33^1 + 280 3.3306690738754696E-16 2 0 1 0 0 0 0 33^1 + 281 3.3306690738754696E-16 2 0 0 1 0 0 0 33^1 + 282 3.3306690738754696E-16 2 0 0 0 1 0 0 33^1 + 283 3.3306690738754696E-16 2 0 0 0 0 1 0 33^1 + 284 3.3306690738754696E-16 2 0 0 0 0 0 1 33^1 + 285 3.3306690738754696E-16 2 1 0 0 0 0 0 34^1 + 286 3.3306690738754696E-16 2 0 1 0 0 0 0 34^1 + 287 3.3306690738754696E-16 2 0 0 1 0 0 0 34^1 + 288 3.3306690738754696E-16 2 0 0 0 1 0 0 34^1 + 289 3.3306690738754696E-16 2 0 0 0 0 1 0 34^1 + 290 3.3306690738754696E-16 2 0 0 0 0 0 1 34^1 + 291 3.3306690738754696E-16 2 1 0 0 0 0 0 35^1 + 292 3.3306690738754696E-16 2 0 1 0 0 0 0 35^1 + 293 3.3306690738754696E-16 2 0 0 1 0 0 0 35^1 + 294 3.3306690738754696E-16 2 0 0 0 1 0 0 35^1 + 295 3.3306690738754696E-16 2 0 0 0 0 1 0 35^1 + 296 3.3306690738754696E-16 2 0 0 0 0 0 1 35^1 + 297 3.3306690738754696E-16 2 1 0 0 0 0 0 36^1 + 298 3.3306690738754696E-16 2 0 1 0 0 0 0 36^1 + 299 3.3306690738754696E-16 2 0 0 1 0 0 0 36^1 + 300 3.3306690738754696E-16 2 0 0 0 1 0 0 36^1 + 301 3.3306690738754696E-16 2 0 0 0 0 1 0 36^1 + 302 3.3306690738754696E-16 2 0 0 0 0 0 1 36^1 + 303 3.3306690738754696E-16 2 1 0 0 0 0 0 37^1 + 304 3.3306690738754696E-16 2 0 1 0 0 0 0 37^1 + 305 3.3306690738754696E-16 2 0 0 1 0 0 0 37^1 + 306 3.3306690738754696E-16 2 0 0 0 1 0 0 37^1 + 307 3.3306690738754696E-16 2 0 0 0 0 1 0 37^1 + 308 3.3306690738754696E-16 2 0 0 0 0 0 1 37^1 + 309 3.3306690738754696E-16 2 1 0 0 0 0 0 38^1 + 310 3.3306690738754696E-16 2 0 1 0 0 0 0 38^1 + 311 3.3306690738754696E-16 2 0 0 1 0 0 0 38^1 + 312 3.3306690738754696E-16 2 0 0 0 1 0 0 38^1 + 313 3.3306690738754696E-16 2 0 0 0 0 1 0 38^1 + 314 3.3306690738754696E-16 2 0 0 0 0 0 1 38^1 + 315 3.3306690738754696E-16 2 1 0 0 0 0 0 39^1 + 316 3.3306690738754696E-16 2 0 1 0 0 0 0 39^1 + 317 3.3306690738754696E-16 2 0 0 1 0 0 0 39^1 + 318 3.3306690738754696E-16 2 0 0 0 1 0 0 39^1 + 319 3.3306690738754696E-16 2 0 0 0 0 1 0 39^1 + 320 3.3306690738754696E-16 2 0 0 0 0 0 1 39^1 + 321 3.3306690738754696E-16 2 1 0 0 0 0 0 40^1 + 322 3.3306690738754696E-16 2 0 1 0 0 0 0 40^1 + 323 3.3306690738754696E-16 2 0 0 1 0 0 0 40^1 + 324 3.3306690738754696E-16 2 0 0 0 1 0 0 40^1 + 325 3.3306690738754696E-16 2 0 0 0 0 1 0 40^1 + 326 3.3306690738754696E-16 2 0 0 0 0 0 1 40^1 + 327 3.3306690738754696E-16 2 1 0 0 0 0 0 41^1 + 328 3.3306690738754696E-16 2 0 1 0 0 0 0 41^1 + 329 3.3306690738754696E-16 2 0 0 1 0 0 0 41^1 + 330 3.3306690738754696E-16 2 0 0 0 1 0 0 41^1 + 331 3.3306690738754696E-16 2 0 0 0 0 1 0 41^1 + 332 3.3306690738754696E-16 2 0 0 0 0 0 1 41^1 + 333 3.3306690738754696E-16 2 1 0 0 0 0 0 42^1 + 334 3.3306690738754696E-16 2 0 1 0 0 0 0 42^1 + 335 3.3306690738754696E-16 2 0 0 1 0 0 0 42^1 + 336 3.3306690738754696E-16 2 0 0 0 1 0 0 42^1 + 337 3.3306690738754696E-16 2 0 0 0 0 1 0 42^1 + 338 3.3306690738754696E-16 2 0 0 0 0 0 1 42^1 + 339 3.3306690738754696E-16 2 1 0 0 0 0 0 43^1 + 340 3.3306690738754696E-16 2 0 1 0 0 0 0 43^1 + 341 3.3306690738754696E-16 2 0 0 1 0 0 0 43^1 + 342 3.3306690738754696E-16 2 0 0 0 1 0 0 43^1 + 343 3.3306690738754696E-16 2 0 0 0 0 1 0 43^1 + 344 3.3306690738754696E-16 2 0 0 0 0 0 1 43^1 + 345 3.3306690738754696E-16 2 1 0 0 0 0 0 44^1 + 346 3.3306690738754696E-16 2 0 1 0 0 0 0 44^1 + 347 3.3306690738754696E-16 2 0 0 1 0 0 0 44^1 + 348 3.3306690738754696E-16 2 0 0 0 1 0 0 44^1 + 349 3.3306690738754696E-16 2 0 0 0 0 1 0 44^1 + 350 3.3306690738754696E-16 2 0 0 0 0 0 1 44^1 + 351 3.3306690738754696E-16 2 1 0 0 0 0 0 45^1 + 352 3.3306690738754696E-16 2 0 1 0 0 0 0 45^1 + 353 3.3306690738754696E-16 2 0 0 1 0 0 0 45^1 + 354 3.3306690738754696E-16 2 0 0 0 1 0 0 45^1 + 355 3.3306690738754696E-16 2 0 0 0 0 1 0 45^1 + 356 3.3306690738754696E-16 2 0 0 0 0 0 1 45^1 + 357 3.3306690738754696E-16 2 1 0 0 0 0 0 46^1 + 358 3.3306690738754696E-16 2 0 1 0 0 0 0 46^1 + 359 3.3306690738754696E-16 2 0 0 1 0 0 0 46^1 + 360 3.3306690738754696E-16 2 0 0 0 1 0 0 46^1 + 361 3.3306690738754696E-16 2 0 0 0 0 1 0 46^1 + 362 3.3306690738754696E-16 2 0 0 0 0 0 1 46^1 + 363 3.3306690738754696E-16 2 1 0 0 0 0 0 47^1 + 364 3.3306690738754696E-16 2 0 1 0 0 0 0 47^1 + 365 3.3306690738754696E-16 2 0 0 1 0 0 0 47^1 + 366 3.3306690738754696E-16 2 0 0 0 1 0 0 47^1 + 367 3.3306690738754696E-16 2 0 0 0 0 1 0 47^1 + 368 3.3306690738754696E-16 2 0 0 0 0 0 1 47^1 + 369 3.3306690738754696E-16 2 1 0 0 0 0 0 48^1 + 370 3.3306690738754696E-16 2 0 1 0 0 0 0 48^1 + 371 3.3306690738754696E-16 2 0 0 1 0 0 0 48^1 + 372 3.3306690738754696E-16 2 0 0 0 1 0 0 48^1 + 373 3.3306690738754696E-16 2 0 0 0 0 1 0 48^1 + 374 3.3306690738754696E-16 2 0 0 0 0 0 1 48^1 + 375 3.3306690738754696E-16 2 1 0 0 0 0 0 49^1 + 376 3.3306690738754696E-16 2 0 1 0 0 0 0 49^1 + 377 3.3306690738754696E-16 2 0 0 1 0 0 0 49^1 + 378 3.3306690738754696E-16 2 0 0 0 1 0 0 49^1 + 379 3.3306690738754696E-16 2 0 0 0 0 1 0 49^1 + 380 3.3306690738754696E-16 2 0 0 0 0 0 1 49^1 + 381 3.3306690738754696E-16 2 1 0 0 0 0 0 50^1 + 382 3.3306690738754696E-16 2 0 1 0 0 0 0 50^1 + 383 3.3306690738754696E-16 2 0 0 1 0 0 0 50^1 + 384 3.3306690738754696E-16 2 0 0 0 1 0 0 50^1 + 385 3.3306690738754696E-16 2 0 0 0 0 1 0 50^1 + 386 3.3306690738754696E-16 2 0 0 0 0 0 1 50^1 + 387 3.3306690738754696E-16 2 1 0 0 0 0 0 51^1 + 388 3.3306690738754696E-16 2 0 1 0 0 0 0 51^1 + 389 3.3306690738754696E-16 2 0 0 1 0 0 0 51^1 + 390 3.3306690738754696E-16 2 0 0 0 1 0 0 51^1 + 391 3.3306690738754696E-16 2 0 0 0 0 1 0 51^1 + 392 3.3306690738754696E-16 2 0 0 0 0 0 1 51^1 + 393 3.3306690738754696E-16 2 1 0 0 0 0 0 52^1 + 394 3.3306690738754696E-16 2 0 1 0 0 0 0 52^1 + 395 3.3306690738754696E-16 2 0 0 1 0 0 0 52^1 + 396 3.3306690738754696E-16 2 0 0 0 1 0 0 52^1 + 397 3.3306690738754696E-16 2 0 0 0 0 1 0 52^1 + 398 3.3306690738754696E-16 2 0 0 0 0 0 1 52^1 + 399 3.3306690738754696E-16 2 1 0 0 0 0 0 53^1 + 400 3.3306690738754696E-16 2 0 1 0 0 0 0 53^1 + 401 3.3306690738754696E-16 2 0 0 1 0 0 0 53^1 + 402 3.3306690738754696E-16 2 0 0 0 1 0 0 53^1 + 403 3.3306690738754696E-16 2 0 0 0 0 1 0 53^1 + 404 3.3306690738754696E-16 2 0 0 0 0 0 1 53^1 + 405 3.3306690738754696E-16 2 1 0 0 0 0 0 54^1 + 406 3.3306690738754696E-16 2 0 1 0 0 0 0 54^1 + 407 3.3306690738754696E-16 2 0 0 1 0 0 0 54^1 + 408 3.3306690738754696E-16 2 0 0 0 1 0 0 54^1 + 409 3.3306690738754696E-16 2 0 0 0 0 1 0 54^1 + 410 3.3306690738754696E-16 2 0 0 0 0 0 1 54^1 + 411 3.3306690738754696E-16 2 1 0 0 0 0 0 55^1 + 412 3.3306690738754696E-16 2 0 1 0 0 0 0 55^1 + 413 3.3306690738754696E-16 2 0 0 1 0 0 0 55^1 + 414 3.3306690738754696E-16 2 0 0 0 1 0 0 55^1 + 415 3.3306690738754696E-16 2 0 0 0 0 1 0 55^1 + 416 3.3306690738754696E-16 2 0 0 0 0 0 1 55^1 + 417 3.3306690738754696E-16 2 1 0 0 0 0 0 56^1 + 418 3.3306690738754696E-16 2 0 1 0 0 0 0 56^1 + 419 3.3306690738754696E-16 2 0 0 1 0 0 0 56^1 + 420 3.3306690738754696E-16 2 0 0 0 1 0 0 56^1 + 421 3.3306690738754696E-16 2 0 0 0 0 1 0 56^1 + 422 3.3306690738754696E-16 2 0 0 0 0 0 1 56^1 + 423 3.3306690738754696E-16 2 1 0 0 0 0 0 57^1 + 424 3.3306690738754696E-16 2 0 1 0 0 0 0 57^1 + 425 3.3306690738754696E-16 2 0 0 1 0 0 0 57^1 + 426 3.3306690738754696E-16 2 0 0 0 1 0 0 57^1 + 427 3.3306690738754696E-16 2 0 0 0 0 1 0 57^1 + 428 3.3306690738754696E-16 2 0 0 0 0 0 1 57^1 + 429 3.3306690738754696E-16 2 1 0 0 0 0 0 58^1 + 430 3.3306690738754696E-16 2 0 1 0 0 0 0 58^1 + 431 3.3306690738754696E-16 2 0 0 1 0 0 0 58^1 + 432 3.3306690738754696E-16 2 0 0 0 1 0 0 58^1 + 433 3.3306690738754696E-16 2 0 0 0 0 1 0 58^1 + 434 3.3306690738754696E-16 2 0 0 0 0 0 1 58^1 + 435 3.3306690738754696E-16 2 1 0 0 0 0 0 59^1 + 436 3.3306690738754696E-16 2 0 1 0 0 0 0 59^1 + 437 3.3306690738754696E-16 2 0 0 1 0 0 0 59^1 + 438 3.3306690738754696E-16 2 0 0 0 1 0 0 59^1 + 439 3.3306690738754696E-16 2 0 0 0 0 1 0 59^1 + 440 3.3306690738754696E-16 2 0 0 0 0 0 1 59^1 + 441 3.3306690738754696E-16 2 1 0 0 0 0 0 60^1 + 442 3.3306690738754696E-16 2 0 1 0 0 0 0 60^1 + 443 3.3306690738754696E-16 2 0 0 1 0 0 0 60^1 + 444 3.3306690738754696E-16 2 0 0 0 1 0 0 60^1 + 445 3.3306690738754696E-16 2 0 0 0 0 1 0 60^1 + 446 3.3306690738754696E-16 2 0 0 0 0 0 1 60^1 + 447 3.3306690738754696E-16 2 1 0 0 0 0 0 61^1 + 448 3.3306690738754696E-16 2 0 1 0 0 0 0 61^1 + 449 3.3306690738754696E-16 2 0 0 1 0 0 0 61^1 + 450 3.3306690738754696E-16 2 0 0 0 1 0 0 61^1 + 451 3.3306690738754696E-16 2 0 0 0 0 1 0 61^1 + 452 3.3306690738754696E-16 2 0 0 0 0 0 1 61^1 + 453 3.3306690738754696E-16 2 1 0 0 0 0 0 62^1 + 454 3.3306690738754696E-16 2 0 1 0 0 0 0 62^1 + 455 3.3306690738754696E-16 2 0 0 1 0 0 0 62^1 + 456 3.3306690738754696E-16 2 0 0 0 1 0 0 62^1 + 457 3.3306690738754696E-16 2 0 0 0 0 1 0 62^1 + 458 3.3306690738754696E-16 2 0 0 0 0 0 1 62^1 + 459 3.3306690738754696E-16 2 1 0 0 0 0 0 63^1 + 460 3.3306690738754696E-16 2 0 1 0 0 0 0 63^1 + 461 3.3306690738754696E-16 2 0 0 1 0 0 0 63^1 + 462 3.3306690738754696E-16 2 0 0 0 1 0 0 63^1 + 463 3.3306690738754696E-16 2 0 0 0 0 1 0 63^1 + 464 3.3306690738754696E-16 2 0 0 0 0 0 1 63^1 + 465 3.3306690738754696E-16 2 1 0 0 0 0 0 64^1 + 466 3.3306690738754696E-16 2 0 1 0 0 0 0 64^1 + 467 3.3306690738754696E-16 2 0 0 1 0 0 0 64^1 + 468 3.3306690738754696E-16 2 0 0 0 1 0 0 64^1 + 469 3.3306690738754696E-16 2 0 0 0 0 1 0 64^1 + 470 3.3306690738754696E-16 2 0 0 0 0 0 1 64^1 + 471 3.3306690738754696E-16 2 1 0 0 0 0 0 65^1 + 472 3.3306690738754696E-16 2 0 1 0 0 0 0 65^1 + 473 3.3306690738754696E-16 2 0 0 1 0 0 0 65^1 + 474 3.3306690738754696E-16 2 0 0 0 1 0 0 65^1 + 475 3.3306690738754696E-16 2 0 0 0 0 1 0 65^1 + 476 3.3306690738754696E-16 2 0 0 0 0 0 1 65^1 + 477 3.3306690738754696E-16 2 1 0 0 0 0 0 66^1 + 478 3.3306690738754696E-16 2 0 1 0 0 0 0 66^1 + 479 3.3306690738754696E-16 2 0 0 1 0 0 0 66^1 + 480 3.3306690738754696E-16 2 0 0 0 1 0 0 66^1 + 481 3.3306690738754696E-16 2 0 0 0 0 1 0 66^1 + 482 3.3306690738754696E-16 2 0 0 0 0 0 1 66^1 + 483 3.3306690738754696E-16 2 1 0 0 0 0 0 67^1 + 484 3.3306690738754696E-16 2 0 1 0 0 0 0 67^1 + 485 3.3306690738754696E-16 2 0 0 1 0 0 0 67^1 + 486 3.3306690738754696E-16 2 0 0 0 1 0 0 67^1 + 487 3.3306690738754696E-16 2 0 0 0 0 1 0 67^1 + 488 3.3306690738754696E-16 2 0 0 0 0 0 1 67^1 + 489 3.3306690738754696E-16 2 1 0 0 0 0 0 68^1 + 490 3.3306690738754696E-16 2 0 1 0 0 0 0 68^1 + 491 3.3306690738754696E-16 2 0 0 1 0 0 0 68^1 + 492 3.3306690738754696E-16 2 0 0 0 1 0 0 68^1 + 493 3.3306690738754696E-16 2 0 0 0 0 1 0 68^1 + 494 3.3306690738754696E-16 2 0 0 0 0 0 1 68^1 + 495 3.3306690738754696E-16 2 1 0 0 0 0 0 69^1 + 496 3.3306690738754696E-16 2 0 1 0 0 0 0 69^1 + 497 3.3306690738754696E-16 2 0 0 1 0 0 0 69^1 + 498 3.3306690738754696E-16 2 0 0 0 1 0 0 69^1 + 499 3.3306690738754696E-16 2 0 0 0 0 1 0 69^1 + 500 3.3306690738754696E-16 2 0 0 0 0 0 1 69^1 + 501 3.3306690738754696E-16 2 1 0 0 0 0 0 70^1 + 502 3.3306690738754696E-16 2 0 1 0 0 0 0 70^1 + 503 3.3306690738754696E-16 2 0 0 1 0 0 0 70^1 + 504 3.3306690738754696E-16 2 0 0 0 1 0 0 70^1 + 505 3.3306690738754696E-16 2 0 0 0 0 1 0 70^1 + 506 3.3306690738754696E-16 2 0 0 0 0 0 1 70^1 + 507 3.3306690738754696E-16 2 1 0 0 0 0 0 71^1 + 508 3.3306690738754696E-16 2 0 1 0 0 0 0 71^1 + 509 3.3306690738754696E-16 2 0 0 1 0 0 0 71^1 + 510 3.3306690738754696E-16 2 0 0 0 1 0 0 71^1 + 511 3.3306690738754696E-16 2 0 0 0 0 1 0 71^1 + 512 3.3306690738754696E-16 2 0 0 0 0 0 1 71^1 + 513 3.3306690738754696E-16 2 1 0 0 0 0 0 72^1 + 514 3.3306690738754696E-16 2 0 1 0 0 0 0 72^1 + 515 3.3306690738754696E-16 2 0 0 1 0 0 0 72^1 + 516 3.3306690738754696E-16 2 0 0 0 1 0 0 72^1 + 517 3.3306690738754696E-16 2 0 0 0 0 1 0 72^1 + 518 3.3306690738754696E-16 2 0 0 0 0 0 1 72^1 + 519 3.3306690738754696E-16 2 1 0 0 0 0 0 73^1 + 520 3.3306690738754696E-16 2 0 1 0 0 0 0 73^1 + 521 3.3306690738754696E-16 2 0 0 1 0 0 0 73^1 + 522 3.3306690738754696E-16 2 0 0 0 1 0 0 73^1 + 523 3.3306690738754696E-16 2 0 0 0 0 1 0 73^1 + 524 3.3306690738754696E-16 2 0 0 0 0 0 1 73^1 + 525 3.3306690738754696E-16 2 1 0 0 0 0 0 74^1 + 526 3.3306690738754696E-16 2 0 1 0 0 0 0 74^1 + 527 3.3306690738754696E-16 2 0 0 1 0 0 0 74^1 + 528 3.3306690738754696E-16 2 0 0 0 1 0 0 74^1 + 529 3.3306690738754696E-16 2 0 0 0 0 1 0 74^1 + 530 3.3306690738754696E-16 2 0 0 0 0 0 1 74^1 + 531 3.3306690738754696E-16 2 1 0 0 0 0 0 75^1 + 532 3.3306690738754696E-16 2 0 1 0 0 0 0 75^1 + 533 3.3306690738754696E-16 2 0 0 1 0 0 0 75^1 + 534 3.3306690738754696E-16 2 0 0 0 1 0 0 75^1 + 535 3.3306690738754696E-16 2 0 0 0 0 1 0 75^1 + 536 3.3306690738754696E-16 2 0 0 0 0 0 1 75^1 + 537 3.3306690738754696E-16 2 1 0 0 0 0 0 76^1 + 538 3.3306690738754696E-16 2 0 1 0 0 0 0 76^1 + 539 3.3306690738754696E-16 2 0 0 1 0 0 0 76^1 + 540 3.3306690738754696E-16 2 0 0 0 1 0 0 76^1 + 541 3.3306690738754696E-16 2 0 0 0 0 1 0 76^1 + 542 3.3306690738754696E-16 2 0 0 0 0 0 1 76^1 + 543 3.3306690738754696E-16 2 1 0 0 0 0 0 77^1 + 544 3.3306690738754696E-16 2 0 1 0 0 0 0 77^1 + 545 3.3306690738754696E-16 2 0 0 1 0 0 0 77^1 + 546 3.3306690738754696E-16 2 0 0 0 1 0 0 77^1 + 547 3.3306690738754696E-16 2 0 0 0 0 1 0 77^1 + 548 3.3306690738754696E-16 2 0 0 0 0 0 1 77^1 + 549 3.3306690738754696E-16 2 1 0 0 0 0 0 78^1 + 550 3.3306690738754696E-16 2 0 1 0 0 0 0 78^1 + 551 3.3306690738754696E-16 2 0 0 1 0 0 0 78^1 + 552 3.3306690738754696E-16 2 0 0 0 1 0 0 78^1 + 553 3.3306690738754696E-16 2 0 0 0 0 1 0 78^1 + 554 3.3306690738754696E-16 2 0 0 0 0 0 1 78^1 + 555 3.3306690738754696E-16 2 1 0 0 0 0 0 79^1 + 556 3.3306690738754696E-16 2 0 1 0 0 0 0 79^1 + 557 3.3306690738754696E-16 2 0 0 1 0 0 0 79^1 + 558 3.3306690738754696E-16 2 0 0 0 1 0 0 79^1 + 559 3.3306690738754696E-16 2 0 0 0 0 1 0 79^1 + 560 3.3306690738754696E-16 2 0 0 0 0 0 1 79^1 + 561 3.3306690738754696E-16 2 1 0 0 0 0 0 80^1 + 562 3.3306690738754696E-16 2 0 1 0 0 0 0 80^1 + 563 3.3306690738754696E-16 2 0 0 1 0 0 0 80^1 + 564 3.3306690738754696E-16 2 0 0 0 1 0 0 80^1 + 565 3.3306690738754696E-16 2 0 0 0 0 1 0 80^1 + 566 3.3306690738754696E-16 2 0 0 0 0 0 1 80^1 + 567 3.3306690738754696E-16 2 1 0 0 0 0 0 81^1 + 568 3.3306690738754696E-16 2 0 1 0 0 0 0 81^1 + 569 3.3306690738754696E-16 2 0 0 1 0 0 0 81^1 + 570 3.3306690738754696E-16 2 0 0 0 1 0 0 81^1 + 571 3.3306690738754696E-16 2 0 0 0 0 1 0 81^1 + 572 3.3306690738754696E-16 2 0 0 0 0 0 1 81^1 + 573 3.3306690738754696E-16 2 1 0 0 0 0 0 82^1 + 574 3.3306690738754696E-16 2 0 1 0 0 0 0 82^1 + 575 3.3306690738754696E-16 2 0 0 1 0 0 0 82^1 + 576 3.3306690738754696E-16 2 0 0 0 1 0 0 82^1 + 577 3.3306690738754696E-16 2 0 0 0 0 1 0 82^1 + 578 3.3306690738754696E-16 2 0 0 0 0 0 1 82^1 + 579 3.3306690738754696E-16 2 1 0 0 0 0 0 83^1 + 580 3.3306690738754696E-16 2 0 1 0 0 0 0 83^1 + 581 3.3306690738754696E-16 2 0 0 1 0 0 0 83^1 + 582 3.3306690738754696E-16 2 0 0 0 1 0 0 83^1 + 583 3.3306690738754696E-16 2 0 0 0 0 1 0 83^1 + 584 3.3306690738754696E-16 2 0 0 0 0 0 1 83^1 + 585 3.3306690738754696E-16 2 1 0 0 0 0 0 84^1 + 586 3.3306690738754696E-16 2 0 1 0 0 0 0 84^1 + 587 3.3306690738754696E-16 2 0 0 1 0 0 0 84^1 + 588 3.3306690738754696E-16 2 0 0 0 1 0 0 84^1 + 589 3.3306690738754696E-16 2 0 0 0 0 1 0 84^1 + 590 3.3306690738754696E-16 2 0 0 0 0 0 1 84^1 + 591 3.3306690738754696E-16 2 1 0 0 0 0 0 85^1 + 592 3.3306690738754696E-16 2 0 1 0 0 0 0 85^1 + 593 3.3306690738754696E-16 2 0 0 1 0 0 0 85^1 + 594 3.3306690738754696E-16 2 0 0 0 1 0 0 85^1 + 595 3.3306690738754696E-16 2 0 0 0 0 1 0 85^1 + 596 3.3306690738754696E-16 2 0 0 0 0 0 1 85^1 + 597 3.3306690738754696E-16 2 1 0 0 0 0 0 86^1 + 598 3.3306690738754696E-16 2 0 1 0 0 0 0 86^1 + 599 3.3306690738754696E-16 2 0 0 1 0 0 0 86^1 + 600 3.3306690738754696E-16 2 0 0 0 1 0 0 86^1 + 601 3.3306690738754696E-16 2 0 0 0 0 1 0 86^1 + 602 3.3306690738754696E-16 2 0 0 0 0 0 1 86^1 + 603 3.3306690738754696E-16 2 1 0 0 0 0 0 87^1 + 604 3.3306690738754696E-16 2 0 1 0 0 0 0 87^1 + 605 3.3306690738754696E-16 2 0 0 1 0 0 0 87^1 + 606 3.3306690738754696E-16 2 0 0 0 1 0 0 87^1 + 607 3.3306690738754696E-16 2 0 0 0 0 1 0 87^1 + 608 3.3306690738754696E-16 2 0 0 0 0 0 1 87^1 + 609 3.3306690738754696E-16 2 1 0 0 0 0 0 88^1 + 610 3.3306690738754696E-16 2 0 1 0 0 0 0 88^1 + 611 3.3306690738754696E-16 2 0 0 1 0 0 0 88^1 + 612 3.3306690738754696E-16 2 0 0 0 1 0 0 88^1 + 613 3.3306690738754696E-16 2 0 0 0 0 1 0 88^1 + 614 3.3306690738754696E-16 2 0 0 0 0 0 1 88^1 + 615 3.3306690738754696E-16 2 1 0 0 0 0 0 89^1 + 616 3.3306690738754696E-16 2 0 1 0 0 0 0 89^1 + 617 3.3306690738754696E-16 2 0 0 1 0 0 0 89^1 + 618 3.3306690738754696E-16 2 0 0 0 1 0 0 89^1 + 619 3.3306690738754696E-16 2 0 0 0 0 1 0 89^1 + 620 3.3306690738754696E-16 2 0 0 0 0 0 1 89^1 + 621 3.3306690738754696E-16 2 1 0 0 0 0 0 90^1 + 622 3.3306690738754696E-16 2 0 1 0 0 0 0 90^1 + 623 3.3306690738754696E-16 2 0 0 1 0 0 0 90^1 + 624 3.3306690738754696E-16 2 0 0 0 1 0 0 90^1 + 625 3.3306690738754696E-16 2 0 0 0 0 1 0 90^1 + 626 3.3306690738754696E-16 2 0 0 0 0 0 1 90^1 + 627 3.3306690738754696E-16 2 1 0 0 0 0 0 91^1 + 628 3.3306690738754696E-16 2 0 1 0 0 0 0 91^1 + 629 3.3306690738754696E-16 2 0 0 1 0 0 0 91^1 + 630 3.3306690738754696E-16 2 0 0 0 1 0 0 91^1 + 631 3.3306690738754696E-16 2 0 0 0 0 1 0 91^1 + 632 3.3306690738754696E-16 2 0 0 0 0 0 1 91^1 + 633 3.3306690738754696E-16 2 1 0 0 0 0 0 92^1 + 634 3.3306690738754696E-16 2 0 1 0 0 0 0 92^1 + 635 3.3306690738754696E-16 2 0 0 1 0 0 0 92^1 + 636 3.3306690738754696E-16 2 0 0 0 1 0 0 92^1 + 637 3.3306690738754696E-16 2 0 0 0 0 1 0 92^1 + 638 3.3306690738754696E-16 2 0 0 0 0 0 1 92^1 + 639 3.3306690738754696E-16 2 1 0 0 0 0 0 93^1 + 640 3.3306690738754696E-16 2 0 1 0 0 0 0 93^1 + 641 3.3306690738754696E-16 2 0 0 1 0 0 0 93^1 + 642 3.3306690738754696E-16 2 0 0 0 1 0 0 93^1 + 643 3.3306690738754696E-16 2 0 0 0 0 1 0 93^1 + 644 3.3306690738754696E-16 2 0 0 0 0 0 1 93^1 + 645 3.3306690738754696E-16 2 1 0 0 0 0 0 94^1 + 646 3.3306690738754696E-16 2 0 1 0 0 0 0 94^1 + 647 3.3306690738754696E-16 2 0 0 1 0 0 0 94^1 + 648 3.3306690738754696E-16 2 0 0 0 1 0 0 94^1 + 649 3.3306690738754696E-16 2 0 0 0 0 1 0 94^1 + 650 3.3306690738754696E-16 2 0 0 0 0 0 1 94^1 + 651 3.3306690738754696E-16 2 1 0 0 0 0 0 95^1 + 652 3.3306690738754696E-16 2 0 1 0 0 0 0 95^1 + 653 3.3306690738754696E-16 2 0 0 1 0 0 0 95^1 + 654 3.3306690738754696E-16 2 0 0 0 1 0 0 95^1 + 655 3.3306690738754696E-16 2 0 0 0 0 1 0 95^1 + 656 3.3306690738754696E-16 2 0 0 0 0 0 1 95^1 + 657 3.3306690738754696E-16 2 1 0 0 0 0 0 96^1 + 658 3.3306690738754696E-16 2 0 1 0 0 0 0 96^1 + 659 3.3306690738754696E-16 2 0 0 1 0 0 0 96^1 + 660 3.3306690738754696E-16 2 0 0 0 1 0 0 96^1 + 661 3.3306690738754696E-16 2 0 0 0 0 1 0 96^1 + 662 3.3306690738754696E-16 2 0 0 0 0 0 1 96^1 + 663 3.3306690738754696E-16 2 1 0 0 0 0 0 97^1 + 664 3.3306690738754696E-16 2 0 1 0 0 0 0 97^1 + 665 3.3306690738754696E-16 2 0 0 1 0 0 0 97^1 + 666 3.3306690738754696E-16 2 0 0 0 1 0 0 97^1 + 667 3.3306690738754696E-16 2 0 0 0 0 1 0 97^1 + 668 3.3306690738754696E-16 2 0 0 0 0 0 1 97^1 + 669 3.3306690738754696E-16 2 1 0 0 0 0 0 98^1 + 670 3.3306690738754696E-16 2 0 1 0 0 0 0 98^1 + 671 3.3306690738754696E-16 2 0 0 1 0 0 0 98^1 + 672 3.3306690738754696E-16 2 0 0 0 1 0 0 98^1 + 673 3.3306690738754696E-16 2 0 0 0 0 1 0 98^1 + 674 3.3306690738754696E-16 2 0 0 0 0 0 1 98^1 + 675 3.3306690738754696E-16 2 1 0 0 0 0 0 99^1 + 676 3.3306690738754696E-16 2 0 1 0 0 0 0 99^1 + 677 3.3306690738754696E-16 2 0 0 1 0 0 0 99^1 + 678 3.3306690738754696E-16 2 0 0 0 1 0 0 99^1 + 679 3.3306690738754696E-16 2 0 0 0 0 1 0 99^1 + 680 3.3306690738754696E-16 2 0 0 0 0 0 1 99^1 + 681 3.3306690738754696E-16 2 1 0 0 0 0 0 100^1 + 682 3.3306690738754696E-16 2 0 1 0 0 0 0 100^1 + 683 3.3306690738754696E-16 2 0 0 1 0 0 0 100^1 + 684 3.3306690738754696E-16 2 0 0 0 1 0 0 100^1 + 685 3.3306690738754696E-16 2 0 0 0 0 1 0 100^1 + 686 3.3306690738754696E-16 2 0 0 0 0 0 1 100^1 diff --git a/test/tests.jl b/test/tests.jl index fc4a759a..6c5aff1e 100644 --- a/test/tests.jl +++ b/test/tests.jl @@ -5,14 +5,14 @@ using Printf function gtpsa_ex0() # descriptor for TPSA with 1 variable of order 1 (smallest construction) - d = new_desc(1, 0x1) + d = new_desc(1, 1) # two TPSAs, t1 has maximum order, t2 is same as t1 t1 = new_TPSA(d, MAD_TPSA_DEFAULT) t2 = new_TPSA(t1, MAD_TPSA_SAME) # set order 0 to pi/6 and order 1 to 0 (scalar-like) - set_TPSA!(t1, 0, 1, [pi/6]) + set_TPSA!(t1, 0, 1, [pi/6]) print_TPSA(t1, "ini", 0.0, false, "test0.txt", "w+") # t2=sin(t1) @@ -31,7 +31,7 @@ end function gtpsa_ex1() # descriptor for TPSA with 6 variables with maximum order 4 - d = new_desc(6, 0x4) + d = new_desc(6, 4) # two TPSAs, t1 has maximum order, t2 is same as t1 t1 = new_TPSA(d, MAD_TPSA_DEFAULT) @@ -56,7 +56,7 @@ function gtpsa_ex1() end function gtpsa_ex2() - d = new_desc(4,0x4,2,0x3) + d = new_desc(4, 4, 2, 3) t1 = new_TPSA(d, MAD_TPSA_DEFAULT) t2 = new_TPSA(t1, MAD_TPSA_SAME) @@ -76,7 +76,7 @@ function gtpsa_ex2() end function gtpsa_ex3() - d = new_desc(6, 0x0, 0, 0x0, [0x3,0x3,0x2,0x2,0x1,0x1]) + d = new_desc(6, 0, 0, 0, [3, 3, 2, 2, 1, 1]) t1 = new_TPSA(d, MAD_TPSA_DEFAULT) t2 = new_TPSA(t1, MAD_TPSA_SAME) @@ -96,12 +96,12 @@ function gtpsa_ex3() end function gtpsa_ex4() - d10 = new_desc(6, 0x0, 0, 0x0, [0x0a,0x0a,0x0a,0x0a,0x0a,0x0a]) + d10 = new_desc(6, 0, 0, 0, [10, 10, 10, 10, 10, 10]) io = open("test4.txt", "w+"); @printf(io, "d10 length=%4d coefs\n", desc_maxlen(d10, MAD_TPSA_DEFAULT)) del!(d10) - d = new_desc(6, 0x0c, 0, 0x0, [0x2, 0x2, 0x2, 0x2, 0x1, 0x0a]) + d = new_desc(6, 12, 0, 0, [2, 2, 2, 2, 1, 10]) @printf(io, "d length=%4d coefs\n", desc_maxlen(d, MAD_TPSA_DEFAULT)) close(io) @@ -122,6 +122,65 @@ function gtpsa_ex4() cleanup() end +function gtpsa_ex5() + d2 = new_desc(100, 2) + io = open("test5.txt", "w+"); + @printf(io, "d2 length=%4d coefs\n", desc_maxlen(d2, MAD_TPSA_DEFAULT)) + del!(d2) + + d = new_desc(6, 2, 94, 1) + @printf(io, "d length=%4d coefs\n", desc_maxlen(d, MAD_TPSA_DEFAULT)) + close(io) + + t1 = new_TPSA(d, MAD_TPSA_DEFAULT) + t2 = new_TPSA(t1, MAD_TPSA_SAME) + + vec = ones(101) + vec[1] = pi/6 + + set_TPSA!(t1, 0, 101, vec) + print_TPSA(t1, "ini", 0.0, false, "test5.txt", "a") + + sin!(t1, t2) + print_TPSA(t2, "sin", 0.0, false, "test5.txt", "a") + del!(t1) + + asin!(t2, t2) + print_TPSA(t2, "asin", 0.0, false, "test5.txt", "a") + del!(t2) + + cleanup() +end + +function gtpsa_ex7() + d = new_desc(2, 63, 1, 1) + + t1 = new_TPSA(d, MAD_TPSA_DEFAULT) + t2 = new_TPSA(t1, MAD_TPSA_SAME) + + set_TPSA!(t1, 0, 1+3, [pi/6, 1, 1, 1]) + print_TPSA(t1, "ini", 0.0, false, "test7.txt", "w+") + + sin!(t1, t2) + print_TPSA(t2, "sin", 0.0, false, "test7.txt", "a") + del!(t1) + + asin!(t2, t2) + print_TPSA(t2, "asin", 0.0, false, "test7.txt", "a") + del!(t2) + + cleanup() + +end + +function gtpsa_ex8() + d = new_desc(6, 2) + + t1 = new_TPSA(d, 0) + +end + + #d = new_desc(6, 0, 0, 0, [0x10,0x10,0x10,0x10,0x10,0x10]) #t1 = new_TPSA(d, MAD_TPSA_DEFAULT) #set_name(t1, "Test123test456") @@ -132,8 +191,11 @@ end #len = unsafe_load(Ptr{UInt8}(str)) #print(unsafe_string(str + Core.sizeof(UInt8), len)) -#gtpsa_ex0() -#gtpsa_ex1() -#gtpsa_ex2() -#gtpsa_ex3() -#gtpsa_ex4() \ No newline at end of file +gtpsa_ex0() +gtpsa_ex1() +gtpsa_ex2() +gtpsa_ex3() +gtpsa_ex4() +gtpsa_ex5() + +#gtpsa_ex7()