section of routines in soy.i

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