changeset 11330:29692237864d octave-forge

adapting to the new rsb.h interface.
author michelemartone
date Wed, 26 Dec 2012 15:04:24 +0000
parents 59bf625c1e8a
children e30f9eac5bec
files main/sparsersb/src/sparsersb.cc
diffstat 1 files changed, 205 insertions(+), 210 deletions(-) [+]
line wrap: on
line diff
--- a/main/sparsersb/src/sparsersb.cc	Wed Dec 26 14:46:03 2012 +0000
+++ b/main/sparsersb/src/sparsersb.cc	Wed Dec 26 15:04:24 2012 +0000
@@ -29,7 +29,7 @@
  *  - conversion with indices adjustments and triangle computation:
  *    - from csc 
  *    - from coo 
- *    - from double to complex and viceversa, when calling rsb_get_coo
+ *    - from double to complex and viceversa, when calling rsb_mtx_get_coo
  *  - minimize copies around
  * subsref, dotref, subsasgn are incomplete: need error messages there
  * in full_value(), bool arg is ignored
@@ -108,7 +108,7 @@
 #define RSBOI_T double
 #define RSBOI_MP(M) RSBOI_DUMP(RSB_PRINTF_MATRIX_SUMMARY_ARGS(M))
 #undef RSB_FULLY_IMPLEMENTED
-#define RSBOI_DESTROY(OM) {rsb_matrix_free(OM);(OM)=NULL;}
+#define RSBOI_DESTROY(OM) {rsb_mtx_free(OM);(OM)=NULL;}
 #define RSBOI_SOME_ERROR(ERRVAL) (ERRVAL)!=RSB_ERR_NO_ERROR
 #define RSBOI_0_ERROR error
 #define RSBOI_0_BADINVOERRMSG "invoking this function in the wrong way!\n"
@@ -172,7 +172,7 @@
 
 #if RSBOI_WANT_HEAVY_DEBUG
 extern "C" {
-	rsb_bool_t rsb_is_correctly_built_rcsr_matrix(const struct rsb_matrix_t *matrix); // forward declaration
+	rsb_bool_t rsb_is_correctly_built_rcsr_matrix(const struct rsb_mtx_t *matrix); // forward declaration
 }
 #endif
 #if RSBOI_WANT_DOUBLE_COMPLEX
@@ -219,36 +219,36 @@
 
 static bool rsboi_sparse_rsb_loaded = false;
 
-class octave_sparse_rsb_matrix : public octave_sparse_matrix
+class octave_sparse_rsb_mtx : public octave_sparse_matrix
 {
 	private:
 	public:
-	struct rsb_matrix_t * A;
+	struct rsb_mtx_t * A;
 	public:
-		octave_sparse_rsb_matrix (void) : octave_sparse_matrix(RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (void) : octave_sparse_matrix(RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			this->A=NULL;
 		}
 
-		octave_sparse_rsb_matrix (const octave_sparse_matrix &sm) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const octave_sparse_matrix &sm) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 		}
 
-		octave_sparse_rsb_matrix (const std::string &fn, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const std::string &fn, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			rsb_err_t errval=RSB_ERR_NO_ERROR;
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			if(!(this->A=rsb_load_matrix_file_as_matrix_market(fn.c_str(),RSBOI_RF,typecode,&errval)))
+			if(!(this->A = rsb_file_mtx_load(fn.c_str(),RSBOI_RF,typecode,&errval)))
 				RSBOI_ERROR(RSBOI_0_ALERRMSG);
 			RSBOI_PERROR(errval);
 			if(!this->A)
 				RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 		}
 
-		//void allocate_rsb_matrix_from_coo_copy(const idx_vector &IM, const idx_vector &JM, const void * SMp, octave_idx_type nr, octave_idx_type nc, bool iscomplex=false, rsb_flags_t eflags=RSBOI_DCF)
-		void allocate_rsb_matrix_from_coo_copy(idx_vector & IM, idx_vector & JM, const void * SMp, octave_idx_type nr, octave_idx_type nc, bool iscomplex=false, rsb_flags_t eflags=RSBOI_DCF)
+		//void allocate_rsb_mtx_from_coo_copy(const idx_vector &IM, const idx_vector &JM, const void * SMp, octave_idx_type nr, octave_idx_type nc, bool iscomplex=false, rsb_flags_t eflags=RSBOI_DCF)
+		void allocate_rsb_mtx_from_coo_copy(idx_vector & IM, idx_vector & JM, const void * SMp, octave_idx_type nr, octave_idx_type nc, bool iscomplex=false, rsb_flags_t eflags=RSBOI_DCF)
 		{
 			octave_idx_type nnz=IM.length();
 			rsb_err_t errval=RSB_ERR_NO_ERROR;
@@ -265,7 +265,7 @@
 			IA=(const rsb_coo_index_t*)IM.raw();
 		       	JA=(const rsb_coo_index_t*)JM.raw();
 			//RSB_DO_FLAG_ADD(eflags,rsb_util_determine_uplo_flags(IA,JA,nnz));
-			if(!(this->A = rsb_allocate_rsb_sparse_matrix_from_coo_const(SMp,IA,JA,nnz,typecode,nr,nc,RSBOI_RB,RSBOI_CB,RSBOI_RF|eflags ,&errval)))
+			if(!(this->A = rsb_mtx_alloc_from_coo_const(SMp,IA,JA,nnz,typecode,nr,nc,RSBOI_RB,RSBOI_CB,RSBOI_RF|eflags ,&errval)))
 				RSBOI_ERROR(RSBOI_0_ALERRMSG);
 			RSBOI_MP(this->A);
 			RSBOI_PERROR(errval);
@@ -274,22 +274,22 @@
 		}
 
 #if RSBOI_WANT_DOUBLE_COMPLEX
-		octave_sparse_rsb_matrix (idx_vector &IM, idx_vector &JM, const ComplexMatrix &SM,
+		octave_sparse_rsb_mtx (idx_vector &IM, idx_vector &JM, const ComplexMatrix &SM,
 			octave_idx_type nr, octave_idx_type nc, rsb_flags_t eflags) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			this->allocate_rsb_matrix_from_coo_copy(IM,JM,SM.data(),nr,nc,true,eflags);
+			this->allocate_rsb_mtx_from_coo_copy(IM,JM,SM.data(),nr,nc,true,eflags);
 		}
 #endif
 
-		octave_sparse_rsb_matrix (idx_vector &IM, idx_vector &JM, const Matrix &SM,
+		octave_sparse_rsb_mtx (idx_vector &IM, idx_vector &JM, const Matrix &SM,
 			octave_idx_type nr, octave_idx_type nc, rsb_flags_t eflags) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			this->allocate_rsb_matrix_from_coo_copy(IM,JM,SM.data(),nr,nc,false,eflags);
+			this->allocate_rsb_mtx_from_coo_copy(IM,JM,SM.data(),nr,nc,false,eflags);
 		}
 
