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 | |