Mercurial > forge
changeset 9563:11d06cf2fb94 octave-forge
sparsersb: interface to rsb_set_initopt_as_string; the sparsersbbench.m will print out the evaluated command before its speedup; doc update.
author | michelemartone |
---|---|
date | Mon, 05 Mar 2012 18:46:32 +0000 |
parents | 33e72956e207 |
children | 6a4eca6874d7 |
files | main/sparsersb/doc/sparsersb.txt main/sparsersb/src/sparsersb.cc main/sparsersb/src/sparsersbbench.m |
diffstat | 3 files changed, 30 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/main/sparsersb/doc/sparsersb.txt Mon Mar 05 17:48:09 2012 +0000 +++ b/main/sparsersb/doc/sparsersb.txt Mon Mar 05 18:46:32 2012 +0000 @@ -31,7 +31,17 @@ Uses `M = max (I)', `N = max (J)' -- Loadable Function: S = sparsersb (M, N) - Equivalent to `sparsersb ([], [], [], M, N, 0)' + If M and N are integers, equivalent to `sparsersb ([], [], [], M, + N, 0)' + + -- Loadable Function: S = sparsersb ("set", OPN, OPV) + If OPN is a string representing a valid librsb option name and OPV + is a string representing a valid librsb option value, the + correspondent librsb option will be set. + + -- Loadable Function: S = sparsersb (A, S) + If A is a sparsersb matrix and S is a string, S will be + interpreted as a query string about matrix A. Please note that on `sparsersb' type variables are available most, but not all of the operators available for `full' or `sparse'
--- a/main/sparsersb/src/sparsersb.cc Mon Mar 05 17:48:09 2012 +0000 +++ b/main/sparsersb/src/sparsersb.cc Mon Mar 05 18:46:32 2012 +0000 @@ -1525,6 +1525,9 @@ @deftypefnx {Loadable Function} {@var{s} =} "RSBOI_FNS" (@var{m}, @var{n})\n\ If @var{m} and @var{n} are integers, equivalent to @code{"RSBOI_FNS" ([], [], [], @var{m}, @var{n}, 0)}\n\ \n\ +@deftypefnx {Loadable Function} {@var{s} =} "RSBOI_FNS" (\"set\", @var{opn}, @var{opv})\n\ +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.\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\ \n"\ @@ -1557,16 +1560,25 @@ RSBOI_0_ERROR(RSBOI_0_NOCOERRMSG); #endif install_sparse_rsb(); - if (nargin == 1 || nargin == 2) + if( nargin == 3 && args(0).is_string() && args(0).string_value()=="set" && args(1).is_string() && args(2).is_string()) + { + 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); + /* FIXME: missing some diagnostic output */ + goto ret; + } + + if ( nargin == 1 || nargin == 2 ) { rsb_type_t typecode=RSBOI_TYPECODE; - if (nargin >= 2)/* FIXME: this is wierd ! */ + if (nargin >= 2)/* FIXME: this is weird ! */ #if RSBOI_WANT_DOUBLE_COMPLEX typecode=RSB_NUMERICAL_TYPE_DOUBLE_COMPLEX; #else RSBOI_0_ERROR(RSBOI_0_NOCOERRMSG); #endif - octave_stdout << "info?\n"; if (nargin == 2 && args(0).type_name()==RSB_OI_TYPEINFO_STRING && args(1).is_string()) { char ss[RSBOI_INFOBUF];
--- a/main/sparsersb/src/sparsersbbench.m Mon Mar 05 17:48:09 2012 +0000 +++ b/main/sparsersb/src/sparsersbbench.m Mon Mar 05 18:46:32 2012 +0000 @@ -1,5 +1,6 @@ #!/usr/bin/octave -q # TODO: document this file's functions so they get installed and are properly usable. +# TODO: sprand should not be used in a consistent way function dt=sparsersbbench(precmd,cmd,postcmd,mint) # .. @@ -27,10 +28,12 @@ postdots=sprintf(";until ((dt=toc())>=%f);",mint); all=[gprecmd,dots,precmd,predots,cmd,postdots,postcmd,dots,gpostcmd]; # printf("will see speedup for %s\n",all); + printf("#%s #-> speedup is...",all); dtr=sparsersbbench([gprecmd,"", precmd,""], cmd,[ postcmd,":",gpostcmd],mint); dto=sparsersbbench([gprecmd,"",rprecmd,""],rcmd,[rpostcmd,":",gpostcmd],mint); speedup=dto/dtr; - printf("%.2f speedup for %s\n",speedup,all); + printf("%.2f\n",speedup); +# printf("%.2f speedup for %s\n",speedup,all); end function sparsersbbench_battery(mstring,mint)