-		void allocate_rsb_matrix_from_csc_copy(const SparseMatrix &sm)
+		void allocate_rsb_mtx_from_csc_copy(const SparseMatrix &sm)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			rsb_nnz_index_t nnz=0;
@@ -304,22 +304,22 @@
 			if(sm.is_symmetric())
 				RSB_DO_FLAG_ADD(eflags,RSB_FLAG_LOWER_SYMMETRIC|RSB_FLAG_TRIANGULAR);
 #endif
-			if(!(this->A=rsb_allocate_rsb_sparse_matrix_from_csc_const(sm.data(),sm.ridx(),sm.cidx(), nnz=sm.nnz(),typecode, nr, nc, RSBOI_RB, RSBOI_CB, eflags,&errval)))
+			if(!(this->A = rsb_mtx_alloc_from_csc_const(sm.data(),sm.ridx(),sm.cidx(), nnz=sm.nnz(),typecode, nr, nc, RSBOI_RB, RSBOI_CB, eflags,&errval)))
 				RSBOI_ERROR(RSBOI_0_ALLERRMSG);
 			RSBOI_PERROR(errval);
 			if(!this->A)
 				RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 		}
 
-		octave_sparse_rsb_matrix (const Matrix &m) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const Matrix &m) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			SparseMatrix sm(m);
-			this->allocate_rsb_matrix_from_csc_copy(sm);
+			this->allocate_rsb_mtx_from_csc_copy(sm);
 		}
 
 #if RSBOI_WANT_DOUBLE_COMPLEX
-		void allocate_rsb_matrix_from_csc_copy(const SparseComplexMatrix &sm)
+		void allocate_rsb_mtx_from_csc_copy(const SparseComplexMatrix &sm)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			octave_idx_type nr = sm.rows ();
@@ -335,46 +335,46 @@
 			if(sm.is_hermitian())
 				RSB_DO_FLAG_ADD(eflags,RSB_FLAG_LOWER_HERMITIAN|RSB_FLAG_TRIANGULAR);
 #endif
-			if(!(this->A=rsb_allocate_rsb_sparse_matrix_from_csc_const(sm.data(),sm.ridx(),sm.cidx(), nnz=sm.nnz(),typecode, nr, nc, RSBOI_RB, RSBOI_CB, eflags,&errval)))
+			if(!(this->A = rsb_mtx_alloc_from_csc_const(sm.data(),sm.ridx(),sm.cidx(), nnz=sm.nnz(),typecode, nr, nc, RSBOI_RB, RSBOI_CB, eflags,&errval)))
 				RSBOI_ERROR(RSBOI_0_ALLERRMSG);
 			RSBOI_PERROR(errval);
 			if(!this->A)
 				RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 		}
 
-		octave_sparse_rsb_matrix (const ComplexMatrix &m) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const ComplexMatrix &m) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			this->allocate_rsb_matrix_from_csc_copy(SparseComplexMatrix(m));
+			this->allocate_rsb_mtx_from_csc_copy(SparseComplexMatrix(m));
 		}
 
-		octave_sparse_rsb_matrix (const SparseComplexMatrix &sm, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const SparseComplexMatrix &sm, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			this->allocate_rsb_matrix_from_csc_copy(sm);
+			this->allocate_rsb_mtx_from_csc_copy(sm);
 		}
 #endif
 
-		octave_sparse_rsb_matrix (const SparseMatrix &sm, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
+		octave_sparse_rsb_mtx (const SparseMatrix &sm, rsb_type_t typecode=RSBOI_TYPECODE) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			this->allocate_rsb_matrix_from_csc_copy(sm);
+			this->allocate_rsb_mtx_from_csc_copy(sm);
 		}
 
-		octave_sparse_rsb_matrix (struct rsb_matrix_t * matrix) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX), A(matrix)
+		octave_sparse_rsb_mtx (struct rsb_mtx_t * matrix) : octave_sparse_matrix (RSBIO_DEFAULT_CORE_MATRIX), A(matrix)
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			if(!this->A)
 				RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 		}
 
-		octave_sparse_rsb_matrix (const octave_sparse_rsb_matrix& T) :
+		octave_sparse_rsb_mtx (const octave_sparse_rsb_mtx& T) :
 		octave_sparse_matrix (T)  {
 			rsb_err_t errval=RSB_ERR_NO_ERROR;
-			struct rsb_matrix_t*matrixp=NULL;
+			struct rsb_mtx_t*matrixp=NULL;
 		       	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 			//this->A=rsb_clone(T.A);
-			errval = rsb_clone_transformed(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,NULL,T.A,RSBOI_EXPF);
+			errval = rsb_mtx_clone(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,NULL,T.A,RSBOI_EXPF);
 			this->A=matrixp;
 		};
 		octave_idx_type length (void) const { return this->nnz(); }
@@ -389,9 +389,9 @@
 		octave_idx_type columns (void) const { return this->cols(); }
 		octave_idx_type nzmax (void) const { return this->nnz(); }
 		octave_idx_type capacity (void) const { return this->nnz(); }
-		size_t byte_size (void) const { RSBOI_0_EMCHECK(this->A);size_t so=0;rsb_get_matrix_info(this->A,RSB_MIF_BYTE_SIZE__TO__SIZE_T,&so);return so; }
+		size_t byte_size (void) const { RSBOI_0_EMCHECK(this->A);size_t so=0;rsb_mtx_get_info(this->A,RSB_MIF_BYTE_SIZE__TO__SIZE_T,&so);return so; }
 
-		virtual ~octave_sparse_rsb_matrix (void)
+		virtual ~octave_sparse_rsb_mtx (void)
 		{
 			RSBOI_DEBUG_NOTICE("destroying librsb matrix %p\n",this->A);
 			RSBOI_DESTROY(this->A);
@@ -400,13 +400,13 @@
 		virtual octave_base_value *clone (void) const
 		{
 			RSBOI_DEBUG_NOTICE("cloning librsb matrix %p\n",this->A);
-			return new octave_sparse_rsb_matrix (*this);
+			return new octave_sparse_rsb_mtx (*this);
 		}
 
 		virtual octave_base_value *empty_clone (void) const
 		{
 			RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-			return new octave_sparse_rsb_matrix ();
+			return new octave_sparse_rsb_mtx ();
 		}
 
 #if 0
@@ -437,14 +437,14 @@
 				/* FIXME: and now ? */
 #endif
 				/* FIXME: shall use some librsb's dedicated call for this */
-				errval=rsb_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
+				errval = rsb_mtx_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
 				for(nzi=0;nzi<nnz;++nzi)
 					VAp[nzi]=((RSBOI_T*)coo.VA)[2*nzi];
 			}
 			else
 			{
 				coo.VA=(RSBOI_T*)VA.data();
-				errval=rsb_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
+				errval = rsb_mtx_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
 			}
 			coo.m=this->rows();
 			coo.k=this->cols();
@@ -493,7 +493,7 @@
 			RSBOI_T* VAp=((RSBOI_T*)VA.data());
 			coo.IA=(rsb_coo_index_t*)IA.data(),coo.JA=(rsb_coo_index_t*)JA.data();
 			coo.VA=VAp;
-			errval=rsb_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
+			errval = rsb_mtx_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
 #if RSBOI_WANT_SYMMETRY
 			/* FIXME: and now ? */
 #endif
