summaryrefslogtreecommitdiff
path: root/usr/include/cholmod_matrixops.h
diff options
context:
space:
mode:
authorShashank2017-05-29 12:40:26 +0530
committerShashank2017-05-29 12:40:26 +0530
commit0345245e860375a32c9a437c4a9d9cae807134e9 (patch)
treead51ecbfa7bcd3cc5f09834f1bb8c08feaa526a4 /usr/include/cholmod_matrixops.h
downloadscilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.gz
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.tar.bz2
scilab_for_xcos_on_cloud-0345245e860375a32c9a437c4a9d9cae807134e9.zip
CMSCOPE changed
Diffstat (limited to 'usr/include/cholmod_matrixops.h')
-rwxr-xr-xusr/include/cholmod_matrixops.h237
1 files changed, 237 insertions, 0 deletions
diff --git a/usr/include/cholmod_matrixops.h b/usr/include/cholmod_matrixops.h
new file mode 100755
index 000000000..7cce7b2c7
--- /dev/null
+++ b/usr/include/cholmod_matrixops.h
@@ -0,0 +1,237 @@
+/* ========================================================================== */
+/* === Include/cholmod_matrixops.h ========================================== */
+/* ========================================================================== */
+
+/* -----------------------------------------------------------------------------
+ * CHOLMOD/Include/cholmod_matrixops.h.
+ * Copyright (C) 2005-2006, Timothy A. Davis
+ * CHOLMOD/Include/cholmod_matrixops.h is licensed under Version 2.0 of the GNU
+ * General Public License. See gpl.txt for a text of the license.
+ * CHOLMOD is also available under other licenses; contact authors for details.
+ * http://www.suitesparse.com
+ * -------------------------------------------------------------------------- */
+
+/* CHOLMOD MatrixOps module.
+ *
+ * Basic operations on sparse and dense matrices.
+ *
+ * cholmod_drop A = entries in A with abs. value >= tol
+ * cholmod_norm_dense s = norm (X), 1-norm, inf-norm, or 2-norm
+ * cholmod_norm_sparse s = norm (A), 1-norm or inf-norm
+ * cholmod_horzcat C = [A,B]
+ * cholmod_scale A = diag(s)*A, A*diag(s), s*A or diag(s)*A*diag(s)
+ * cholmod_sdmult Y = alpha*(A*X) + beta*Y or alpha*(A'*X) + beta*Y
+ * cholmod_ssmult C = A*B
+ * cholmod_submatrix C = A (i,j), where i and j are arbitrary vectors
+ * cholmod_vertcat C = [A ; B]
+ *
+ * A, B, C: sparse matrices (cholmod_sparse)
+ * X, Y: dense matrices (cholmod_dense)
+ * s: scalar or vector
+ *
+ * Requires the Core module. Not required by any other CHOLMOD module.
+ */
+
+#ifndef CHOLMOD_MATRIXOPS_H
+#define CHOLMOD_MATRIXOPS_H
+
+#include "cholmod_core.h"
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_drop: drop entries with small absolute value */
+/* -------------------------------------------------------------------------- */
+
+int cholmod_drop
+(
+ /* ---- input ---- */
+ double tol, /* keep entries with absolute value > tol */
+ /* ---- in/out --- */
+ cholmod_sparse *A, /* matrix to drop entries from */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+int cholmod_l_drop (double, cholmod_sparse *, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_norm_dense: s = norm (X), 1-norm, inf-norm, or 2-norm */
+/* -------------------------------------------------------------------------- */
+
+double cholmod_norm_dense
+(
+ /* ---- input ---- */
+ cholmod_dense *X, /* matrix to compute the norm of */
+ int norm, /* type of norm: 0: inf. norm, 1: 1-norm, 2: 2-norm */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+double cholmod_l_norm_dense (cholmod_dense *, int, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_norm_sparse: s = norm (A), 1-norm or inf-norm */
+/* -------------------------------------------------------------------------- */
+
+double cholmod_norm_sparse
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* matrix to compute the norm of */
+ int norm, /* type of norm: 0: inf. norm, 1: 1-norm */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+double cholmod_l_norm_sparse (cholmod_sparse *, int, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_horzcat: C = [A,B] */
+/* -------------------------------------------------------------------------- */
+
+cholmod_sparse *cholmod_horzcat
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* left matrix to concatenate */
+ cholmod_sparse *B, /* right matrix to concatenate */
+ int values, /* if TRUE compute the numerical values of C */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+cholmod_sparse *cholmod_l_horzcat (cholmod_sparse *, cholmod_sparse *, int,
+ cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_scale: A = diag(s)*A, A*diag(s), s*A or diag(s)*A*diag(s) */
+/* -------------------------------------------------------------------------- */
+
+/* scaling modes, selected by the scale input parameter: */
+#define CHOLMOD_SCALAR 0 /* A = s*A */
+#define CHOLMOD_ROW 1 /* A = diag(s)*A */
+#define CHOLMOD_COL 2 /* A = A*diag(s) */
+#define CHOLMOD_SYM 3 /* A = diag(s)*A*diag(s) */
+
+int cholmod_scale
+(
+ /* ---- input ---- */
+ cholmod_dense *S, /* scale factors (scalar or vector) */
+ int scale, /* type of scaling to compute */
+ /* ---- in/out --- */
+ cholmod_sparse *A, /* matrix to scale */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+int cholmod_l_scale (cholmod_dense *, int, cholmod_sparse *, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_sdmult: Y = alpha*(A*X) + beta*Y or alpha*(A'*X) + beta*Y */
+/* -------------------------------------------------------------------------- */
+
+/* Sparse matrix times dense matrix */
+
+int cholmod_sdmult
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* sparse matrix to multiply */
+ int transpose, /* use A if 0, or A' otherwise */
+ double alpha [2], /* scale factor for A */
+ double beta [2], /* scale factor for Y */
+ cholmod_dense *X, /* dense matrix to multiply */
+ /* ---- in/out --- */
+ cholmod_dense *Y, /* resulting dense matrix */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+int cholmod_l_sdmult (cholmod_sparse *, int, double *, double *,
+ cholmod_dense *, cholmod_dense *Y, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_ssmult: C = A*B */
+/* -------------------------------------------------------------------------- */
+
+/* Sparse matrix times sparse matrix */
+
+cholmod_sparse *cholmod_ssmult
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* left matrix to multiply */
+ cholmod_sparse *B, /* right matrix to multiply */
+ int stype, /* requested stype of C */
+ int values, /* TRUE: do numerical values, FALSE: pattern only */
+ int sorted, /* if TRUE then return C with sorted columns */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+cholmod_sparse *cholmod_l_ssmult (cholmod_sparse *, cholmod_sparse *, int, int,
+ int, cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_submatrix: C = A (r,c), where i and j are arbitrary vectors */
+/* -------------------------------------------------------------------------- */
+
+/* rsize < 0 denotes ":" in MATLAB notation, or more precisely 0:(A->nrow)-1.
+ * In this case, r can be NULL. An rsize of zero, or r = NULL and rsize >= 0,
+ * denotes "[ ]" in MATLAB notation (the empty set).
+ * Similar rules hold for csize.
+ */
+
+cholmod_sparse *cholmod_submatrix
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* matrix to subreference */
+ int *rset, /* set of row indices, duplicates OK */
+ SuiteSparse_long rsize, /* size of r; rsize < 0 denotes ":" */
+ int *cset, /* set of column indices, duplicates OK */
+ SuiteSparse_long csize, /* size of c; csize < 0 denotes ":" */
+ int values, /* if TRUE compute the numerical values of C */
+ int sorted, /* if TRUE then return C with sorted columns */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+cholmod_sparse *cholmod_l_submatrix (cholmod_sparse *, SuiteSparse_long *,
+ SuiteSparse_long, SuiteSparse_long *, SuiteSparse_long, int, int,
+ cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_vertcat: C = [A ; B] */
+/* -------------------------------------------------------------------------- */
+
+cholmod_sparse *cholmod_vertcat
+(
+ /* ---- input ---- */
+ cholmod_sparse *A, /* left matrix to concatenate */
+ cholmod_sparse *B, /* right matrix to concatenate */
+ int values, /* if TRUE compute the numerical values of C */
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+cholmod_sparse *cholmod_l_vertcat (cholmod_sparse *, cholmod_sparse *, int,
+ cholmod_common *) ;
+
+/* -------------------------------------------------------------------------- */
+/* cholmod_symmetry: determine if a sparse matrix is symmetric */
+/* -------------------------------------------------------------------------- */
+
+int cholmod_symmetry
+(
+ /* ---- input ---- */
+ cholmod_sparse *A,
+ int option,
+ /* ---- output ---- */
+ int *xmatched,
+ int *pmatched,
+ int *nzoffdiag,
+ int *nzdiag,
+ /* --------------- */
+ cholmod_common *Common
+) ;
+
+int cholmod_l_symmetry (cholmod_sparse *, int, SuiteSparse_long *,
+ SuiteSparse_long *, SuiteSparse_long *, SuiteSparse_long *,
+ cholmod_common *) ;
+
+#endif