functions in soy.i -
double_rco
|
NT double_rco(&a) Converts the float rco structure to double rco_d. |
double_ruo
|
NT double_ruo(&a) Converts the float ruo structure to double ruo_d. |
float_rco
|
NT float_rco(&a) Converts the double rco_d structure to float rco. |
float_ruo
|
NT float_ruo(&a) Converts the double ruo_d structure to float ruo. |
intop
|
NT int(dims) Interpolating operators implemented as sparse matrices. "dims" is a dimension list with 2^i entries., example: test = binop([64,32,16]) will return a 2-element pointer array, each pointing to a 3-element array of RCO structures. | |
SEE ALSO: |
Laplace_FDA
|
NT Laplace_FDA(CS,nact,aind) Builds the discrete 2D Laplacian operator directly on RCO format. Requires a bit of pre-processing (computing "aind" - see aotest.i for how to do that). |
Laplace_FDA2
|
NT Laplace_FDA2(ap,ur=,un=) Same as Laplace_FDA, but MUCH faster. In fact, so fast that I don't need to bother with going to a C implementation. Input is a [0,1]-valued aperture function. |
Laplace_FDA3
|
NT Laplace_FDA3(ap,ur=,un=) Same as Laplace_FDA2, but with C implementation (faster). Input is a [0,1]-valued aperture function. |
rco
|
rco struct rco { int r; int c; int n; pointer ix; pointer jx; pointer xn; float t; } |
rco_d
|
rco_d struct rco_d { int r; int c; int n; pointer ix; pointer jx; pointer xn; double t; } |
rcoadd
|
rcoadd | |
SEE | ruoxv_float |
rcoadd_double
|
rcoadd_double | |
SEE | rcoadd_float |
rcoadd_float
|
NT func ruoadd(a,b,ur=,un=) Sparse addition of two RUO matrices. | |
SEE ALSO: | ruoadd_float |
rcoata
|
rcoata | |
SEE | ruoadd_float |
rcoata_double
|
rcoata_double | |
SEE | rcoata_float |
rcoata_float
|
NT func rcoatb(a,b,ur=,un=,t=,u=) Sparse mutiplication of two RCO matrices, a'.b. Setting u=1 ("upper") computes only the upper triangular and diagonal elements of the matrix product, and returns an RUO matrix. Use this when computing e.g. the final step of a 3-matrix product of the type M = A'.W.A, where A is RCO, W is RUO and you know that the final result must be RUO. | |
SEE ALSO: | rcoatb_float |
rcoatb
|
rcoatb | |
SEE | rcoata_float |
rcoatb2_float
|
rcoatb2_float | |
SEE | rcoatb_float |
rcoatb_double
|
rcoatb_double | |
SEE | rcoatb_float |
rcoatb_float
|
NT func rcotr(arg) Transposes an RCO matrix. Uses one builtin Yorick function (sort) to make the rest a little bit easier. |
rcobuild
|
NT func rcobuild(a,v,t,ur=,un=) Appends a row-vector v to an RCO matrix a, at threshold t. |
rcocc
|
NT rcocc(&a,b) Concatennate two RCO matrices row-wise |
rcodr
|
NT rcodr(a,r) Delete a specific row from an RCO structure. |
rcoinf
|
NT func rcoinf(a) Inflates RCO compressed matrix to full form. |
rcos
|
NT func rcos(a) Computes the sparseness (or rather, the "fill") of a matrix on RCO format. |
rcotr
|
rcotr | |
SEE | rcoatb_float |
rcotr_fix
|
NT func ruopcg(a,b,x0,&nit,tol=,itmax=,sgs=) Preconditioned conjugate gradient solver for a symmetric positive definite sparse linear system, with Jacobi preconditioner. This algorithm is implemented straight out of Numerical Recipes, with the matrix-vector multiplications carried out sparsely by the ruoxv(a,v) function. Optionally one may invoke symmetric Gauss-Seidel iterations upon the Jacobi preconditioning, by setting the keyword sgs=#iters. (at least 1). SGS requires the U, D and L to be externally defined. | |
SEE ALSO: | ruoxv, aotest |
rcox
|
NT func rcox(a,c) Multiplies RCO compressed matrix by a scalar. |
rcoxv
|
NT func rcoxv(a,v) Sparse matrix-vector multiplication of RCO and real vector. | |
SEE ALSO: | rcoxv_float |
rcoxv_double
|
rcoxv_double | |
SEE | rcoxv_float |
restore_rco
|
NT restore_rco(fn,bin=) Returns the RCO structure saved in the file fn by save_rco. |
restore_ruo
|
NT restore_ruo(fn,bin=) Returns the RUO structure saved in the file fn by save_rco. |
ruo
|
ruo struct ruo { int r; int n; pointer ix; pointer jx; pointer xn; pointer xd; float t; } |
ruo2rco
|
NT func ruo2rco(a) Converts an RUO matrix into RCO. Calls both rcotr and rcoadd. This is not very efficient, and should be used sparingly. |
ruo_d
|
ruo_d struct ruo_d { int r; int n; pointer ix; pointer jx; pointer xn; pointer xd; double t; } |
ruoadd
|
ruoadd | |
SEE | rcoadd_float |
ruoadd_double
|
ruoadd_double | |
SEE | ruoadd_float |
ruoadd_float
|
NT func rcoata(a,ur=,un=,t=) Sparse mutiplication of an RCO matrix with its transpose from the left, i.e. transpose(a)##a | |
SEE ALSO: | rcoata_float |
ruocc
|
NT ruocc(&a,b) Concatennate two RUO matrices block-diagonally |
ruoinf
|
NT func ruoinf(a) Inflates RUO compressed matrix to full form. |
ruopcg
|
ruopcg | |
SEE | rcotr_fix |
ruos
|
NT func ruos(a) Computes the sparseness (or rather, the "fill") of a matrix on RUO format. |
ruox
|
NT func ruox(a,c) Multiplies RUO matrix "a" by a scalar "c". |
ruoxv
|
NT func ruoxv(a,v) Sparse matrix-vector multiplication of RUO and real vector. | |
SEE ALSO: | ruoxv_float |
ruoxv_double
|
ruoxv_double | |
SEE | ruoxv_float |
ruoxv_float
|
NT func rcoadd(a,b,ur=,un=) Sparse addition of two RCO matrices. | |
SEE ALSO: | rcoadd_float |
save_rco
|
NT save_rco(a,fn,bin=) Saves an RCO structure a to the binary file "fnX.bin" by converting all of its elements to float (double) and putting them into a single vector. |
save_ruo
|
NT save_ruo(a,fn,bin=) Saves an RUO structure a to the binary file fn by converting all of its elements to float (double) and putting them into a single vector. |
spcon
|
NT spcon(&a,b,diag=,ruo=) Concatennate two RCO matrices row-wise (default), diagonally (diag=1), or two RUO matrices diagonally (ruo=1). |
spinfo
|
NT func spinfo(a) Prints information about a sparse matrix in RCO or RUO format. |
sprco
|
NT func sprco(x,t=,ur=,un=) Compress a 2D matrix on sparse RCO format. | |
SEE ALSO: | sprco_float |
sprco_double
|
sprco_double | |
SEE | sprco_float |
spruo
|
NT func spruo(x,t=,ur=,un=) Compress a 2D matrix on sparse RUO format. | |
SEE ALSO: | spruo_float |
spruo_double
|
spruo_double | |
SEE | spruo_float |