@@ -537,7 +537,7 @@
 								rsb_err_t errval=RSB_ERR_NO_ERROR;
   								ii=i(0); jj=j(0);
 								RSBOI_DEBUG_NOTICE("get_elements (%d %d)\n",ii,jj);
-       								errval=rsb_get_elements(this->A,&rv,&ii,&jj,1,RSBOI_NF);
+       								errval = rsb_mtx_get_values(this->A,&rv,&ii,&jj,1,RSBOI_NF);
 								retval=rv;
 								if (! error_state)
 								  ;
@@ -550,7 +550,7 @@
 								rsb_err_t errval=RSB_ERR_NO_ERROR;
   								ii=i(0); jj=j(0);
 								RSBOI_DEBUG_NOTICE("get_elements (%d %d) complex\n",ii,jj);
-       								errval=rsb_get_elements(this->A,&rv,&ii,&jj,1,RSBOI_NF);
+       								errval = rsb_mtx_get_values(this->A,&rv,&ii,&jj,1,RSBOI_NF);
 								retval=rv;
 								if (! error_state)
 								  ;
@@ -669,7 +669,7 @@
 #if RSBOI_WANT_SYMMETRY
 										/* FIXME: and now ? */
 #endif
-										errval=rsb_update_elements(this->A,&rv,&ii,&jj,1,RSBOI_NF);
+										errval = rsb_mtx_set_values(this->A,&rv,&ii,&jj,1,RSBOI_NF);
 										RSBOI_PERROR(errval);
 										/* FIXME: I am unsure, here */
 										//retval=rhs.double_value(); // this does not match octavej
@@ -689,7 +689,7 @@
 #if RSBOI_WANT_SYMMETRY
 				/* FIXME: and now ? */
 #endif
-										errval=rsb_update_elements(this->A,&rv,&ii,&jj,1,RSBOI_NF);
+										errval = rsb_mtx_set_values(this->A,&rv,&ii,&jj,1,RSBOI_NF);
 										RSBOI_PERROR(errval);
 										/* FIXME: I am unsure, here */
 										//retval=rhs.double_value(); // this does not match octavej
@@ -790,7 +790,7 @@
 			if(coo.VA==NULL)
 				nnz=0;
 			else
-				errval=rsb_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
+				errval = rsb_mtx_get_coo(this->A,coo.VA,coo.IA,coo.JA,RSB_FLAG_C_INDICES_INTERFACE);
 			coo.m=this->rows();
 			coo.k=this->cols();
 			octave_stdout<<RSBOI_FSTR<< "  (rows = "<<coo.m<<
@@ -832,14 +832,14 @@
 			{
 				Matrix DA(this->rows(),1);
 				//errval=rsb_getdiag (this->A,(RSBOI_T*)DA.data());
-				errval = rsb_matrix_rowwise_cbinop(this->A,(RSBOI_T*)DA.data(),RSB_EXTF_DIAG);
+				errval = rsb_mtx_get_vec(this->A,(RSBOI_T*)DA.data(),RSB_EXTF_DIAG);
 				retval=(DA);
 			}
 			else
 			{
 				ComplexMatrix DA(this->rows(),1);
 				//errval=rsb_getdiag (this->A,(void*)DA.data());
-				errval = rsb_matrix_rowwise_cbinop(this->A,(RSBOI_T*)DA.data(),RSB_EXTF_DIAG);
+				errval = rsb_mtx_get_vec(this->A,(RSBOI_T*)DA.data(),RSB_EXTF_DIAG);
 				retval=(DA);
 			}
 		}
@@ -853,7 +853,7 @@
 	octave_value rsboi_get_scaled_copy_inv(const RSBOI_T alpha)const
 	{
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
-		octave_sparse_rsb_matrix * m = NULL;
+		octave_sparse_rsb_mtx * m = NULL;
 		RSBOI_T one=1.0;
 		RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 		return rsboi_get_scaled_copy(one/alpha);/* FIXME: is this correct ? */
@@ -863,7 +863,7 @@
 	octave_value rsboi_get_scaled_copy_inv(const Complex alpha)const
 	{
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
-		octave_sparse_rsb_matrix * m = NULL;
+		octave_sparse_rsb_mtx * m = NULL;
 		Complex one=1.0;
 		RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 		return rsboi_get_scaled_copy(one/alpha);/* FIXME: is this correct ? */
@@ -873,23 +873,23 @@
 	octave_value rsboi_get_scaled_copy(const RSBOI_T alpha)const
 	{
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
-		octave_sparse_rsb_matrix * m = NULL;
+		octave_sparse_rsb_mtx * m = NULL;
 		RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-		struct rsb_matrix_t*matrixp=NULL;
+		struct rsb_mtx_t*matrixp=NULL;
 		if(is_real_type())
 		{
-			errval = rsb_clone_transformed(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N        , &alpha,this->A,RSBOI_EXPF);
+			errval = rsb_mtx_clone(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N        , &alpha,this->A,RSBOI_EXPF);
 		}
 		else
 #if RSBOI_WANT_DOUBLE_COMPLEX
 		{
 			Complex calpha;calpha+=alpha;
-			errval = rsb_clone_transformed(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,&calpha,this->A,RSBOI_EXPF);
+			errval = rsb_mtx_clone(&matrixp,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,&calpha,this->A,RSBOI_EXPF);
 		}
 #else
 		{RSBOI_0_ERROR(RSBOI_0_NOCOERRMSG);}
 #endif
-		m = new octave_sparse_rsb_matrix( matrixp );
+		m = new octave_sparse_rsb_mtx( matrixp );
 		return m;
 	}
 
@@ -897,11 +897,11 @@
 	octave_value rsboi_get_scaled_copy(const Complex alpha)const
 	{
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
-		octave_sparse_rsb_matrix * m = NULL;
-		struct rsb_matrix_t*matrixp=NULL;
+		octave_sparse_rsb_mtx * m = NULL;
+		struct rsb_mtx_t*matrixp=NULL;
 		RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-		errval = rsb_clone_transformed(&matrixp,RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX,RSB_TRANSPOSITION_N,&alpha,this->A,RSBOI_EXPF);
-		m = new octave_sparse_rsb_matrix( matrixp );
+		errval = rsb_mtx_clone(&matrixp,RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX,RSB_TRANSPOSITION_N,&alpha,this->A,RSBOI_EXPF);
+		m = new octave_sparse_rsb_mtx( matrixp );
 		return m;
 	}
 #endif
@@ -910,10 +910,10 @@
 
 		DECLARE_OCTAVE_ALLOCATOR
 			DECLARE_OV_TYPEID_FUNCTIONS_AND_DATA
-};/* end of class octave_sparse_rsb_matrix definition  */
+};/* end of class octave_sparse_rsb_mtx definition  */
 
 #if 0
