CXSparse: Copyright (c) 2006-2012, Timothy A. Davis.
http://www.suitesparse.com
Derived from CSparse. Conversion originally by David Bateman, Motorola,
and then modified by Tim Davis. ANSI C99 is required, with support for
the _Complex data type.
(if you use a C++ compiler, the C++ complex type is used instead).
CXSparse is a version of CSparse that operates on both real and complex
matrices, using either int or SuiteSparse_long integers. A SuiteSparse_long is
normally just a long on most platforms, but becomes __int64 on WIN64. It now
includes a MATLAB interface, enabling the use of CXSparse functions on both
32-bit and 64-bit platforms.
To install for use in MATLAB, simply type "cs_install" in the MATLAB Command
Window, while in the CXSparse/MATLAB directory. (NOTE: Windows users cannot
use the "lcc" command; run "mex -setup" first, and select a different
compiler). If you use the Unix "make" command in that directory instead and
are using a 64-bit platform, then you must edit the CXSparse/MATLAB/Makefile
first. Refer to the instructions in that file.
Refer to "Direct Methods for Sparse Linear Systems," Timothy A. Davis,
SIAM, Philadelphia, 2006. No detailed user guide is included in this
package; the user guide is the book itself.
To compile the C-library (./Source), C demo programs (./Demo) just type "make"
in this directory. To run the exhaustive statement coverage tests, type
"make" in the Tcov directory; the Tcov tests assume you are using Linux. To
remove all files not in the original distribution, type "make distclean".
I recommend that you use a different level of
optimization than "cc -O", which was chosen so that the Makefile is portable.
See Source/Makefile.
If your C compiler does not support the ANSI C99 complex type, the
#include <complex.h> statement will fail. If this happens, compile the
code with the -DNCOMPLEX flag (the MATLAB cs_install will do this for you).
This package is backward compatible with CSparse. That is, user code that
uses CSparse may switch to using CXSparse without any changes to the user code.
Each CXSparse function has a generic version with the same name as the CSparse
function, and four type-specific versions. For example:
cs_add same as cs_add_di by default, but can be changed to use
SuiteSparse_long
integers if user code is compiled with -DCS_LONG, and/or can
be changed to operate on complex matrices with -DCS_COMPLEX.
cs_di_add double/int version of cs_add
cs_dl_add double/SuiteSparse_long version of cs_add
cs_ci_add complex/int version of cs_add
cs_cl_add complex/SuiteSparse_long version of cs_add
The sparse matrix data structures are treated in the same way: cs, css,
csn, and csd become cs_di, cs_dis, cs_din, and cs_did for the double/int case,
cs_cl, cs_cls, cs_cln, and cs_cld for the complex/SuiteSparse_long case, and so
on.
See cs_demo.c for a type-generic user program, and cs_cl_demo.c for a
type-specific version of the same program (complex/SuiteSparse_long).
Several macros are available in CXSparse (but not in CSparse) to allow user
code to be written in a type-generic manner:
CS_INT int by default, SuiteSparse_long if -DCS_LONG compiler flag
is used
CS_ENTRY double by default, double complex if -DCS_COMPLEX flag is used.
CS_ID "%d" or "%ld", for printf and scanf of the CS_INT type.
CS_INT_MAX INT_MAX or LONG_MAX, the largest possible value of CS_INT.
CS_REAL(x) x or creal(x)
CS_IMAG(x) 0 or cimag(x)
CS_CONJ(x) x or conj(x)
CS_ABS(x) fabs(x) or cabs(x)
Even the name of the include file (cs.h) is the same. To use CXSparse instead
of CSparse, simply compile with -ICXSparse/Source instead of -ICSparse/Source,
and link against libcxsparse.a instead of the CSparse libcsparse.a library.
To determine at compile time if CXSparse or CSparse is being used:
#ifdef CXSPARSE
CXSparse is in use. The generic functions equivalent to CSparse may
be used (cs_add, etc). These generic functions can use different
types, depending on the -DCS_LONG and -DCS_COMPLEX compile flags, with
the default being double/int. The type-specific functions and data
types (cs_di_add, cs_di, CS_INT, etc.) can be used.
#else
CSparse is in use. Only the generic functions "cs_add", etc., are
available, and they are of type double/int.
#endif
See cs.h for the prototypes of each function, and the book "Direct Methods
for Sparse Linear Systems" for full documentation of CSparse and CXSparse.
Other changes from CSparse: cs_transpose performs the complex conjugate
transpose if values>0 (C=A'), the pattern-only transpose if values=0
(C=spones(A') in MATLAB), and the array transpose if values<0 (C=A.' in
MATLAB notation). A set of four conversion routines are included in CXSparse,
to convert real matrices to/from complex matrices.
The Householder reflection constructed by cs_house.c also differs slightly, to
accomodate both the real and complex cases properly.
CXSparse is generated automatically from CSparse. Refer to
http://www.suitesparse.com for details.
--------------------------------------------------------------------------------
Contents:
--------------------------------------------------------------------------------
Demo/ demo C programs that use CXSparse
Doc/ license and change log
Makefile Makefile for the whole package
MATLAB/ MATLAB interface, demos, and tests for CXSparse
Matrix/ sample matrices (with extra complex matrices for CXSparse)
README.txt this file
Source/ primary CXSparse source files
Tcov/ CXSparse tests
--------------------------------------------------------------------------------
./Doc: license and change log
--------------------------------------------------------------------------------
ChangeLog changes in CSparse since first release
lesser.txt the GNU LGPL
License.txt license (GNU LGPL)
--------------------------------------------------------------------------------
./Source: Primary source code for CXSparse
--------------------------------------------------------------------------------
cs_add.c add sparse matrices
cs_amd.c approximate minimum degree
cs_chol.c sparse Cholesky
cs_cholsol.c x=A\b using sparse Cholesky
cs_compress.c convert a compress form to compressed-column form
cs_counts.c column counts for Cholesky and QR
cs_convert.c convert real to complex and complex to real (not in CSparse)
cs_cumsum.c cumulative sum
cs_dfs.c depth-first-search
cs_dmperm.c Dulmage-Mendelsohn permutation
cs_droptol.c drop small entries from a sparse matrix
cs_dropzeros.c drop zeros from a sparse matrix
cs_dupl.c remove (and sum) duplicates
cs_entry.c add an entry to a triplet matrix
cs_ereach.c nonzero pattern of Cholesky L(k,:) from etree and triu(A(:,k))
cs_etree.c find elimination tree
cs_fkeep.c drop entries from a sparse matrix
cs_gaxpy.c sparse matrix times dense matrix
cs.h include file for CXSparse
cs_happly.c apply Householder reflection
cs_house.c Householder reflection (*** NOTE: different algo. from CSparse)
cs_ipvec.c x(p)=b
cs_leaf.c determine if j is a leaf of the skeleton matrix and find lca
cs_load.c load a sparse matrix from a file
cs_lsolve.c x=L\b
cs_ltsolve.c x=L'\b
cs_lu.c sparse LU factorization
cs_lusol.c x=A\b using sparse LU factorization
cs_malloc.c memory manager
cs_maxtrans.c maximum transveral (permutation for zero-free diagonal)
cs_multiply.c sparse matrix multiply
cs_norm.c sparse matrix norm
cs_permute.c permute a sparse matrix
cs_pinv.c invert a permutation vector
cs_post.c postorder an elimination tree
cs_print.c print a sparse matrix
cs_pvec.c x=b(p)
cs_qr.c
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
AliceVision三维重建框架源码 (1113个子文件)
AliceVision.ai 629KB
AUTHORS 937B
sift.c 71KB
generic.c 36KB
imopv.c 34KB
mser.c 29KB
mathop.c 23KB
cs_amd.c 16KB
host.c 14KB
mathop_sse2.c 8KB
imopv_sse2.c 8KB
random.c 6KB
cs_dmperm.c 6KB
cs_maxtrans.c 4KB
cs_util.c 4KB
cs_lu.c 4KB
cs_sqr.c 4KB
cs_convert.c 3KB
cs_qr.c 3KB
cs_counts.c 3KB
cs_chol.c 3KB
cs_updown.c 2KB
cs_scc.c 2KB
cs_qrsol.c 2KB
cs_print.c 2KB
cs_symperm.c 2KB
cs_dfs.c 2KB
cs_multiply.c 2KB
cs_add.c 1KB
cs_dupl.c 1KB
cs_spsolve.c 1KB
cs_etree.c 1KB
cs_schol.c 1KB
cs_ereach.c 1KB
cs_post.c 1KB
cs_transpose.c 1KB
cs_permute.c 1KB
cs_leaf.c 1KB
cs_compress.c 1005B
cs_fkeep.c 961B
cs_tdfs.c 941B
cs_randperm.c 908B
cs_malloc.c 902B
cs_scatter.c 901B
cs_lusol.c 873B
cs_cholsol.c 869B
cs_house.c 866B
cs_load.c 755B
cs_reach.c 697B
cs_happly.c 605B
cs_cumsum.c 579B
cs_utsolve.c 548B
cs_ltsolve.c 547B
cs_usolve.c 529B
cs_lsolve.c 522B
cs_pinv.c 482B
cs_norm.c 479B
cs_entry.c 459B
cs_gaxpy.c 438B
cs_ipvec.c 332B
cs_pvec.c 331B
cs_droptol.c 252B
cs_dropzeros.c 229B
cplex.cc 27KB
glpk.cc 24KB
arg_parser.cc 13KB
clp.cc 12KB
cbc.cc 12KB
soplex.cc 12KB
lp_skeleton.cc 5KB
windows.cc 4KB
color.cc 1KB
base.cc 1KB
lp_base.cc 937B
random.cc 867B
ChangeLog 10KB
ChangeLog 1KB
.clang-format 728B
.clang-tidy 2KB
FindCUDA.cmake 84KB
UseLATEX.cmake 33KB
OptimizeForArchitecture.cmake 30KB
FindSuiteSparse.cmake 22KB
run_nvcc.cmake 12KB
select_compute_arch.cmake 8KB
FindOpenEXR.cmake 7KB
Helpers.cmake 7KB
FindOpenImageIO.cmake 6KB
MakeBundle.cmake 4KB
FindSSE.cmake 4KB
flann_utils.cmake 4KB
make2cmake.cmake 4KB
parse_cubin.cmake 3KB
FindGeogram.cmake 3KB
FindCoinUtils.cmake 3KB
FindILOG.cmake 3KB
FindClp.cmake 3KB
FindCOIN.cmake 3KB
FindOsi.cmake 3KB
FindUncertaintyTE.cmake 3KB
共 1113 条
- 1
- 2
- 3
- 4
- 5
- 6
- 12
资源评论
MonoKelvin
- 粉丝: 5
- 资源: 11
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功