From help-octave-request at bevo dot che dot wisc dot edu Fri Jan 19 10:11:51 2001 Subject: Re: .oct-files/ library-wrapper From: "A. Scottedward Hodel" To: Daniel Heiserer cc: "help-octave at bevo dot che dot wisc dot edu" Date: Fri, 19 Jan 2001 10:11:49 -0600 (CST) args is of type octave_value_list. The argument type is overloaded, so that each octave_value can be just about anything you could want. As a result, I wrote a few argument checking routines that are in my port of Stephen Boyd's semidefinite programming package to Octave. These allow you to say things like // pull arguments out of passed structure. int errflg=0; Matrix FF = get_matrix(args(0),"sp: ",1,errflg); if(errflg) return retval; ColumnVector dblksiz = get_vector(args(1),"sp: ",2,errflg); if(errflg) return retval; etc. where the string is passed for diagnostic error messages. You may find looking at those routines helpful for unpacking passed arguments. A S Hodel Dept. of Elect Eng, 200 Broun Hall Auburn Univ, AL 36849 (334)8441854 FAX:-1809 http://www.eng.auburn.edu/users/scotte scotte at eng dot auburn dot edu On Fri, 19 Jan 2001, Daniel Heiserer wrote: > Hi, > I have some questions according wrapping c/fortran > libraries into octave. > I have seen the example: (and some others) > > #include > > DEFUN_DLD (oregonator, args, , > "The `oregonator'.") > { > ColumnVector dx (3); > > ColumnVector x = args(0).vector_value (); > > dx(0) = 77.27 * (x(1) - x(0)*x(1) + x(0) > - 8.375e-06*pow (x(0), 2)); > > dx(1) = (x(2) - x(0)*x(1) - x(1)) / 77.27; > > dx(2) = 0.161*(x(0) - x(2)); > > return octave_value (dx); > } > obviously args is a list or something of the arguments > and > int nargin=args.length(); > takes care of input parsing. > How do I know what kind of datatype is args(j)? > How do I define multiple output arguments is it the same > by just creating a list? > retval(1) = a; > retval(0) = b; > > return retval; > > Did anybody create a mechanism how to automatically > wrap whole bunch of libraries into octave using > some script? > > thanks daniel > > -- > Mit freundlichen Gruessen > Daniel Heiserer > -------------------------------------------------------------- > Dipl.-Phys. Daniel Heiserer, BMW AG, Knorrstrasse 147, 80788 Muenchen > Abteilung EK-20 > Tel.: 089-382-21187, Fax.: 089-382-42820 > mailto:daniel dot heiserer at bmw dot de > Lageplan Standort FIZ: > http://www.stadtplandienst.de/query?ORT=M&STR=Knorrstr.&HNR=147 ------------------------------------------------------------- Octave is freely available under the terms of the GNU GPL. Octave's home on the web: http://www.octave.org How to fund new projects: http://www.octave.org/funding.html Subscription information: http://www.octave.org/archive.html -------------------------------------------------------------