-octave_value_list find_nonzero_elem_idx (const class octave_sparse_rsb_matrix & nda, int nargout, octave_idx_type n_to_find, int direction)
+octave_value_list find_nonzero_elem_idx (const class octave_sparse_rsb_mtx & nda, int nargout, octave_idx_type n_to_find, int direction)
 {
 	// useless
 	octave_value retval;
@@ -926,7 +926,7 @@
 {
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_CONV_ARG (const octave_sparse_rsb_matrix&);
+	CAST_CONV_ARG (const octave_sparse_rsb_mtx&);
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_WARN(RSBOI_0_UNFFEMSG);
 	if(v.is_real_type())
@@ -935,112 +935,107 @@
 		return new octave_sparse_complex_matrix (v.sparse_complex_matrix_value());
 }
 
-DEFINE_OCTAVE_ALLOCATOR (octave_sparse_rsb_matrix);
-DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_sparse_rsb_matrix,
+DEFINE_OCTAVE_ALLOCATOR (octave_sparse_rsb_mtx);
+DEFINE_OV_TYPEID_FUNCTIONS_AND_DATA (octave_sparse_rsb_mtx,
 RSB_OI_TYPEINFO_STRING,
 RSB_OI_TYPEINFO_TYPE);
 
-DEFCONV (octave_triangular_conv, octave_sparse_rsb_matrix, matrix)
+DEFCONV (octave_triangular_conv, octave_sparse_rsb_mtx, matrix)
 {
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
-	CAST_CONV_ARG (const octave_sparse_rsb_matrix &);
+	CAST_CONV_ARG (const octave_sparse_rsb_mtx &);
 	return new octave_sparse_matrix (v.matrix_value ());
 }
 
 #if 0
-DEFCONV (octave_sparse_rsb_to_octave_sparse_conv, sparse_rsb_matrix, sparse_matrix)
+DEFCONV (octave_sparse_rsb_to_octave_sparse_conv, sparse_rsb_mtx, sparse_matrix)
 {
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_CONV_ARG (const octave_sparse_rsb_matrix &);
+	CAST_CONV_ARG (const octave_sparse_rsb_mtx &);
 	return new octave_sparse_matrix (v.matrix_value ());
 }
 #endif
 
-DEFUNOP (uplus, sparse_rsb_matrix)
+DEFUNOP (uplus, sparse_rsb_mtx)
 {
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
-	return new octave_sparse_rsb_matrix (v);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
+	return new octave_sparse_rsb_mtx (v);
 }
 
 #if 0
-DEFUNOP (op_incr, sparse_rsb_matrix)
+DEFUNOP (op_incr, sparse_rsb_mtx)
 {
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
 	const octave_idx_type rn=v.A->m,cn=v.A->k;
 	Matrix v2(rn,cn);
 	octave_value retval=v2;
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
-	errval|=rsb_matrix_add_to_dense(v.A,&rsboi_one,RSB_DEFAULT_TRANSPOSITION,(RSBOI_T*)v2.data(),rn,rn,cn,RSB_BOOL_TRUE);
+	errval|=rsb_mtx_add_to_dense(v.A,&rsboi_one,RSB_DEFAULT_TRANSPOSITION,(RSBOI_T*)v2.data(),rn,rn,cn,RSB_BOOL_TRUE);
 	//v=octave_ma(idx, v2.matrix_value());
 	return v2;
 }
 
-DEFUNOP (op_decr, sparse_rsb_matrix)
+DEFUNOP (op_decr, sparse_rsb_mtx)
 {
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
 	const octave_idx_type rn=v.A->m,cn=v.A->k;
 	Matrix v2(rn,cn);
 	octave_value retval=v2;
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
-	errval|=rsb_matrix_add_to_dense(v.A,&rsboi_one,RSB_DEFAULT_TRANSPOSITION,(RSBOI_T*)v2.data(),rn,rn,cn,RSB_BOOL_TRUE);
+	errval|=rsb_mtx_add_to_dense(v.A,&rsboi_one,RSB_DEFAULT_TRANSPOSITION,(RSBOI_T*)v2.data(),rn,rn,cn,RSB_BOOL_TRUE);
 	//v=octave_ma(idx, v2.matrix_value());
 	return v2;
 }
 #endif
 
-DEFUNOP (uminus, sparse_rsb_matrix)
+DEFUNOP (uminus, sparse_rsb_mtx)
 {
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix * m = new octave_sparse_rsb_matrix(v);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx * m = new octave_sparse_rsb_mtx(v);
 	if(!m)return m;
-	//errval=rsb_negation(m->A);
-	errval=rsb_matrix_elemental_unop(m->A,RSB_ELOPF_NEG);
+	errval = rsb_mtx_upd_values(m->A,RSB_ELOPF_NEG,NULL);
 	return m;
 }
 
-DEFUNOP (transpose, sparse_rsb_matrix)
+DEFUNOP (transpose, sparse_rsb_mtx)
 {
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix * m = new octave_sparse_rsb_matrix(v);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx * m = new octave_sparse_rsb_mtx(v);
 	RSBOI_TODO("here, the best solution would be to use some get_transposed() function");
 	if(!m)return m;
-	//errval=rsb_transpose(&m->A);
-	errval = rsb_clone_transformed(&m->A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_T,NULL,m->A,RSBOI_EXPF);
-	//errval=rsb_matrix_elemental_unop(m->A,RSB_ELOPF_TRANS);
+	errval = rsb_mtx_clone(&m->A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_T,NULL,m->A,RSBOI_EXPF);
 	RSBOI_PERROR(errval);
 	return m;
 }
 
-DEFUNOP (htranspose, sparse_rsb_matrix)
+DEFUNOP (htranspose, sparse_rsb_mtx)
 {
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_UNOP_ARG (const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix * m = new octave_sparse_rsb_matrix(v);
+	CAST_UNOP_ARG (const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx * m = new octave_sparse_rsb_mtx(v);
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_TODO("here, the best solution would be to use some get_transposed() function");
 	if(!m)return m;
-	//errval=rsb_htranspose(&m->A);
-	errval = rsb_clone_transformed(&m->A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_C,NULL,m->A,RSBOI_EXPF);
-	//errval=rsb_matrix_elemental_unop(m->A,RSB_ELOPF_HTRANS);
+	errval = rsb_mtx_clone(&m->A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_C,NULL,m->A,RSBOI_EXPF);
 	RSBOI_PERROR(errval);
 	return m;
 }
 
 
-octave_value rsboi_spsv(const octave_sparse_rsb_matrix&v1, const octave_matrix&v2,rsb_trans_t transa)
+octave_value rsboi_spsv(const octave_sparse_rsb_mtx&v1, const octave_matrix&v2,rsb_trans_t transa)
 {
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1088,27 +1083,27 @@
 	}
 }
 
-DEFBINOP(ldiv, sparse_rsb_matrix, matrix)
+DEFBINOP(ldiv, sparse_rsb_mtx, matrix)
 {
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_matrix&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_matrix&);
 	if(v1.is__triangular()) 
 		return rsboi_spsv(v1,v2,RSB_TRANSPOSITION_N);
 	else
 		RSBOI_RSB_MATRIX_SOLVE(v1,v2);
 }
 
-DEFBINOP(trans_ldiv, sparse_rsb_matrix, matrix)
+DEFBINOP(trans_ldiv, sparse_rsb_mtx, matrix)
 {
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_matrix&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_matrix&);
 	if(v1.is__triangular()) 
 		return rsboi_spsv(v1,v2,RSB_TRANSPOSITION_T);
 	else
 		RSBOI_RSB_MATRIX_SOLVE(v1,v2);
 }
 
-DEFBINOP(el_div, sparse_rsb_matrix, matrix)
+DEFBINOP(el_div, sparse_rsb_mtx, matrix)
 {
 	Matrix retval;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1116,7 +1111,7 @@
 	return retval;
 }
 
-DEFBINOP(el_ldiv, sparse_rsb_matrix, matrix)
+DEFBINOP(el_ldiv, sparse_rsb_mtx, matrix)
 {
 	Matrix retval;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1124,7 +1119,7 @@
 	return retval;
 }
 
-DEFBINOP(div, sparse_rsb_matrix, matrix)
+DEFBINOP(div, sparse_rsb_mtx, matrix)
 {
 	Matrix retval;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1132,43 +1127,43 @@
 	return retval;
 }
 
-DEFBINOP(rsb_s_div, sparse_rsb_matrix, scalar)
+DEFBINOP(rsb_s_div, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	return v1.rsboi_get_scaled_copy_inv(v2.scalar_value());
 }
 
-DEFBINOP(rsb_s_mul, sparse_rsb_matrix, scalar)
+DEFBINOP(rsb_s_mul, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	return v1.rsboi_get_scaled_copy(v2.scalar_value());
 }
 
 #if 0
-DEFBINOP(rsb_s_pow, sparse_rsb_matrix, scalar)
+DEFBINOP(rsb_s_pow, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	return v1.rsboi_get_power_copy(v2.scalar_value());
 }
 #endif
 
-DEFASSIGNOP (assign, sparse_rsb_matrix, sparse_rsb_matrix)
+DEFASSIGNOP (assign, sparse_rsb_mtx, sparse_rsb_mtx)
 {
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_FIXME("I dunno how to trigger this!");
-	CAST_BINOP_ARGS (octave_sparse_rsb_matrix &, const octave_sparse_rsb_matrix&);
+	CAST_BINOP_ARGS (octave_sparse_rsb_mtx &, const octave_sparse_rsb_mtx&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	//rsb_assign(v1.A, v2.A);
-	errval = rsb_clone_transformed(&v1.A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,NULL,v2.A,RSBOI_EXPF);
+	errval = rsb_mtx_clone(&v1.A,RSB_NUMERICAL_TYPE_SAME_TYPE,RSB_TRANSPOSITION_N,NULL,v2.A,RSBOI_EXPF);
 	return octave_value();
 }
 
-DEFASSIGNOP (assignm, sparse_rsb_matrix, matrix)
+DEFASSIGNOP (assignm, sparse_rsb_mtx, matrix)
 {
-	CAST_BINOP_ARGS (octave_sparse_rsb_matrix &, const octave_matrix&);
+	CAST_BINOP_ARGS (octave_sparse_rsb_mtx &, const octave_matrix&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	RSBOI_DESTROY(v1.A);
 	octave_value retval;
@@ -1181,9 +1176,9 @@
 }
 
 #if 0
-DEFASSIGNOP(rsb_op_mul_eq_s, sparse_rsb_matrix, scalar)
+DEFASSIGNOP(rsb_op_mul_eq_s, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (octave_sparse_rsb_mtx &, const octave_scalar&);
 	octave_value retval;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	RSBOI_PERROR(v1.rsboi_scale(v2.scalar_value()));
@@ -1211,9 +1206,9 @@
 		return errval;
 	}
 
-DEFASSIGNOP(rsb_op_div_eq_s, sparse_rsb_matrix, scalar)
+DEFASSIGNOP(rsb_op_div_eq_s, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (octave_sparse_rsb_mtx &, const octave_scalar&);
 	octave_value retval;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	RSBOI_PERROR(v1.rsboi_scale_inv(v2.scalar_value()));
@@ -1242,37 +1237,37 @@
 	}
 #endif
 
-DEFBINOP(rsb_el_mul_s, sparse_rsb_matrix, scalar)
+DEFBINOP(rsb_el_mul_s, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	return v1.rsboi_get_scaled_copy(v2.scalar_value());
 }
 
-DEFBINOP(rsb_el_div_s, sparse_rsb_matrix, scalar)
+DEFBINOP(rsb_el_div_s, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	return v1.rsboi_get_scaled_copy_inv(v2.scalar_value());
 }
 
-DEFBINOP(el_pow, sparse_rsb_matrix, scalar)
+DEFBINOP(el_pow, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
-	octave_sparse_rsb_matrix * m = new octave_sparse_rsb_matrix(v1);
+	octave_sparse_rsb_mtx * m = new octave_sparse_rsb_mtx(v1);
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_T alpha=v2.scalar_value();
 	if(!m)return m;
-	errval = rsb_matrix_elemental_binop(m->A,RSB_ELOPF_POW,&alpha);
+	errval = rsb_mtx_upd_values(m->A,RSB_ELOPF_POW,&alpha);
 	RSBOI_PERROR(errval);
 	return m;
 }
 
 #ifdef RSB_FULLY_IMPLEMENTED
-DEFASSIGNOP (assigns, sparse_rsb_matrix, scalar)
+DEFASSIGNOP (assigns, sparse_rsb_mtx, scalar)
 {
-	CAST_BINOP_ARGS (octave_sparse_rsb_matrix &, const octave_scalar&);
+	CAST_BINOP_ARGS (octave_sparse_rsb_mtx &, const octave_scalar&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	v1.assign(idx, v2.matrix_value());
 	RSBOI_WARN(RSBOI_O_MISSIMPERRMSG);
@@ -1280,10 +1275,10 @@
 }
 #endif
 
-DEFBINOP(op_sub, sparse_rsb_matrix, sparse_rsb_matrix)
+DEFBINOP(op_sub, sparse_rsb_mtx, sparse_rsb_mtx)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix*sm = new octave_sparse_rsb_matrix();
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx*sm = new octave_sparse_rsb_mtx();
 	octave_value retval = sm;
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1291,34 +1286,34 @@
 #if RSBOI_WANT_SYMMETRY
 	/* FIXME: and now ? */
 #endif
-	sm->A=rsb_matrix_sum(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_mone,v2.A,&errval);
+	sm->A = rsb_sppsp(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_mone,v2.A,&errval);
 	RSBOI_PERROR(errval);
 	if(!sm->A)
 		RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 	return retval;
 }
 
-DEFBINOP(op_add, sparse_rsb_matrix, sparse_rsb_matrix)
+DEFBINOP(op_add, sparse_rsb_mtx, sparse_rsb_mtx)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix*sm = new octave_sparse_rsb_matrix();
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx*sm = new octave_sparse_rsb_mtx();
 	octave_value retval = sm;
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 #if RSBOI_WANT_SYMMETRY
 	/* FIXME: and now ? */
 #endif
-	sm->A=rsb_matrix_sum(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_one,v2.A,&errval);
+	sm->A = rsb_sppsp(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_one,v2.A,&errval);
 	RSBOI_PERROR(errval);
 	if(!sm->A)
 		RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 	return retval;
 }
 
-DEFBINOP(op_spmul, sparse_rsb_matrix, sparse_rsb_matrix)
+DEFBINOP(op_spmul, sparse_rsb_mtx, sparse_rsb_mtx)
 {
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_sparse_rsb_matrix&);
-	octave_sparse_rsb_matrix*sm = new octave_sparse_rsb_matrix();
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_sparse_rsb_mtx&);
+	octave_sparse_rsb_mtx*sm = new octave_sparse_rsb_mtx();
 	octave_value retval = sm;
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
@@ -1326,17 +1321,17 @@
 	/* FIXME: and now ? */
 #endif
 	/* FIXME: what if they are not both of the same type ? it would be nice to have a conversion.. */
-	sm->A=rsb_matrix_mul(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_one,v2.A,&errval);
+	sm->A = rsb_spmsp(RSBOI_BINOP_PREVAILING_TYPE(v1,v2),RSB_TRANSPOSITION_N,&rsboi_one,v1.A,RSB_TRANSPOSITION_N,&rsboi_one,v2.A,&errval);
 	RSBOI_PERROR(errval);
 	if(!sm->A)
 		RSBOI_0_ERROR(RSBOI_0_ALLERRMSG);
 	return retval;
 }
 
-DEFBINOP(op_mul, sparse_rsb_matrix, matrix)
+DEFBINOP(op_mul, sparse_rsb_mtx, matrix)
 {
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_matrix&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_matrix&);
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	if(v1.is_real_type())
 	{
@@ -1368,12 +1363,12 @@
 	}
 }
 
-DEFBINOP(op_trans_mul, sparse_rsb_matrix, matrix)
+DEFBINOP(op_trans_mul, sparse_rsb_mtx, matrix)
 {
 	// ".'*"  operator
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	rsb_err_t errval=RSB_ERR_NO_ERROR;
-	CAST_BINOP_ARGS (const octave_sparse_rsb_matrix&, const octave_matrix&);
+	CAST_BINOP_ARGS (const octave_sparse_rsb_mtx&, const octave_matrix&);
 	if(v1.is_real_type())
 	{
 		const Matrix b = v2.matrix_value ();
@@ -1415,65 +1410,65 @@
 	RSBOI_DEBUG_NOTICE(RSBOI_D_EMPTY_MSG);
 	#ifdef RSB_FULLY_IMPLEMENTED
 	/* boolean pattern-based not */
-	INSTALL_UNOP (op_not, octave_sparse_rsb_matrix, op_not);
+	INSTALL_UNOP (op_not, octave_sparse_rsb_mtx, op_not);
 	/* to-dense operations */
-	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_matrix, octave_scalar, assigns);
+	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_mtx, octave_scalar, assigns);
 	/* ? */
-	INSTALL_UNOP (op_uplus, octave_sparse_rsb_matrix, uplus);
+	INSTALL_UNOP (op_uplus, octave_sparse_rsb_mtx, uplus);
 	/* elemental comparison, evaluate to sparse or dense boolean matrices */
-	INSTALL_BINOP (op_eq, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_le, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_lt, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_ge, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_gt, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_ne, octave_sparse_rsb_matrix, , );
+	INSTALL_BINOP (op_eq, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_le, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_lt, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_ge, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_gt, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_ne, octave_sparse_rsb_mtx, , );
 	/* pure elemental; scalar and sparse arguments ?! */
 								 // ?
-	INSTALL_BINOP (op_el_ldiv, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_el_and, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_el_or, octave_sparse_rsb_matrix, , );
+	INSTALL_BINOP (op_el_ldiv, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_el_and, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_el_or, octave_sparse_rsb_mtx, , );
 	/* shift operations: they may be left out from the implementation */
-	INSTALL_BINOP (op_lshift, octave_sparse_rsb_matrix, , );
-	INSTALL_BINOP (op_rshift, octave_sparse_rsb_matrix, , );
+	INSTALL_BINOP (op_lshift, octave_sparse_rsb_mtx, , );
+	INSTALL_BINOP (op_rshift, octave_sparse_rsb_mtx, , );
 	#endif
-	//INSTALL_WIDENOP (octave_sparse_rsb_matrix, octave_sparse_matrix,octave_sparse_rsb_to_octave_sparse_conv);/* a DEFCONV .. */
-	//INSTALL_ASSIGNCONV (octave_sparse_rsb_matrix, octave_sparse_matrix,octave_sparse_matrix);/* .. */
+	//INSTALL_WIDENOP (octave_sparse_rsb_mtx, octave_sparse_matrix,octave_sparse_rsb_to_octave_sparse_conv);/* a DEFCONV .. */
+	//INSTALL_ASSIGNCONV (octave_sparse_rsb_mtx, octave_sparse_matrix,octave_sparse_matrix);/* .. */
 	// no need for the following: need a good conversion function, though
-	//INSTALL_UNOP (op_incr, octave_sparse_rsb_matrix, op_incr);
-	//INSTALL_UNOP (op_decr, octave_sparse_rsb_matrix, op_decr);
-	INSTALL_BINOP (op_el_mul, octave_sparse_rsb_matrix, octave_scalar, rsb_el_mul_s);
-//	INSTALL_ASSIGNOP (op_mul_eq, octave_sparse_rsb_matrix, octave_scalar, rsb_op_mul_eq_s); // 20110313 not effective
-//	INSTALL_ASSIGNOP (op_div_eq, octave_sparse_rsb_matrix, octave_scalar, rsb_op_div_eq_s); // 20110313 not effective
-	INSTALL_BINOP (op_el_div, octave_sparse_rsb_matrix, octave_scalar, rsb_el_div_s);
-	INSTALL_BINOP (op_el_pow, octave_sparse_rsb_matrix, octave_scalar, el_pow);
-	INSTALL_UNOP (op_uminus, octave_sparse_rsb_matrix, uminus);
-	INSTALL_BINOP (op_ldiv, octave_sparse_rsb_matrix, octave_matrix, ldiv);
-	INSTALL_BINOP (op_el_ldiv, octave_sparse_rsb_matrix, octave_matrix, el_ldiv);
-	INSTALL_BINOP (op_div, octave_sparse_rsb_matrix, octave_matrix, div);
-	INSTALL_BINOP (op_div, octave_sparse_rsb_matrix, octave_scalar, rsb_s_div);
-	INSTALL_BINOP (op_mul, octave_sparse_rsb_matrix, octave_scalar, rsb_s_mul);
-	//INSTALL_BINOP (op_pow, octave_sparse_rsb_matrix, octave_scalar, rsb_s_pow);
-	INSTALL_BINOP (op_el_div, octave_sparse_rsb_matrix, octave_matrix, el_div);
-	INSTALL_UNOP (op_transpose, octave_sparse_rsb_matrix, transpose);
-	INSTALL_UNOP (op_hermitian, octave_sparse_rsb_matrix, htranspose);
-	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_matrix, octave_sparse_matrix, assign);
-	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_matrix, octave_matrix, assignm);
-	INSTALL_BINOP (op_mul, octave_sparse_rsb_matrix, octave_matrix, op_mul);
-	//INSTALL_BINOP (op_pow, octave_sparse_rsb_matrix, octave_matrix, op_pow);
-	INSTALL_BINOP (op_sub, octave_sparse_rsb_matrix, octave_sparse_rsb_matrix, op_sub);
-	INSTALL_BINOP (op_add, octave_sparse_rsb_matrix, octave_sparse_rsb_matrix, op_add);
-	//INSTALL_BINOP (op_trans_add, octave_sparse_rsb_matrix, octave_sparse_rsb_matrix, op_trans_add);
-	INSTALL_BINOP (op_mul, octave_sparse_rsb_matrix, octave_sparse_rsb_matrix, op_spmul);
-	INSTALL_BINOP (op_trans_mul, octave_sparse_rsb_matrix, octave_matrix, op_trans_mul);
-	INSTALL_BINOP (op_trans_ldiv, octave_sparse_rsb_matrix, octave_matrix, trans_ldiv);
-	//INSTALL_BINOP (op_mul_trans, octave_sparse_rsb_matrix, octave_matrix, op_mul_trans);
-	//INSTALL_BINOP (op_mul_trans, octave_sparse_rsb_matrix, octave_matrix, op_mul_trans);
-	//INSTALL_BINOP (op_herm_mul, octave_sparse_rsb_matrix, octave_matrix, op_herm_mul);
-	//INSTALL_BINOP (op_mul_herm, octave_sparse_rsb_matrix, octave_matrix, op_mul_herm);
-	//INSTALL_BINOP (op_el_not_and, octave_sparse_rsb_matrix, octave_matrix, op_el_not_and);
-	//INSTALL_BINOP (op_el_not_or , octave_sparse_rsb_matrix, octave_matrix, op_el_not_or );
-	//INSTALL_BINOP (op_el_and_not, octave_sparse_rsb_matrix, octave_matrix, op_el_and_not);
-	//INSTALL_BINOP (op_el_or _not, octave_sparse_rsb_matrix, octave_matrix, op_el_or _not);
+	//INSTALL_UNOP (op_incr, octave_sparse_rsb_mtx, op_incr);
+	//INSTALL_UNOP (op_decr, octave_sparse_rsb_mtx, op_decr);
+	INSTALL_BINOP (op_el_mul, octave_sparse_rsb_mtx, octave_scalar, rsb_el_mul_s);
+//	INSTALL_ASSIGNOP (op_mul_eq, octave_sparse_rsb_mtx, octave_scalar, rsb_op_mul_eq_s); // 20110313 not effective
+//	INSTALL_ASSIGNOP (op_div_eq, octave_sparse_rsb_mtx, octave_scalar, rsb_op_div_eq_s); // 20110313 not effective
+	INSTALL_BINOP (op_el_div, octave_sparse_rsb_mtx, octave_scalar, rsb_el_div_s);
+	INSTALL_BINOP (op_el_pow, octave_sparse_rsb_mtx, octave_scalar, el_pow);
+	INSTALL_UNOP (op_uminus, octave_sparse_rsb_mtx, uminus);
+	INSTALL_BINOP (op_ldiv, octave_sparse_rsb_mtx, octave_matrix, ldiv);
+	INSTALL_BINOP (op_el_ldiv, octave_sparse_rsb_mtx, octave_matrix, el_ldiv);
+	INSTALL_BINOP (op_div, octave_sparse_rsb_mtx, octave_matrix, div);
+	INSTALL_BINOP (op_div, octave_sparse_rsb_mtx, octave_scalar, rsb_s_div);
+	INSTALL_BINOP (op_mul, octave_sparse_rsb_mtx, octave_scalar, rsb_s_mul);
+	//INSTALL_BINOP (op_pow, octave_sparse_rsb_mtx, octave_scalar, rsb_s_pow);
+	INSTALL_BINOP (op_el_div, octave_sparse_rsb_mtx, octave_matrix, el_div);
+	INSTALL_UNOP (op_transpose, octave_sparse_rsb_mtx, transpose);
+	INSTALL_UNOP (op_hermitian, octave_sparse_rsb_mtx, htranspose);
+	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_mtx, octave_sparse_matrix, assign);
+	INSTALL_ASSIGNOP (op_asn_eq, octave_sparse_rsb_mtx, octave_matrix, assignm);
+	INSTALL_BINOP (op_mul, octave_sparse_rsb_mtx, octave_matrix, op_mul);
+	//INSTALL_BINOP (op_pow, octave_sparse_rsb_mtx, octave_matrix, op_pow);
+	INSTALL_BINOP (op_sub, octave_sparse_rsb_mtx, octave_sparse_rsb_mtx, op_sub);
+	INSTALL_BINOP (op_add, octave_sparse_rsb_mtx, octave_sparse_rsb_mtx, op_add);
+	//INSTALL_BINOP (op_trans_add, octave_sparse_rsb_mtx, octave_sparse_rsb_mtx, op_trans_add);
+	INSTALL_BINOP (op_mul, octave_sparse_rsb_mtx, octave_sparse_rsb_mtx, op_spmul);
+	INSTALL_BINOP (op_trans_mul, octave_sparse_rsb_mtx, octave_matrix, op_trans_mul);
+	INSTALL_BINOP (op_trans_ldiv, octave_sparse_rsb_mtx, octave_matrix, trans_ldiv);
+	//INSTALL_BINOP (op_mul_trans, octave_sparse_rsb_mtx, octave_matrix, op_mul_trans);
+	//INSTALL_BINOP (op_mul_trans, octave_sparse_rsb_mtx, octave_matrix, op_mul_trans);
+	//INSTALL_BINOP (op_herm_mul, octave_sparse_rsb_mtx, octave_matrix, op_herm_mul);
+	//INSTALL_BINOP (op_mul_herm, octave_sparse_rsb_mtx, octave_matrix, op_mul_herm);
+	//INSTALL_BINOP (op_el_not_and, octave_sparse_rsb_mtx, octave_matrix, op_el_not_and);
+	//INSTALL_BINOP (op_el_not_or , octave_sparse_rsb_mtx, octave_matrix, op_el_not_or );
+	//INSTALL_BINOP (op_el_and_not, octave_sparse_rsb_mtx, octave_matrix, op_el_and_not);
+	//INSTALL_BINOP (op_el_or _not, octave_sparse_rsb_mtx, octave_matrix, op_el_or _not);
 }
 
 static void install_sparse_rsb (void)
@@ -1488,7 +1483,7 @@
 			RSBOI_ERROR("");
 			goto err;
 		}
-		if(RSBOI_SOME_ERROR(errval=rsb_init(RSB_NULL_INIT_OPTIONS)))
+		if(RSBOI_SOME_ERROR(errval = rsb_lib_init(RSB_NULL_INIT_OPTIONS)))
 		{
 			RSBOI_FIXME("temporary style of error handling");
 			RSBOI_PERROR(errval); 
@@ -1502,7 +1497,7 @@
 
 	if (!rsboi_sparse_rsb_loaded)
 	{
-		octave_sparse_rsb_matrix::register_type ();
+		octave_sparse_rsb_mtx::register_type ();
 		install_sparsersb_ops ();
 		rsboi_sparse_rsb_loaded=true;
 		mlock();
@@ -1559,7 +1554,7 @@
 If @var{opn} is a string representing a valid librsb option name and @var{opv} is a string representing a valid librsb option value, the correspondent librsb option will be set to that value.\n\
 \n\
 @deftypefnx {Loadable Function} {@var{s} =} "RSBOI_FNS" (@var{A}, \"get\", @var{mif})\n\
-If @var{mif} is a string specifying a valid librsb matrix info string (valid for rsb_get_matrix_info_from_string()), then the correspondent value will be returned for matrix @var{A}.\n\
+If @var{mif} is a string specifying a valid librsb matrix info string (valid for rsb_mtx_get_info_from_string()), then the correspondent value will be returned for matrix @var{A}.\n\
 \n\
 @deftypefnx {Loadable Function} {@var{s} =} "RSBOI_FNS" (@var{A}, @var{S})\n\
 If @var{A} is a "RSBOI_FNS" matrix and @var{S} is a string, @var{S} will be interpreted as a query string about matrix @var{A}.\n\
@@ -1574,7 +1569,7 @@
 {
 	int nargin = args.length ();
 	octave_value_list retval;
-	octave_sparse_rsb_matrix*matrix=NULL;
+	octave_sparse_rsb_mtx*matrix=NULL;
 	bool ic0=nargin>0?(args(0).is_complex_type()):false;
 	bool ic3=nargin>2?(args(2).is_complex_type()):false;
 
@@ -1598,7 +1593,7 @@
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
 		const char *os=args(1).string_value().c_str();
 		const char *ov=args(2).string_value().c_str();
-		errval=rsb_set_initopt_as_string(os,ov);
+		errval = rsb_lib_set_opt_str(os,ov);
 		/* FIXME: missing some diagnostic output */
 		goto ret;
 	}
@@ -1611,12 +1606,12 @@
 		rsb_err_t errval=RSB_ERR_NO_ERROR;
 		const char *mis=args(2).string_value().c_str();
 		rsb_real_t miv=RSBOI_ZERO;/* FIXME: this is extreme danger! */
-		const struct rsb_matrix_t*matrix=((octave_sparse_rsb_matrix*)(args(0).internal_rep()))->A;
+		const struct rsb_mtx_t*matrix=((octave_sparse_rsb_mtx*)(args(0).internal_rep()))->A;
 		if(!matrix)goto ret;/* FIXME: error handling missing here */
-		errval=rsb_get_matrix_info_from_string(matrix,mis,&miv);
+		errval = rsb_mtx_get_info_str(matrix,mis,&miv);
 		/* FIXME: serious error handling missing here */
 		if(RSBOI_SOME_ERROR(errval))
-			retval.append(std::string("Error returned from rsb_get_matrix_info_from_string()"));
+			retval.append(std::string("Error returned from rsb_mtx_get_info_from_string()"));
 		else
 			retval.append(octave_value(miv));
 		goto ret;
@@ -1635,8 +1630,8 @@
 		if (nargin == 2 && args(0).type_name()==RSB_OI_TYPEINFO_STRING && args(1).is_string())
 		{
 			char ss[RSBOI_INFOBUF];
-			const struct rsb_matrix_t*matrix=NULL;//((octave_sparse_rsb_matrix)(args(0).get_rep())).A;
-			matrix=((octave_sparse_rsb_matrix*)(args(0).internal_rep()))->A;
+			const struct rsb_mtx_t*matrix=NULL;//((octave_sparse_rsb_mtx)(args(0).get_rep())).A;
+			matrix=((octave_sparse_rsb_mtx*)(args(0).internal_rep()))->A;
 			if(!matrix)goto ret;/* FIXME: error handling missing here */
 			snprintf(ss,sizeof(ss),RSB_PRINTF_MATRIX_SUMMARY_ARGS(matrix));
 			/* FIXME: to add interpretation */
@@ -1652,7 +1647,7 @@
 			if(args(0).type_name()==RSB_OI_TYPEINFO_STRING)
 			{
 				RSBOI_WARN(RSBOI_0_UNFFEMSG);
-				retval.append(matrix=(octave_sparse_rsb_matrix*)(args(0).get_rep()).clone());
+				retval.append(matrix=(octave_sparse_rsb_mtx*)(args(0).get_rep()).clone());
 			}
 			else
 			{
@@ -1660,14 +1655,14 @@
 				{
 					const SparseMatrix m = args(0).sparse_matrix_value();
 					if (error_state) goto err;
-					retval.append(matrix=new octave_sparse_rsb_matrix(m,typecode));
+					retval.append(matrix=new octave_sparse_rsb_mtx(m,typecode));
 				}
 #if RSBOI_WANT_DOUBLE_COMPLEX
 				else
 				{
 					const SparseComplexMatrix m = args(0).sparse_complex_matrix_value();
 					if (error_state) goto err;
-					retval.append(matrix=new octave_sparse_rsb_matrix(m,typecode));
+					retval.append(matrix=new octave_sparse_rsb_mtx(m,typecode));
 				}
 #endif
 			}
@@ -1686,7 +1681,7 @@
 			{
 				RSBOI_WARN(RSBOI_0_UNFFEMSG);
 				RSBOI_WARN("shall set the type, here");
-				retval.append(matrix=new octave_sparse_rsb_matrix(m));
+				retval.append(matrix=new octave_sparse_rsb_mtx(m));
 			}
 		}
 		else
@@ -1695,14 +1690,14 @@
 			{
 				Matrix m = args(0).matrix_value();
 				if (error_state) goto err;
-				retval.append(matrix=new octave_sparse_rsb_matrix(m));
+				retval.append(matrix=new octave_sparse_rsb_mtx(m));
 			}
 #if RSBOI_WANT_DOUBLE_COMPLEX
 			else
 			{
 				ComplexMatrix m = args(0).complex_matrix_value();
 				if (error_state) goto err;
-				retval.append(matrix=new octave_sparse_rsb_matrix(m));
+				retval.append(matrix=new octave_sparse_rsb_mtx(m));
 			}
 #endif
 		}
@@ -1765,7 +1760,7 @@
 		{
 			idx_vector iv=args(0).index_vector ();
 			idx_vector jv=args(1).index_vector ();
-			retval.append(matrix=new octave_sparse_rsb_matrix( iv, jv, args(2).matrix_value(),nr,nc,eflags ));
+			retval.append(matrix=new octave_sparse_rsb_mtx( iv, jv, args(2).matrix_value(),nr,nc,eflags ));
 		}
 
 #if RSBOI_WANT_DOUBLE_COMPLEX
@@ -1773,7 +1768,7 @@
 		{
 			idx_vector iv=args(0).index_vector ();
 			idx_vector jv=args(1).index_vector ();
-			retval.append(matrix=new octave_sparse_rsb_matrix( iv, jv, args(2).complex_matrix_value(),nr,nc,eflags ));
+			retval.append(matrix=new octave_sparse_rsb_mtx( iv, jv, args(2).complex_matrix_value(),nr,nc,eflags ));
 		}
 #endif
 	}