This list is closed, nobody may subscribe to it.
2000 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(14) |
Nov
(10) |
Dec
|
---|---|---|---|---|---|---|---|---|---|---|---|---|
2001 |
Jan
|
Feb
(4) |
Mar
|
Apr
(3) |
May
(13) |
Jun
(2) |
Jul
(7) |
Aug
|
Sep
(2) |
Oct
(5) |
Nov
(8) |
Dec
|
2002 |
Jan
|
Feb
|
Mar
(19) |
Apr
(8) |
May
(8) |
Jun
(8) |
Jul
(4) |
Aug
(8) |
Sep
(19) |
Oct
(13) |
Nov
(37) |
Dec
(2) |
2003 |
Jan
(7) |
Feb
(23) |
Mar
(16) |
Apr
(4) |
May
(18) |
Jun
(9) |
Jul
(7) |
Aug
(6) |
Sep
(7) |
Oct
|
Nov
(39) |
Dec
(57) |
2004 |
Jan
(21) |
Feb
(15) |
Mar
(17) |
Apr
(9) |
May
(17) |
Jun
(65) |
Jul
(33) |
Aug
(48) |
Sep
(93) |
Oct
(35) |
Nov
(18) |
Dec
(4) |
2005 |
Jan
(20) |
Feb
(59) |
Mar
(17) |
Apr
(59) |
May
(77) |
Jun
(32) |
Jul
(34) |
Aug
(8) |
Sep
(34) |
Oct
(26) |
Nov
(65) |
Dec
(66) |
2006 |
Jan
(45) |
Feb
(37) |
Mar
(50) |
Apr
(32) |
May
(48) |
Jun
(42) |
Jul
(12) |
Aug
(53) |
Sep
(51) |
Oct
(79) |
Nov
(46) |
Dec
(25) |
2007 |
Jan
(120) |
Feb
(78) |
Mar
(45) |
Apr
(91) |
May
(155) |
Jun
(66) |
Jul
(96) |
Aug
(110) |
Sep
(145) |
Oct
(189) |
Nov
(68) |
Dec
(160) |
2008 |
Jan
(163) |
Feb
(212) |
Mar
(209) |
Apr
(157) |
May
(216) |
Jun
(120) |
Jul
(80) |
Aug
(83) |
Sep
(98) |
Oct
(120) |
Nov
(80) |
Dec
(129) |
2009 |
Jan
(45) |
Feb
(80) |
Mar
(174) |
Apr
(142) |
May
(133) |
Jun
(191) |
Jul
(183) |
Aug
(138) |
Sep
(77) |
Oct
(141) |
Nov
(209) |
Dec
(131) |
2010 |
Jan
(85) |
Feb
(213) |
Mar
(245) |
Apr
(222) |
May
(168) |
Jun
(82) |
Jul
(50) |
Aug
(144) |
Sep
(92) |
Oct
(80) |
Nov
(64) |
Dec
(78) |
2011 |
Jan
(58) |
Feb
(98) |
Mar
(112) |
Apr
(98) |
May
(64) |
Jun
(150) |
Jul
(126) |
Aug
(59) |
Sep
(271) |
Oct
(154) |
Nov
(321) |
Dec
(183) |
2012 |
Jan
(146) |
Feb
(217) |
Mar
(426) |
Apr
(208) |
May
(206) |
Jun
(230) |
Jul
(158) |
Aug
(170) |
Sep
(237) |
Oct
(260) |
Nov
(178) |
Dec
|
From: Paul K. <pki...@us...> - 2003-12-12 03:22:13
|
On Dec 11, 2003, at 9:55 PM, Andy Adler wrote: >>> In octave imread returns a greyscale image even when you read color >>> images if you only have one variable to catch the return value. In >>> matlab, you actually get a 3D array of size y,x,3 if you only specify >>> one variable. >>> >>> Can this be changed? >>> >> It can now that Octave supports 3D arrays. Anyone interested >> in implementing it? > > I could take a stab at it in a few weeks. However > > 1. Is the current imread implementation OK? > ie. are we satisfied with piping stuff through the > imagemagick 'convert'? It saves us work if convert is there. Is it much slower than using readjpg or readpng directly? > > 2. What is octave-forge supposed to support? > > N-d arrays are experimental, so if we modify the code, > the octave-forge won't work for all those people that > we're recommending should use 2.1.50. At configure time we can create the function has_nD.m which returns either true or false, then test at run-time what we want to return. - Paul |
From: Andy A. <ad...@nc...> - 2003-12-12 02:56:03
|
> > In octave imread returns a greyscale image even when you read color > > images if you only have one variable to catch the return value. In > > matlab, you actually get a 3D array of size y,x,3 if you only specify > > one variable. > > > > Can this be changed? > > > It can now that Octave supports 3D arrays. Anyone interested > in implementing it? I could take a stab at it in a few weeks. However 1. Is the current imread implementation OK? ie. are we satisfied with piping stuff through the imagemagick 'convert'? 2. What is octave-forge supposed to support? N-d arrays are experimental, so if we modify the code, the octave-forge won't work for all those people that we're recommending should use 2.1.50. Andy |
From: Paul K. <pki...@ja...> - 2003-12-11 21:38:46
|
Andy, The sparse tests at line 240 is failing since sparse(eye(3)).^x does not fill in the zeros with 1 for x==0 or inf for x<0. This is bug-compatible with matlab. Shall we correct it? - Paul |
From: Paul K. <pki...@us...> - 2003-12-11 10:30:13
|
On Dec 9, 2003, at 9:56 PM, Mike Perry wrote: > In octave imread returns a greyscale image even when you read color > images if you only have one variable to catch the return value. In > matlab, you actually get a 3D array of size y,x,3 if you only specify > one variable. > > Can this be changed? > It can now that Octave supports 3D arrays. Anyone interested in implementing it? Paul Kienzle pki...@us... |
From: Rafael L. <rla...@us...> - 2003-12-10 12:47:33
|
* Paul Kienzle <pki...@us...> [2003-12-10 07:20]: > The best solution from the user's perspective is for us to keep a > consistent interface independent of the underlying QHull version > (as much as possible). That way people can for example share > scripts which use QHull without having to worry about which version > is installed. However, I don't know that QHull is changing enough for > this to be a concern, That's absolutely true. > so for now I would go with Rafael's solution. Okay, I feel we are reaching consensus here. As soon as my time budget will permit, I will implement the changes to the voronoi* and convhull* functions in octave-forge. -- Rafael |
From: Paul K. <pki...@us...> - 2003-12-10 12:20:10
|
On Dec 10, 2003, at 2:37 AM, Simon Cross wrote: > Hi, > >> Okay, but I would prefer 'standard' option handling. Problem is, I >> don't like the matlab standard: f(...,'option',val). Passing a >> structure x with fields option=value would be okay if octave had a >> syntax for structure constants. > > If I'm reading this correctly, Paul is saying we should have a standard > way of passing options across all of octave-forge. I think that that > is > a good idea. Somebody pick a standard. :) That's the idea. Except you are missing the phrase "... and implement it" :-) >> Currently, the delaunay* functions of octave-forge have definitions >> similar to this: >> >> T = delaunayn (P[, OPT]) >> >> where OPT is a string of options to be passed to the underlying qhull >> command. I was thinking about extending the above to the voronoi* and >> convhull* functions. Would it be okay? > > I think that would be excellent for voronoi, convhull and friends. If > some sort of standard option passing method is decided on, it might be > good to follow it though. > > If we decide to go with some kind of struct which holds options, it > would probably be best to just have a struct with a single member > "qhull_options" (or something) for the particular case of the qhull > based functions. These options are so tightly coupled to qhull that > specifying them individually in octave-forge would just leave the > developers with the annoying problem of tracking qhull releases. The best solution from the user's perspective is for us to keep a consistent interface independent of the underlying QHull version (as much as possible). That way people can for example share scripts which use QHull without having to worry about which version is installed. However, I don't know that QHull is changing enough for this to be a concern, so for now I would go with Rafael's solution. Paul Kienzle pki...@us... |
From: Simon C. <si...@li...> - 2003-12-10 07:38:13
|
Hi, > Okay, but I would prefer 'standard' option handling. Problem is, I > don't like the matlab standard: f(...,'option',val). Passing a > structure x with fields option=value would be okay if octave had a > syntax for structure constants. If I'm reading this correctly, Paul is saying we should have a standard way of passing options across all of octave-forge. I think that that is a good idea. Somebody pick a standard. :) >Currently, the delaunay* functions of octave-forge have definitions >similar to this: > > T = delaunayn (P[, OPT]) > >where OPT is a string of options to be passed to the underlying qhull >command. I was thinking about extending the above to the voronoi* and >convhull* functions. Would it be okay? I think that would be excellent for voronoi, convhull and friends. If some sort of standard option passing method is decided on, it might be good to follow it though. If we decide to go with some kind of struct which holds options, it would probably be best to just have a struct with a single member "qhull_options" (or something) for the particular case of the qhull based functions. These options are so tightly coupled to qhull that specifying them individually in octave-forge would just leave the developers with the annoying problem of tracking qhull releases. Schiavo Simon -- Closed mouths gather no feet. -- 4979 486 380 (llec) :leT 9383 056 120 (krow) ten.az.noulg@nomis :liam-E |
From: Mike P. <mik...@fs...> - 2003-12-10 02:57:02
|
In octave imread returns a greyscale image even when you read color images if you only have one variable to catch the return value. In matlab, you actually get a 3D array of size y,x,3 if you only specify one variable. Can this be changed? -- Mike Perry Mad Computer Scientist fscked.org evil labs |
From: David B. <dba...@cr...> - 2003-12-09 19:56:36
|
Its a series of scripts. So keep makeinfo, but don't install texi2dvi if TeX isn't installed. In any case, thinking about it again the test I have in configure.base is a bit simplistic, in that it only tests if texi2dvi exists and then if it can use the "--clean" option. What I should really do is test that it exists, test that it runs with no options and then with the "--clean" option. This would avoid your problem... Something like dnl Test for the texi2dvi program AC_CHECK_PROG(TEXI2DVI,texi2dvi,texi2dvi) if [ test -z "$TEXI2DVI" ]; then STATUS="no" STATUS_MSG="$STATUS_MSG Texi2dvi: no" else dnl ok we have texi2dvi, does it actually run cat > conftest.texi << EOF \ input texinfo @bye EOF AC_MSG_CHECKING([for texi2dvi]) ac_try="$TEXI2DVI conftest.texi > /dev/null" if AC_TRY_EVAL(ac_try) ; then AC_MSG_CHECKING([for texi2dvi]) ac_try=="$TEXI2DVI --clean conftest.texi > /dev/null" if AC_TRY_EVAL(ac_try) ; then TEXI2DVI="$TEXI2DVI --clean" AC_MSG_RESULT(yes) else AC_MSG_RESULT(yes) fi else TEXI2DVI="" AC_MSG_RESULT(no) fi rm -f conftest.* STATUS_MSG="$STATUS_MSG Texi2dvi: $TEXI2DVI" fi I can't test this at the moment, as I'm current running under Windows writing some slideware. But the above change should address your problem. D. ----- Original Message ----- From: "Per Persson" <per...@ma...> To: "David Bateman" <Dav...@mo...>; "Paul Kienzle" <pki...@us...> Cc: <oct...@li...> Sent: Tuesday, December 09, 2003 6:18 PM Subject: Re: [OctDev] Problems with comm docs and history on OS X > On Tuesday, December 9, 2003, at 01:24 PM, Paul Kienzle wrote: > > > The problem is that texinfo doesn't have teTeX as a prerequisite. > > > > - Paul > > > > On Tuesday, December 9, 2003, at 11:39 AM, David Bateman wrote: > > > According to Per Persson <per...@ma...> (on 12/07/03): > >> i) In current CVS, does main/comm check for presence of tex? > > > > Yes. The tests are for texinfo, makeinfo, etc... If they don't exist > > then > > it should build the docs in main/comm... I'm not sure how he managed to > > get this error, as the test in configure.base should have prevented it. > > In any case the error message implies that texinfo is installed without > > tex (not latex).... So the dependencies on their machine are all messed > > up in any case..... > > > > D. > > > > OK. I can change texinfo in DarwinPorts to depend on tex, but first > "I'd like an argument, please" ;-) > > One may consider texinfo useful on its own rights, without tex. > Furthermore, I don't want to force teTeX on somone who doesn't need it > but wants texinfo. > > The only change required (I think) in comm/ is to drop PSDOC if tex > isn't present. Would that be possible? > > If you all object, I'll add teTeX as a prerequisite. > > /Per > > |
From: Per P. <per...@ma...> - 2003-12-09 17:18:33
|
On Tuesday, December 9, 2003, at 01:24 PM, Paul Kienzle wrote: > The problem is that texinfo doesn't have teTeX as a prerequisite. > > - Paul > On Tuesday, December 9, 2003, at 11:39 AM, David Bateman wrote: > According to Per Persson <per...@ma...> (on 12/07/03): >> i) In current CVS, does main/comm check for presence of tex? > > Yes. The tests are for texinfo, makeinfo, etc... If they don't exist > then > it should build the docs in main/comm... I'm not sure how he managed to > get this error, as the test in configure.base should have prevented it. > In any case the error message implies that texinfo is installed without > tex (not latex).... So the dependencies on their machine are all messed > up in any case..... > > D. > OK. I can change texinfo in DarwinPorts to depend on tex, but first "I'd like an argument, please" ;-) One may consider texinfo useful on its own rights, without tex. Furthermore, I don't want to force teTeX on somone who doesn't need it but wants texinfo. The only change required (I think) in comm/ is to drop PSDOC if tex isn't present. Would that be possible? If you all object, I'll add teTeX as a prerequisite. /Per |
From: Per P. <per...@ma...> - 2003-12-09 17:08:00
|
On Tuesday, December 9, 2003, at 03:42 PM, Paul Kienzle wrote: > On Dec 8, 2003, at 3:01 PM, Per Persson wrote: > >>> Other problems I've encountered: DarwinPorts builds octave static >>> instead of >>> dynamic. Is this easy to change? >> >> If you mean shared libs, then no. The only known way to build octave >> is static, but with dynamic loading of .oct files. >> I spent some time trying to get shared libs working about a year ago, >> and made some progress, but never got it working properly. > > So how do you build oct-files? After installing octave via > DarwinPorts and > building octave-forge, it can't find the oct-files. Do I need to > change > darwinports to enable dynamic linking? > > octave-2.1.50:5> octave_config_info ('ENABLE_DYNAMIC_LINKING') > ans = false It should work even though octave_config_info complains. If it doesn't then it needs to be fixed. There was a change in octave about a little over a year ago where dynamic loading of functions became dependant on --enable-shared. This broke the OS X port wrt loading of functions[1]. Currently the only workaround is to edit config.h efter the configure phase and define HAVE_DYLD. Apparently the octave_config_info gets messed up. From my machine: octave:1> octave_config_info ('ENABLE_DYNAMIC_LINKING') ans = false octave:2> which remez remez is the dynamically-linked function from the file /usr/local/libexec/octave/2.1.50/site/oct/powerpc-apple-darwin6.6/ octave-forge/remez.oct I tried do an install from DarwinPorts but the gnu servers seem dead at the moment, I'll try again later. [1] OS X's linker differentiates between static, shared and dynamic where (IIRC) ELF linkers only differentiates static and shared, loading dynamically from shared libs. /Per |
From: Rafael L. <lab...@ps...> - 2003-12-09 16:38:59
|
* Paul Kienzle <pki...@us...> [2003-12-09 08:39]: > On Dec 9, 2003, at 8:21 AM, Rafael Laboissiere wrote: > > >Currently, the delaunay* functions of octave-forge have definitions > >similar > >to this: > > > > T = delaunayn (P[, OPT]) > > > >where OPT is a string of options to be passed to the underlying qhull > >command. I was thinking about extending the above to the voronoi* and > >convhull* functions. Would it be okay? > > Okay, but I would prefer 'standard' option handling. Problem is, I > don't like the matlab standard: f(...,'option',val). Passing a > structure > x with fields option=value would be okay if octave had a syntax for > structure constants. I do not follow you. The OPT argument of the delaunay* function is a simple string containing options to be passed to the qhull command. for instance, one may call: T = delaunayn (P, "Qt") What does this have to do with the pairs <'option', val> that you mentioned? -- Rafael |
From: Paul K. <pki...@us...> - 2003-12-09 14:42:19
|
On Dec 8, 2003, at 3:01 PM, Per Persson wrote: >> Other problems I've encountered: DarwinPorts builds octave static >> instead of >> dynamic. Is this easy to change? > > If you mean shared libs, then no. The only known way to build octave > is static, but with dynamic loading of .oct files. > I spent some time trying to get shared libs working about a year ago, > and made some progress, but never got it working properly. So how do you build oct-files? After installing octave via DarwinPorts and building octave-forge, it can't find the oct-files. Do I need to change darwinports to enable dynamic linking? octave-2.1.50:5> octave_config_info ('ENABLE_DYNAMIC_LINKING') ans = false Paul Kienzle pki...@us... |
From: Paul K. <pki...@us...> - 2003-12-09 13:39:43
|
On Dec 9, 2003, at 8:21 AM, Rafael Laboissiere wrote: > * Simon Cross <si...@li...> [2003-11-25 14:48]: > >> I think convhulln() should remain compatible with the Matlab version >> but >> it would be nice to have another function (called qhull?) which allows >> one to pass options through to the qhull library. > > How is convhulln defined in Matlab? K = convhulln(X) > >> Another route would be to have some way of setting the options which >> convhulln() passes to the qhull library. >> >> Perhaps it would be best to implement both these options. Then one >> could easily modify the behaviour of convhulln() for a particular >> program. The function convhulln() could then be implemented as a call >> to >> qhull(). > > Currently, the delaunay* functions of octave-forge have definitions > similar > to this: > > T = delaunayn (P[, OPT]) > > where OPT is a string of options to be passed to the underlying qhull > command. I was thinking about extending the above to the voronoi* and > convhull* functions. Would it be okay? Okay, but I would prefer 'standard' option handling. Problem is, I don't like the matlab standard: f(...,'option',val). Passing a structure x with fields option=value would be okay if octave had a syntax for structure constants. Paul Kienzle pki...@us... |
From: Rafael L. <rla...@us...> - 2003-12-09 13:21:48
|
* Simon Cross <si...@li...> [2003-11-25 14:48]: > I think convhulln() should remain compatible with the Matlab version but > it would be nice to have another function (called qhull?) which allows > one to pass options through to the qhull library. How is convhulln defined in Matlab? > Another route would be to have some way of setting the options which > convhulln() passes to the qhull library. > > Perhaps it would be best to implement both these options. Then one > could easily modify the behaviour of convhulln() for a particular > program. The function convhulln() could then be implemented as a call to > qhull(). Currently, the delaunay* functions of octave-forge have definitions similar to this: T = delaunayn (P[, OPT]) where OPT is a string of options to be passed to the underlying qhull command. I was thinking about extending the above to the voronoi* and convhull* functions. Would it be okay? -- Rafael |
From: David B. <Dav...@mo...> - 2003-12-09 10:39:07
|
According to Per Persson <per...@ma...> (on 12/07/03): > Hi, > I'm forwarding parts of a discussion from help-octave since I think > someone might be able to shed some lights on two issues: > i) In current CVS, does main/comm check for presence of tex? Yes. The tests are for texinfo, makeinfo, etc... If they don't exist then it should build the docs in main/comm... I'm not sure how he managed to get this error, as the test in configure.base should have prevented it. In any case the error message implies that texinfo is installed without tex (not latex).... So the dependencies on their machine are all messed up in any case..... D. -- David Bateman Dav...@mo... Motorola CRM +33 1 69 35 48 04 (Ph) Parc Les Algorithmes, Commune de St Aubin +33 1 69 35 77 01 (Fax) 91193 Gif-Sur-Yvette FRANCE The information contained in this communication has been classified as: [x] General Business Information [ ] Motorola Internal Use Only [ ] Motorola Confidential Proprietary |
From: Per P. <per...@ma...> - 2003-12-08 20:01:11
|
I'll split my reply in two. On Monday, December 8, 2003, at 11:08 AM, Paul Kienzle wrote: > > On Dec 7, 2003, at 5:31 PM, Per Persson wrote: > >> Hi, >> I'm forwarding parts of a discussion from help-octave since I think >> someone might be able to shed some lights on two issues: >> i) In current CVS, does main/comm check for presence of tex? > > main/comm doesn't use tex, it uses texi2dvi. My guess is that the > DarwinPorts > texi2dvi is not installing the appropriate prerequisites. This problem is unrelated to DarwinPorts, the binary was obtained elsewhere. Nevertheless, the problem remains that the texi2dvi (that comes with Apples dev tools) gives this error: /usr/bin/texi2dvi: tex: command not found /usr/bin/texi2dvi: tex exited with bad status, quitting. /usr/bin/texi2dvi: see comms.log for errors. make[2]: *** [comms.dvi] Error 1 Now, it seems that the installed texi2dvi is pretty old so it may be a version problem: [per ~] % texi2dvi -v texi2dvi (GNU Texinfo 4.2) 1.1.1.1 > Should we be responsible > for that in octave-forge? I don't think so, given that we are already > checking that > the command texi2dvi exists. No, certainly not. But if it is a version problem, then that must be checked for IMHO. > >> ii) Could the problem with command history be related to octave-forge >> in any way? > > Not that I know of. That was my conclusion as well. /Per |
From: Per P. <per...@ma...> - 2003-12-08 20:01:11
|
> Other problems I've encountered: DarwinPorts builds octave static > instead of > dynamic. Is this easy to change? If you mean shared libs, then no. The only known way to build octave is static, but with dynamic loading of .oct files. I spent some time trying to get shared libs working about a year ago, and made some progress, but never got it working properly. > > SuperLU #include's malloc.h, which doesn't exist. I'm commenting it > out since > malloc is supposed to be in stdlib. If it breaks for any system > without it, we will > have to check in configure for #include <malloc.h>. malloc is in stdlib, malloc.h is in sys/malloc.h > > isinf() isn't defined for whatever reason. I fixed it to use > lo_ieee_isinf. This seems like a previous problem with isnan... (dig, dig...) Yes. A buggy header file (cmath) causes this problem [1]. Anyhow, _isinf and _isnan exists and extern "C" int isnan (double); extern "C" int isinf (double); may be used as a workaround. They both live in libSystem: [per ~] % nm -g /usr/lib/libSystem.B.dylib | grep isinf U _isinf /usr/lib/libSystem.B.dylib(isinf.So): 900171a0 T _isinf 900a03c8 T ___isinfd 900a03ac T ___isinff U _isinf I was pretty sure this had been fixed by now... What version of OSX and gcc are we talking about? > > gnuplot doesn't compile with either aquaterm or X11 by default on 10.3 > without the X11sdk.pkg. Suggestions? What version of gnuplot? Gnuplot 3.8j should be OK. (At least on 10.2.8, can't speak for 10.3 yet.) It used to build without X11, but I've been away from much of this the past year for several reasons and I'm not up-to-date on anything... Why not install X11sdk.pkg? > configure was doing an incorrect test for NArray support. Now I check > for > dim_vector, which I imagine was only introduced with N-Arrays. ??? /Per [1] This is an excerpt from a mail from jwe (there were some subsequent problems, if you want more detail I can dig it up for you.) | I've sucessfully compiled octave on OS X 10.2 with the following 4 | changes: | | 1) file "lo-ieee.h" added | extern "C" int isnan (double); | extern "C" int isinf (double); | due to a broken <cmath>, the following testcase should detect it: | AC_TRY_COMPILE([#include <cmath>], [isnan(1.0);], | [AC_MSG_RESULT("Pass")], [AC_MSG_RESULT("Fail")]) | Just to check, I tried | AC_TRY_COMPILE([#include <math.h>], [isnan(1.0);], | [AC_MSG_RESULT("Pass")], [AC_MSG_RESULT("Fail")]) | which does pass as expected. Since this apparently works if it is in a C source file, I've made some changes that I think will fix the problem. Now the isnan calls that were in lo-ieee.cc are in a C source file instead. If there are still problems, then send me a new report. |
From: Paul K. <pki...@us...> - 2003-12-08 10:08:48
|
On Dec 7, 2003, at 5:31 PM, Per Persson wrote: > Hi, > I'm forwarding parts of a discussion from help-octave since I think > someone might be able to shed some lights on two issues: > i) In current CVS, does main/comm check for presence of tex? main/comm doesn't use tex, it uses texi2dvi. My guess is that the DarwinPorts texi2dvi is not installing the appropriate prerequisites. Should we be responsible for that in octave-forge? I don't think so, given that we are already checking that the command texi2dvi exists. > ii) Could the problem with command history be related to octave-forge > in any way? Not that I know of. Other problems I've encountered: DarwinPorts builds octave static instead of dynamic. Is this easy to change? SuperLU #include's malloc.h, which doesn't exist. I'm commenting it out since malloc is supposed to be in stdlib. If it breaks for any system without it, we will have to check in configure for #include <malloc.h>. isinf() isn't defined for whatever reason. I fixed it to use lo_ieee_isinf. gnuplot doesn't compile with either aquaterm or X11 by default on 10.3 without the X11sdk.pkg. Suggestions? configure was doing an incorrect test for NArray support. Now I check for dim_vector, which I imagine was only introduced with N-Arrays. Paul Kienzle pki...@us... |
From: Per P. <per...@ma...> - 2003-12-07 22:31:58
|
Hi, I'm forwarding parts of a discussion from help-octave since I think someone might be able to shed some lights on two issues: i) In current CVS, does main/comm check for presence of tex? ii) Could the problem with command history be related to octave-forge in any way? /Per > >>> >>>> The building of the octave-forge routines was not smooth, but >>>> the "make install" seemed to go OK. >>> >>> It would help if you elaborated on "not smooth". >> >> The ./configure gave a long list of NOINSTALLS, but I went ahead >> anyway. >> The "make" file exited complaining >> >> /usr/bin/texi2dvi: tex: command not found >> /usr/bin/texi2dvi: tex exited with bad status, quitting. >> /usr/bin/texi2dvi: see comms.log for errors. >> make[2]: *** [comms.dvi] Error 1 >> rm comms.texi >> make[1]: *** [comm/] Error 2 >> make: *** [main/] Error 2 >> >> I don't have tex (as in LaTex?) on my machine and I thought it was >> related >> only to help file construction, so I went ahead with "sudo make >> install" >> anyway. I could send a copy of the .log file if it would help. > > OK, you've gotten a partial install then, I suppose. This is the > source of your problems. > > Tex is a build-time dependency and doesn't come with the octave binary > install. So, if you want to install octave-forge-2003.06.02 you need > (la)tex. > I seem to recall some discussion about this in the past. If latex is a > dependency, it should be checked for (makeinfo, texi2dvi and texi2html > are present by default but not dvips and dvipdf). > > Your quick'n dirty fix is to remove $(DOCS) from target 'all' in line > 38 of main/comm/Makefile and build/install. > > >>> >>>> >>>> About the time of the octave-forge installation, my history of >>>> commands in >>>> .octave_hist stopped being updated. >>> >>> No idea. What is the value of variables 'history_file' and >>> 'saving_history'? >>> > > [snip] > > Sorry, no idea. I don't think any part of octave-forge messes with the > history stuff. > |
From: Raiyan K. <rai...@My...> - 2003-12-04 23:56:01
|
Dear, When I saw octave I thought that I've found my Matlab replace. = As there are force functions which are almost just alike Matlab functions. I am a Mac user and running Mac OS X 10.2 and used fink to install octave and imagemagick and all other softwares to install these two software as far as I know that I need imagemagick's convert app to run imread function but its not working with my images created by Photoshop and MSPaint of Win 95. I tried to use imageload command but it also failed. I'm = attaching the tarminal output please help me. As I'm trying to introduce octave to all other teachers and students of my university Bangladesh University of Engineering and Technology. Please help me as soon as possible. I need to use both imageload = and imread. In case of imageload function it gives some problem with the hdf5. But individually hdf works with those images so do convert. I've tested both apps. Please help me. Raiyan Not Installed Packages: main/comm/ main/sparse/ extra/linear-algebra/ Tarminal Output: [Super-Mac:~] dev% octage octage: Command not found. [Super-Mac:~] dev% octave GNU Octave, version 2.1.46 (powerpc-apple-darwin6.6). Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003 John W. Eaton. This is free software; see the source code for copying conditions. There is ABSOLUTELY NO WARRANTY; not even for MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. For details, type `warranty'. Please contribute if you find this software useful. For more information, visit http://www.octave.org/help-wanted.html Report bugs to <bug...@be...>. octave:1> ls Applications LearningCocoa Movies Projects Desktop Library Music Public Documents Matlab Works Folder Pictures Sites octave:2> cd Desktop/ octave:3> ls Color Code.html Raiyan's Pictures.pdf Complex Number UniBangla V1.0 Mac Dev Books as31 Downloads com Figure 0.pdf complexnum Level 3 Term 2 octave.pdf Not installed due to error.txt xx Objective -C codes while learning Cocoa =E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C2=A8=E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2= =AC=C3=A6=E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C3=87=E2=88=9A=E2=80=A0=C2=AC= =C2=B6=C2=AC=E2=89=A4=E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C3=A6 =E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C3=AF=E2=88=9A=E2=80=A0=C2=AC=C3=9F=C2= =AC=C3=84=E2=88=9A=E2=80=A0=C2=AC=C3=9F=C2=AC=C3=A1=E2=88=9A=E2=80=A0=C2=AC= =C2=B6=C2=AC=C2=A8=E2=88=9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C3=A6=E2=88 =9A=E2=80=A0=C2=AC=C2=B6=C2=AC=C2=B0=E2=88=9A=E2=80=A0=C2=AC=C3=9F Project Image processing octave:4> cd "Project Image processing/" octave:5> ls DFS DFS.ZIP DIP.ZIP Edge Separator DFS-MUR DIP Dev-Beta octave:6> cd Dev-Beta/ octave:7> ls DFSfor.m Rai.tiff rai.gif rai.jpg Rai.sketch mainang.m rai.hdf rai.tif octave:8> x =3D imread("Rai.tiff") error: reshape: sizes must match error: evaluating if command near line 66, column 5 error: evaluating if command near line 64, column 3 error: called from `reshape' in file `/sw/share/octave/2.1.46/m/general/reshape.m' error: evaluating postfix operator `'' near line 238, column 39 error: evaluating assignment expression near line 238, column 14 error: evaluating if command near line 237, column 4 error: called from `imread' in file `/sw/share/octave/2.1.46/site/m/octave-forge/image/imread.m' error: evaluating assignment expression near line 8, column 3 octave:8> |
From: Francisco T. A. S. <ft...@ge...> - 2003-12-04 23:40:53
|
hi all, Please apply this patch for imadjust to work. Thanks -- Francisco Index: main/image/imadjust.m =================================================================== RCS file: /cvsroot/octave/octave-forge/main/image/imadjust.m,v retrieving revision 1.1.1.1 diff -u -r1.1.1.1 imadjust.m --- main/image/imadjust.m 10 Oct 2001 19:54:49 -0000 1.1.1.1 +++ main/image/imadjust.m 4 Dec 2003 23:31:01 -0000 @@ -89,7 +89,7 @@ endif ret = (I < il) .* ob; - ret = ret + (I >= il && I < ih) .* (ob + (ot - ob) .* ((I - il) / (ih - il)) .^ gamma); + ret = ret + (I >= il & I < ih) .* (ob + (ot - ob) .* ((I - il) / (ih - il)) .^ gamma); ret = ret + (I >= ih) .* ot; if (in(1) > in(2)) |
From: Laurent M. <lau...@mo...> - 2003-12-03 13:42:55
|
Helo, I found a bug in datenum: the struture it returns correspond to the day before. octave:1> datevec(datenum (2003, 11, 28)) ans = 2003 11 27 0 0 0 (OCTAVE_FORGE_VERSION=20030602 OCTAVE_VERSION=2.1.50) I send a patch but I'm not confident with it :-~ Laurent -- Dr. Laurent Mazet: Research Engineer /V\ Centre de Recherche de MOTOROLA Tel: +33 (0)1 69 35 48 30 =-=-=-=-=-=-=-=-=-=-= Email: ma...@cr... |
From: Andy A. <ad...@nc...> - 2003-11-29 20:04:02
|
> > I had a problem with the tests run using "make check". The problem involved > > testing the main/sparse package. I've included a fix to the test. With > > this fixed test, everything tested fine. > > > > [ SNIP ] Rather than quoting the entire file, could you include a diff, or indicate what changes you made? That would make it easier to see what they were, and perhaps include them. Andy |
From: David R. (C. K. IV <ch...@th...> - 2003-11-28 14:37:30
|
I've been having problems with the SF mail server accepting my emails. Sorry for all the indentation. > > I had a problem with the tests run using "make check". The problem involved > > testing the main/sparse package. I've included a fix to the test. With > > this fixed test, everything tested fine. > > > > I am using octave-2.1.50 and octave-forge-2003.06.02 compiled with GCC 3.3.2. > > > > Additionally, this is my first time to try out octave-forge, and I encounted > > many problems getting it to install properly when octave is not installed > > in the default location. This part of the build procedure could use > > better testing and validation. > > > > I am not on this list so please contact me directly with any questions. > > > > Chip > > > > > > %!/usr/local/bin/octave -qf > > > % Test script for the build of the octave sparse functions > > % > > % Copyright (C) 1998,1999 Andy Adler > > % > > % This program is free software; you can redistribute it and/or > > % modify it under the terms of the GNU General Public License as > > % published by the Free Software Foundation; either version 2 of > > % the License, or (at your option) any later version. > > % This program is distributed in the hope that it will be useful, > > % but WITHOUT ANY WARRANTY; without even the implied warranty of > > % MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > > % GNU General Public License for more details. > > % You should have received a copy of the GNU General Public > > % License along with this program; if not, write to the Free Software > > % Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. > > % > > % $Id: sp_test.m,v 1.12 2003/05/21 18:20:07 aadler Exp $ > > > > OCTAVE= exist('OCTAVE_VERSION'); > > do_fortran_indexing= 1; > > prefer_zero_one_indexing= 0; > > page_screen_output=1; > > SZ=10; > > NTRIES=100; > > > > errortol= 1e-10; > > res=zeros(1,300); % should be enough space > > > > for tries = 1:NTRIES; > > > > % print some relevant info from ps > > if 0 > > printf('t=%03d: %s', tries, system(['ps -uh ', num2str(getpid)],1 ) ); > > end > > > > % choose some random sizes for the test matrices > > sz=floor(abs(randn(1,5))*SZ + 1); > > sz1= sz(1); sz2=sz(2); sz3=sz(3); sz4=sz(4); sz5=sz(5); > > sz12= sz1*sz2; > > sz23= sz2*sz3; > > > > % choose random test matrices > > arf=zeros( sz1,sz2 ); > > nz= ceil(sz12*rand(1)/2+0); > > arf(ceil(rand(nz,1)*sz12))=randn(nz,1); > > > > brf=zeros( sz1,sz2 ); > > nz= ceil(sz12*rand(1)/2+0); > > brf(ceil(rand(nz,1)*sz12))=randn(nz,1); > > > > crf=zeros( sz2,sz3 ); > > nz= ceil(sz23*rand(1)/2+0); > > crf(ceil(rand(nz,1)*sz23))=randn(nz,1); > > > > while (1) > > % Choose eye to try to force a non singular a > > % I wish we could turn off warnings here! > > drf=eye(sz4) * 1e-4; > > nz= ceil(sz4^2 *rand(1)/2); > > drf(ceil(rand(nz,1)*sz4^2))=randn(nz,1); > > > > if abs(det(drf)) >1e-10 ; break ; end > > end > > erf= rand(sz4,ceil(rand(1)*4)); > > > > % choose a number != 0 > > while (1) > > frn= randn; > > if (abs(frn) >=1e-2) break; end > > end > > > > % complex sparse > > acf=zeros( sz1,sz2 ); > > nz= ceil(sz12*rand(1)/2+1); > > acf(ceil(rand(nz,1)*sz12))=randn(nz,1) + 1i*randn(nz,1); > > > > bcf=zeros( sz1,sz2 ); > > nz= ceil(sz12*rand(1)/2+1); > > bcf(ceil(rand(nz,1)*sz12))=randn(nz,1) + 1i*randn(nz,1); > > > > ccf=zeros( sz2,sz3 ); > > nz= ceil(sz23*rand(1)/2+1); > > ccf(ceil(rand(nz,1)*sz23))=randn(nz,1) + 1i*randn(nz,1); > > > > while (1) > > % Choose eye to try to force a non singular a > > % I wish we could turn off warnings here! > > dcf=eye(sz4) * 1e-4; > > nz= ceil(sz4^2 *rand(1)/2); > > dcf(ceil(rand(nz,1)*sz4^2))=randn(nz,1) + 1i*randn(nz,1); > > > > if abs(det(dcf)) >1e-10 ; break ; end > > end > > ecf= randn(sz4,sz5) + 1i*randn(sz4,sz5); > > > > fcn= frn+ 1i*randn; > > > > % generate L and U masks > > [xx,yy]=meshgrid( 1:sz4, -( 1:sz4) ); > > LL= xx+yy<=0; > > UU= xx+yy>=0; > > > > % select masks > > selx= ceil( sz2*rand(1,2*ceil( rand(1)*sz2 )) ); > > sely= ceil( sz1*rand(1,2*ceil( rand(1)*sz1 )) ); > > sel1= ceil(sz12*rand(1,2*ceil( rand(1)*sz12 )))'; > > > > % save save_fil arf brf crf erf acf bcf ccf dcf ecf selx sely sel1 fcn > > % load -force save_fil > > > > ars= sparse(arf); > > brs= sparse(brf); > > crs= sparse(crf); > > drs= sparse(drf); > > ers= sparse(erf); > > > > > > acs= sparse(acf); > > bcs= sparse(bcf); > > ccs= sparse(ccf); > > dcs= sparse(dcf); > > ecs= sparse(ecf); > > > > i=1 ; % i= 1 > > > > res(i)= res(i) +( is_sparse(ars) == 1 ); > > i=i+1; % i= 2 > > res(i)= res(i) +( is_real_sparse(ars) == 1 ); > > i=i+1; % i= 3 > > res(i)= res(i) +( is_complex_sparse(ars) == 0 ); > > i=i+1; % i= 4 > > > > res(i)= res(i) +( is_sparse(acs) == 1 ); > > i=i+1; % i= 5 > > res(i)= res(i) +( is_real_sparse(acs) == 0 ); > > i=i+1; % i= 6 > > res(i)= res(i) +( is_complex_sparse(acs) == 1 ); > > i=i+1; % i= 7 > > > > res(i)= res(i) +( is_sparse(acf) == 0 ); > > i=i+1; % i= 8 > > res(i)= res(i) +( is_real_sparse(acf) == 0 ); > > i=i+1; % i= 9 > > res(i)= res(i) +( is_complex_sparse(acf) == 0 ); > > i=i+1; % i=10 > > > > if ~isempty(ars) > > res(i)= res(i) + all( abs(spsum(ars) - sum(arf)) < errortol ); > > i=i+1; % i=11 > > res(i)= res(i) + all( abs(spsum(ars,2) - sum(arf,2)) < errortol ); > > i=i+1; % i=12 > > res(i)= res(i) + all( abs(spsum(acs,1) - sum(acf,1)) < errortol ); > > i=i+1; % i=13 > > else > > res(i)= res(i)+1; > > i=i+1; > > res(i)= res(i)+1; > > i=i+1; > > res(i)= res(i)+1; > > i=i+1; > > endif > > % > > % test sparse assembly and disassembly > > % > > res(i)= res(i) +all(all( ars == ars )); > > i=i+1; % i=14 > > res(i)= res(i) +all(all( ars == arf )); > > i=i+1; % i=15 > > res(i)= res(i) +all(all( arf == ars )); > > i=i+1; % i=16 > > res(i)= res(i) +all(all( acs == acs )); > > i=i+1; % i=17 > > res(i)= res(i) +all(all( acs == acf )); > > i=i+1; % i=18 > > res(i)= res(i) +all(all( acf == acs )); > > i=i+1; % i=19 > > > > [ii,jj,vv,nr,nc] = spfind( ars ); > > res(i)= res(i) +all(all( arf == full( sparse(ii,jj,vv,nr,nc) ) )); > > i=i+1; % i=20 > > [ii,jj,vv,nr,nc] = spfind( acs ); > > res(i)= res(i) +all(all( acf == full( sparse(ii,jj,vv,nr,nc) ) )); > > i=i+1; % i=21 > > res(i)= res(i) +( nnz(ars) == sum(sum( arf!=0 )) ); > > i=i+1; % i=22 > > res(i)= res(i) + ( nnz(ars) == nnz(arf)); > > i=i+1; % i=23 > > res(i)= res(i) +( nnz(acs) == sum(sum( acf!=0 )) ); > > i=i+1; % i=24 > > res(i)= res(i) + ( nnz(acs) == nnz(acf)); > > i=i+1; % i=25 > > > > % > > % spabs > > % > > res(i)= res(i) + all(all( full(spabs(ars)) == abs(arf) )); > > i=i+1; % i=26 > > res(i)= res(i) + all(all( full(spabs(acs)) == abs(acf) )); > > i=i+1; % i=27 > > % > > % test sparse op scalar operations > > % > > res(i)= res(i) +all(all( (ars==frn) == (arf==frn) )); > > i=i+1; % i=28 > > res(i)= res(i) +all(all( (frn==ars) == (frn==arf) )); > > i=i+1; % i=29 > > res(i)= res(i) +all(all( (frn+ars) == (frn+arf) )); > > i=i+1; % i=30 > > res(i)= res(i) +all(all( (ars+frn) == (arf+frn) )); > > i=i+1; % i=31 > > res(i)= res(i) +all(all( (frn-ars) == (frn-arf) )); > > i=i+1; % i=32 > > res(i)= res(i) +all(all( (ars-frn) == (arf-frn) )); > > i=i+1; % i=33 > > res(i)= res(i) +all(all( (frn*ars) == (frn*arf) )); > > i=i+1; % i=34 > > res(i)= res(i) +all(all( (ars*frn) == (arf*frn) )); > > i=i+1; % i=35 > > res(i)= res(i) +all(all( (frn.*ars) == (frn.*arf) )); > > i=i+1; % i=36 > > res(i)= res(i) +all(all( (ars.*frn) == (arf.*frn) )); > > i=i+1; % i=37 > > res(i)= res(i) +all(all( abs( (frn\ars) - (frn\arf) )<errortol )); > > i=i+1; % i=38 > > res(i)= res(i) +all(all( abs( (ars/frn) - (arf/frn) )<errortol )); > > i=i+1; % i=39 > > [jnk1,jnk2, sp_values] = spfind( ars.^frn ); > > full_vals= arf.^frn; > > full_vals= full_vals(~isnan(full_vals) & ~isinf(full_vals) & (full_vals~=0)); > > sp_values= sp_values(~isnan(sp_values) & ~isinf(sp_values) & (sp_values~=0)); > > res(i)= res(i) +all(all( (sp_values(:) - full_vals(:)) <errortol )); > > i=i+1; % i=40 > > % > > % test sparse op complex scalar operations > > % > > res(i)= res(i) +all(all( (ars==fcn) == (arf==fcn) )); > > i=i+1; % i=41 > > res(i)= res(i) +all(all( (fcn==ars) == (fcn==arf) )); > > i=i+1; % i=42 > > res(i)= res(i) +all(all( (fcn+ars) == (fcn+arf) )); > > i=i+1; % i=43 > > res(i)= res(i) +all(all( (ars+fcn) == (arf+fcn) )); > > i=i+1; % i=44 > > res(i)= res(i) +all(all( (fcn-ars) == (fcn-arf) )); > > i=i+1; % i=45 > > res(i)= res(i) +all(all( (ars-fcn) == (arf-fcn) )); > > i=i+1; % i=46 > > res(i)= res(i) + issparse( (fcn*ars) ); > > i=i+1; % i=47 > > res(i)= res(i) +all(all( (fcn*ars) == (fcn*arf) )); > > i=i+1; % i=48 > > res(i)= res(i) + issparse( (ars*fcn) ); > > i=i+1; % i=49 > > res(i)= res(i) +all(all( (ars*fcn) == (arf*fcn) )); > > i=i+1; % i=50 > > res(i)= res(i) + issparse( (fcn.*ars) ); > > i=i+1; % i=51 > > res(i)= res(i) +all(all( (fcn.*ars) == (fcn.*arf) )); > > i=i+1; % i=52 > > res(i)= res(i) + issparse( (ars.*fcn) ); > > i=i+1; % i=53 > > res(i)= res(i) +all(all( (ars.*fcn) == (arf.*fcn) )); > > i=i+1; % i=54 > > res(i)= res(i) + issparse( (fcn\ars) ); > > i=i+1; % i=55 > > res(i)= res(i) +all(all( abs( (fcn\ars) - (fcn\arf) )<errortol )); > > i=i+1; % i=56 > > res(i)= res(i) + issparse( (ars/fcn) ); > > i=i+1; % i=57 > > res(i)= res(i) +all(all( abs( (ars/fcn) - (arf/fcn) )<errortol )); > > i=i+1; % i=58 > > [jnk1,jnk2, sp_values] = spfind( ars.^fcn ); > > full_vals= arf.^fcn; > > full_vals= full_vals(~isnan(full_vals) & ~isinf(full_vals) & (full_vals~=0)); > > res(i)= res(i) +all(all( (sp_values(:) - full_vals(:)) <errortol )); > > i=i+1; % i=59 > > % > > % test complex sparse op scalar operations > > % > > res(i)= res(i) + issparse( (acs*frn) ); > > i=i+1; % i=60 > > res(i)= res(i) +all(all( (acs==frn) == (acf==frn) )); > > i=i+1; % i=61 > > res(i)= res(i) + issparse( (frn*acs) ); > > i=i+1; % i=62 > > res(i)= res(i) +all(all( (frn==acs) == (frn==acf) )); > > i=i+1; % i=63 > > res(i)= res(i) +all(all( (frn+acs) == (frn+acf) )); > > i=i+1; % i=64 > > res(i)= res(i) +all(all( (acs+frn) == (acf+frn) )); > > i=i+1; % i=65 > > res(i)= res(i) +all(all( (frn-acs) == (frn-acf) )); > > i=i+1; % i=66 > > res(i)= res(i) +all(all( (acs-frn) == (acf-frn) )); > > i=i+1; % i=67 > > res(i)= res(i) + issparse( (frn*acs) ); > > i=i+1; % i=68 > > res(i)= res(i) +all(all( (frn*acs) == (frn*acf) )); > > i=i+1; % i=69 > > res(i)= res(i) +all(all( (acs*frn) == (acf*frn) )); > > i=i+1; % i=70 > > res(i)= res(i) + issparse( (frn.*acs) ); > > i=i+1; % i=71 > > res(i)= res(i) +all(all( (frn.*acs) == (frn.*acf) )); > > i=i+1; % i=72 > > res(i)= res(i) +all(all( (acs.*frn) == (acf.*frn) )); > > i=i+1; % i=73 > > res(i)= res(i) + issparse( (frn\acs) ); > > i=i+1; % i=74 > > res(i)= res(i) +all(all( abs( (frn\acs) - (frn\acf) )<errortol )); > > i=i+1; % i=75 > > res(i)= res(i) +all(all( abs( (acs/frn) - (acf/frn) )<errortol )); > > i=i+1; % i=76 > > [jnk1,jnk2, sp_values] = spfind( acs.^frn ); > > full_vals= acf.^frn; > > full_vals= full_vals(~isnan(full_vals) & ~isinf(full_vals) & (full_vals~=0)); > > res(i)= res(i) +all(all( sp_values(:) == full_vals(:) )); > > i=i+1; % i=77 > > % > > % test complex sparse op complex scalar operations > > % > > res(i)= res(i) +all(all( (acs==fcn) == (acf==fcn) )); > > i=i+1; % i=78 > > res(i)= res(i) +all(all( (fcn==acs) == (fcn==acf) )); > > i=i+1; % i=79 > > res(i)= res(i) +all(all( (fcn+acs) == (fcn+acf) )); > > i=i+1; % i=80 > > res(i)= res(i) +all(all( (acs+fcn) == (acf+fcn) )); > > i=i+1; % i=81 > > res(i)= res(i) +all(all( (fcn-acs) == (fcn-acf) )); > > i=i+1; % i=82 > > res(i)= res(i) +all(all( (acs-fcn) == (acf-fcn) )); > > i=i+1; % i=83 > > res(i)= res(i) +all(all( (fcn*acs) == (fcn*acf) )); > > i=i+1; % i=84 > > res(i)= res(i) +all(all( (acs*fcn) == (acf*fcn) )); > > i=i+1; % i=85 > > res(i)= res(i) +all(all( (fcn.*acs) == (fcn.*acf) )); > > i=i+1; % i=86 > > res(i)= res(i) +all(all( (acs.*fcn) == (acf.*fcn) )); > > i=i+1; % i=87 > > res(i)= res(i) +all(all( abs( (fcn\acs) - (fcn\acf) )<errortol )); > > i=i+1; % i=88 > > res(i)= res(i) +all(all( abs( (acs/fcn) - (acf/fcn) )<errortol )); > > i=i+1; % i=89 > > [jnk1,jnk2, sp_values] = spfind( acs.^fcn ); > > full_vals= acf.^fcn; > > full_vals= full_vals(~isnan(full_vals) & ~isinf(full_vals) & (full_vals~=0)); > > res(i)= res(i) +all(all( sp_values(:) == full_vals(:) )); > > i=i+1; % i=90 > > > > % > > % sparse uary ops > > % > > res(i)= res(i) +all(all( ars.' == arf.' )); > > i=i+1; % i=91 > > res(i)= res(i) +all(all( ars' == arf' )); > > i=i+1; % i=92 > > res(i)= res(i) +all(all( -ars == -arf )); > > i=i+1; % i=93 > > res(i)= res(i) +all(all( ~ars == ~arf )); > > i=i+1; % i=94 > > % > > % complex sparse uary ops > > % > > res(i)= res(i) +all(all( acs.' == acf.' )); > > i=i+1; % i=95 > > res(i)= res(i) +all(all( acs' == acf' )); > > i=i+1; % i=96 > > res(i)= res(i) +all(all( -acs == -acf )); > > i=i+1; % i=97 > > res(i)= res(i) +all(all( ~acs == ~acf )); > > i=i+1; % i=98 > > > > % > > % sparse op sparse and sparse op matrix > > % > > > > df_ef= drf\erf; > > mag = errortol*mean( df_ef(:))*sqrt(prod(size(df_ef))); > > # FIXME: this breaks if drs is 1x1 > > rdif= abs(drs\erf - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=99 > > > > rdif= abs(drf\ers - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=100 > > > > rdif= abs(drs\ers - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=101 > > > > res(i)= res(i) +all(all( ars+brs == arf+brf )); > > i=i+1; % i=102 > > res(i)= res(i) +all(all( arf+brs == arf+brf )); > > i=i+1; % i=103 > > res(i)= res(i) +all(all( ars+brf == arf+brf )); > > i=i+1; % i=104 > > res(i)= res(i) +all(all( ars-brs == arf-brf )); > > i=i+1; % i=105 > > res(i)= res(i) +all(all( arf-brs == arf-brf )); > > i=i+1; % i=106 > > res(i)= res(i) +all(all( ars-brf == arf-brf )); > > i=i+1; % i=107 > > res(i)= res(i) +all(all( (ars>brs) == (arf>brf) )); > > i=i+1; % i=108 > > res(i)= res(i) +all(all( (ars<brs) == (arf<brf) )); > > i=i+1; % i=109 > > res(i)= res(i) +all(all( (ars!=brs) == (arf!=brf) )); > > i=i+1; % i=110 > > res(i)= res(i) +all(all( (ars>=brs) == (arf>=brf) )); > > i=i+1; % i=111 > > res(i)= res(i) +all(all( (ars<=brs) == (arf<=brf) )); > > i=i+1; % i=112 > > res(i)= res(i) +all(all( (ars==brs) == (arf==brf) )); > > i=i+1; % i=113 > > res(i)= res(i) +all(all( ars.*brs == arf.*brf )); > > i=i+1; % i=114 > > res(i)= res(i) +all(all( arf.*brs == arf.*brf )); > > i=i+1; % i=115 > > res(i)= res(i) +all(all( ars.*brf == arf.*brf )); > > i=i+1; % i=116 > > res(i)= res(i) +all(all( ars*crs == arf*crf )); > > i=i+1; % i=117 > > res(i)= res(i) +all(all( arf*crs == arf*crf )); > > i=i+1; % i=118 > > res(i)= res(i) +all(all( ars*crf == arf*crf )); > > i=i+1; % i=119 > > > > % > > % sparse op complex sparse and sparse op complex matrix > > % > > > > df_ef= drf\ecf; > > mag = errortol*mean( df_ef(:))*sqrt(prod(size(df_ef))); > > # FIXME: this breaks if drs is 1x1 > > rdif= abs(drs\ecf - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=120 > > > > rdif= abs(drf\ecs - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=121 > > > > # TODO: not avail yet > > # rdif= abs(drs\ecs - df_ef) < abs(mag*df_ef); > > # res(i)= res(i) +all(all( rdif )); > > # i=i+1; % i=122 > > > > res(i)= res(i) +all(all( ars+bcs == arf+bcf )); > > i=i+1; % i=123 > > res(i)= res(i) +all(all( arf+bcs == arf+bcf )); > > i=i+1; % i=124 > > res(i)= res(i) +all(all( ars+bcf == arf+bcf )); > > i=i+1; % i=125 > > res(i)= res(i) +all(all( ars-bcs == arf-bcf )); > > i=i+1; % i=126 > > res(i)= res(i) +all(all( arf-bcs == arf-bcf )); > > i=i+1; % i=127 > > res(i)= res(i) +all(all( ars-bcf == arf-bcf )); > > i=i+1; % i=128 > > res(i)= res(i) +all(all( (ars>bcs) == (arf>bcf) )); > > i=i+1; % i=129 > > res(i)= res(i) +all(all( (ars<bcs) == (arf<bcf) )); > > i=i+1; % i=130 > > res(i)= res(i) +all(all( (ars!=bcs) == (arf!=bcf) )); > > i=i+1; % i=131 > > res(i)= res(i) +all(all( (ars>=bcs) == (arf>=bcf) )); > > i=i+1; % i=132 > > res(i)= res(i) +all(all( (ars<=bcs) == (arf<=bcf) )); > > i=i+1; % i=133 > > res(i)= res(i) +all(all( (ars==bcs) == (arf==bcf) )); > > i=i+1; % i=134 > > res(i)= res(i) +all(all( ars.*bcs == arf.*bcf )); > > i=i+1; % i=135 > > res(i)= res(i) +all(all( arf.*bcs == arf.*bcf )); > > i=i+1; % i=136 > > res(i)= res(i) +all(all( ars.*bcf == arf.*bcf )); > > i=i+1; % i=137 > > res(i)= res(i) +all(all( ars*ccs == arf*ccf )); > > i=i+1; % i=138 > > res(i)= res(i) +all(all( arf*ccs == arf*ccf )); > > i=i+1; % i=139 > > res(i)= res(i) +all(all( ars*ccf == arf*ccf )); > > i=i+1; % i=140 > > > > % > > % complex sparse op sparse and complex sparse op matrix > > % > > > > df_ef= dcf\erf; > > mag = errortol*mean( df_ef(:))*sqrt(prod(size(df_ef))); > > # FIXME: this breaks if drs is 1x1 > > rdif= abs(dcs\erf - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=141 > > > > rdif= abs(dcf\ers - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=142 > > > > df_ef= dcf\erf; > > rdif= abs(dcs\ers - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=143 > > > > df_ef= drf\ecf; > > rdif= abs(drs\ecs - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=144 > > > > res(i)= res(i) +all(all( acs+brs == acf+brf )); > > i=i+1; % i=145 > > res(i)= res(i) +all(all( acf+brs == acf+brf )); > > i=i+1; % i=146 > > res(i)= res(i) +all(all( acs+brf == acf+brf )); > > i=i+1; % i=147 > > res(i)= res(i) +all(all( acs-brs == acf-brf )); > > i=i+1; % i=148 > > res(i)= res(i) +all(all( acf-brs == acf-brf )); > > i=i+1; % i=149 > > res(i)= res(i) +all(all( acs-brf == acf-brf )); > > i=i+1; % i=150 > > res(i)= res(i) +all(all( (acs>brs) == (acf>brf) )); > > i=i+1; % i=151 > > res(i)= res(i) +all(all( (acs<brs) == (acf<brf) )); > > i=i+1; % i=152 > > res(i)= res(i) +all(all( (acs!=brs) == (acf!=brf) )); > > i=i+1; % i=153 > > res(i)= res(i) +all(all( (acs>=brs) == (acf>=brf) )); > > i=i+1; % i=154 > > res(i)= res(i) +all(all( (acs<=brs) == (acf<=brf) )); > > i=i+1; % i=155 > > res(i)= res(i) +all(all( (acs==brs) == (acf==brf) )); > > i=i+1; % i=156 > > res(i)= res(i) +all(all( acs.*brs == acf.*brf )); > > i=i+1; % i=157 > > res(i)= res(i) +all(all( acf.*brs == acf.*brf )); > > i=i+1; % i=158 > > res(i)= res(i) +all(all( acs.*brf == acf.*brf )); > > i=i+1; % i=159 > > res(i)= res(i) +all(all( acs*crs == acf*crf )); > > i=i+1; % i=160 > > res(i)= res(i) +all(all( acf*crs == acf*crf )); > > i=i+1; % i=161 > > res(i)= res(i) +all(all( acs*crf == acf*crf )); > > i=i+1; % i=162 > > > > % > > % complex sparse op complex sparse and complex sparse op complex matrix > > % > > > > df_ef= dcf\ecf; > > mag = errortol*mean( df_ef(:))*sqrt(prod(size(df_ef))); > > # FIXME: this breaks if drs is 1x1 > > rdif= abs(dcs\ecf - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=163 > > > > rdif= abs(dcf\ecs - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=164 > > > > rdif= abs(dcs\ecs - df_ef) < abs(mag*df_ef); > > res(i)= res(i) +all(all( rdif )); > > i=i+1; % i=165 > > > > res(i)= res(i) +all(all( acs+bcs == acf+bcf )); > > i=i+1; % i=166 > > res(i)= res(i) +all(all( acf+bcs == acf+bcf )); > > i=i+1; % i=167 > > res(i)= res(i) +all(all( acs+bcf == acf+bcf )); > > i=i+1; % i=168 > > res(i)= res(i) +all(all( acs-bcs == acf-bcf )); > > i=i+1; % i=169 > > res(i)= res(i) +all(all( acf-bcs == acf-bcf )); > > i=i+1; % i=170 > > res(i)= res(i) +all(all( acs-bcf == acf-bcf )); > > i=i+1; % i=171 > > res(i)= res(i) +all(all( (acs>bcs) == (acf>bcf) )); > > i=i+1; % i=172 > > res(i)= res(i) +all(all( (acs<bcs) == (acf<bcf) )); > > i=i+1; % i=173 > > res(i)= res(i) +all(all( (acs!=bcs) == (acf!=bcf) )); > > i=i+1; % i=174 > > res(i)= res(i) +all(all( (acs>=bcs) == (acf>=bcf) )); > > i=i+1; % i=175 > > res(i)= res(i) +all(all( (acs<=bcs) == (acf<=bcf) )); > > i=i+1; % i=176 > > res(i)= res(i) +all(all( (acs==bcs) == (acf==bcf) )); > > i=i+1; % i=177 > > res(i)= res(i) +all(all( acs.*bcs == acf.*bcf )); > > i=i+1; % i=178 > > res(i)= res(i) +all(all( acf.*bcs == acf.*bcf )); > > i=i+1; % i=179 > > res(i)= res(i) +all(all( acs.*bcf == acf.*bcf )); > > i=i+1; % i=180 > > res(i)= res(i) +all(all( abs( acs*ccs - acf*ccf ) < errortol )); > > i=i+1; % i=181 > > res(i)= res(i) +all(all( abs( acf*ccs - acf*ccf ) < errortol )); > > i=i+1; % i=182 > > res(i)= res(i) +all(all( abs( acs*ccf - acf*ccf ) < errortol )); > > i=i+1; % i=183 > > > > % > > % sparse select operations > > % > > %this is necessary until we get the orientations sorted > > r1= ars(sel1); r2=arf(sel1); > > res(i)= res(i) +all( r1(:) == r2(:) ); > > % res(i)= res(i) +all( ars(sel1) == arf(sel1 )); > > i=i+1; % i=184 > > res(i)= res(i) +all( ars(:) == arf(:)); > > i=i+1; % i=185 > > res(i)= res(i) +all(all( ars(sely,selx) == arf(sely,selx) )); > > i=i+1; % i=186 > > res(i)= res(i) +all(all( ars( : ,selx) == arf( : ,selx) )); > > i=i+1; % i=187 > > res(i)= res(i) +all(all( ars(sely, : ) == arf(sely, : ) )); > > i=i+1; % i=188 > > res(i)= res(i) +all(all( ars(:,:) == arf(:,:) )); > > i=i+1; % i=189 > > > > % > > % complex sparse select operations > > % > > r1= acs(sel1); r2=acf(sel1); > > res(i)= res(i) +all( r1(:) == r2(:) ); > > % res(i)= res(i) +all( ars(sel1) == arf(sel1 )); > > i=i+1; % i=190 > > res(i)= res(i) +all( ars(:) == arf(:)); > > i=i+1; % i=191 > > res(i)= res(i) +all(all( ars(sely,selx) == arf(sely,selx) )); > > i=i+1; % i=192 > > res(i)= res(i) +all(all( ars( : ,selx) == arf( : ,selx) )); > > i=i+1; % i=193 > > res(i)= res(i) +all(all( ars(sely, : ) == arf(sely, : ) )); > > i=i+1; % i=194 > > res(i)= res(i) +all(all( ars(:,:) == arf(:,:) )); > > i=i+1; % i=195 > > > > % > > % sparse LU and inverse > > % > > mag = errortol; > > [Lf2,Uf2] = lu( drf ); > > [Lf4,Uf4,Pf4] = lu( drf ); > > > > if OCTAVE > > [Ls2,Us2] = splu( drs ); > > else > > [Ls2,Us2] = lu( drs ); > > end > > > > % LU decomp may be different but U must be Upper and LU==d > > res(i)= res(i) + all( [ ... > > all(all( abs(Ls2*Us2 - Lf2*Uf2 )< mag )) ; ... > > 1 ] ); > > i=i+1; % i=196 > > > > if OCTAVE > > [Ls4,Us4,PsR,PsC] = splu( drs ); > > res(i)= res(i) + ... > > all([ all(all(abs( PsR'*Ls4*Us4*PsC - Pf4'*Lf4*Uf4 )<mag)) ; > > all(all(abs( PsR'*Ls4*Us4*PsC - drf )< mag)) ; > > all(all( Ls4 .* LL == Ls4 )) ; > > all(all( Us4 .* UU == Us4 )) ] ); > > elseif 0 > > [Ls4,Us4,Ps4] = lu( drs ); > > res(i)= res(i) + ... > > all([ all(all(abs( Ps4'*Ls4*Us4 - Pf4'*Lf4*Uf4 )<mag)) ; > > all(all(abs( Ps4'*Ls4*Us4 - drf )< mag)) ; > > all(all( Ls4 .* LL == Ls4 )) ; > > all(all( Us4 .* UU == Us4 )) ] ); > > end > > > > i=i+1; % i=197 > > > > dsi = spinv( drs ); > > mag= errortol; > > res(i)= res(i) + all(all( ... > > abs( inv(drf) - dsi ) <= mag*(1+abs(inv(drf))) )); > > i=i+1; % i=198 > > > > if OCTAVE > > res(i)= res(i) +all( spfind(ars) == find(arf) ); > > [I,J,S,N,M]= spfind(ars); > > else > > res(i)= res(i) +all( find(ars) == find(arf) ); > > [I,J,S]= find(ars); > > [N,M] = size(ars); > > end > > i=i+1; % i=199 > > > > asnew= sparse(I,J,S,N,M); > > res(i)= res(i) +all( all( asnew == ars )); > > i=i+1; % i=200 > > > > % > > % complex sparse LU and inverse > > % > > mag = errortol; > > [Lf2,Uf2] = lu( dcf ); > > [Lf4,Uf4,Pf4] = lu( dcf ); > > > > if OCTAVE > > [Ls2,Us2] = splu( dcs ); > > else > > [Ls2,Us2] = lu( dcs ); > > end > > > > % LU decomp may be different but U must be Upper and LU==d > > res(i)= res(i) + all( [ ... > > all(all( abs(Ls2*Us2 - Lf2*Uf2 )< mag )) ; ... > > 1 ] ); > > i=i+1; % i=201 > > > > if OCTAVE > > [Ls4,Us4,PsR,PsC] = splu( dcs ); > > res(i)= res(i) + ... > > all([ all(all(abs( PsR'*Ls4*Us4*PsC - Pf4'*Lf4*Uf4 )<mag)) ; > > all(all(abs( PsR'*Ls4*Us4*PsC - dcf )< mag)) ; > > all(all( Ls4 .* LL == Ls4 )) ; > > all(all( Us4 .* UU == Us4 )) ] ); > > elseif 0 > > [Ls4,Us4,Ps4] = lu( dcs ); > > res(i)= res(i) + ... > > all([ all(all(abs( Ps4'*Ls4*Us4 - Pf4'*Lf4*Uf4 )<mag)) ; > > all(all(abs( Ps4'*Ls4*Us4 - dcf )< mag)) ; > > all(all( Ls4 .* LL == Ls4 )) ; > > all(all( Us4 .* UU == Us4 )) ] ); > > end > > i=i+1; % i=202 > > > > dci = spinv( dcs ); > > mag= errortol; > > res(i)= res(i) + all(all( ... > > abs( inv(dcf) - dci ) <= mag*(1+abs(inv(dcf))) )); > > i=i+1; % i=203 > > > > if OCTAVE > > res(i)= res(i) +all( spfind(acs) == find(acf) ); > > [I,J,S,N,M]= spfind(acs); > > else > > res(i)= res(i) +all( find(acs) == find(acf) ); > > [I,J,S]= find(acs); > > [N,M] = size(acs); > > end > > i=i+1; % i=204 > > > > asnew= sparse(I,J,S,N,M); > > res(i)= res(i) +all( all( asnew == acs )); > > i=i+1; % i=205 > > > > % test sparse assembly using 'sum' or 'unique' > > tf1= zeros(N,M); > > tf2= zeros(N,M); > > ts= sparse(N,M); > > nn= mean([N,M]); > > rr= floor(rand(5,nn)*N)+1; > > cc= floor(rand(5,nn)*M)+1; > > tf1( rr(:)+N*(cc(:)-1) ) =ones(5,nn); > > for k=1:length(rr(:)) > > tf2( rr(k),cc(k) )+=1; > > end > > > > > > % test normal assembly > > res(i)= res(i) +all( all( sparse(rr,cc,1,N,M) == tf2 )); > > i=i+1; % i=206 > > > > % test 'unique' assembly > > res(i)= res(i) +all( all( sparse(rr,cc,1,N,M,'unique') == tf1 )); > > i=i+1; % i=207 > > > > % test 'sum' assembly > > res(i)= res(i) +all( all( sparse(rr,cc,1,N,M,'sum') == tf2 )); > > i=i+1; % i=208 > > > > % test 'sphcat' 'spvcat' > > res(i)= res(i) +all( all( > > sphcat( ars,brs,brs,ars ) == [ars,brs,brs,ars] )); > > i=i+1; % i=209 > > > > res(i)= res(i) +all( all( > > spvcat( ars,brs,brs,ars ) == [ars;brs;brs;ars] )); > > i=i+1; % i=210 > > > > > > end > > > > res= res(1:i-1); > > > > printf( ... > > '%d operations tested sucessfully for %d iterations\n', ... > > sum( res==NTRIES) , NTRIES ); > > > > for i=find( res~= NTRIES) > > printf( [ 'operation #%d in sp_test.m exceeds error tolerance ', ... > > 'with probability %5.2f%%\n' ], ... > > i, 100*(1 - res(i)/NTRIES) ); > > end > > > > % segfault test from ed...@de... > > n = 510; sparse(kron((1:n)', ones(n,1)), kron(ones(n,1), (1:n)'), ones(n)); > > > > % clear up variables - so dmalloc works > > #clear L* U* a* b* c* d* e* P* > > > > > > % > > % $Log: sp_test.m,v $ > > % Revision 1.12 2003/05/21 18:20:07 aadler > > % concatenate sparse matrices > > % > > % Revision 1.11 2003/04/03 22:06:40 aadler > > % sparse create bug - need to use heap for large temp vars > > % > > % Revision 1.10 2003/02/20 22:51:45 pkienzle > > % Default to 'sum' rather than 'unique' assembly > > % > > % Revision 1.9 2003/01/02 18:19:36 pkienzle > > % make sure rand(n,m) receives integer input > > % > > % Revision 1.8 2002/12/25 01:33:00 aadler > > % fixed bug which allowed zero values to be stored in sparse matrices. > > % improved print output > > % > > % Revision 1.7 2002/12/11 17:19:31 aadler > > % sparse .^ scalar operations added > > % improved test suite > > % improved documentation > > % new is_sparse > > % new spabs > > % > > % Revision 1.6 2002/11/05 19:21:07 aadler > > % added indexing for complex_sparse. added tests > > % > > % Revision 1.5 2002/02/28 04:57:18 aadler > > % global error threshold > > % > > % Revision 1.4 2001/11/16 03:09:42 aadler > > % added spsum.m, is_sparse, is_real_sparse, is_complex_sparse > > % > > % Revision 1.3 2001/11/04 19:54:49 aadler > > % fix bug with multiple entries in sparse creation. > > % Added "summation" mode for matrix creation > > % > > % Revision 1.2 2001/10/12 02:24:28 aadler > > % Mods to fix bugs > > % add support for all zero sparse matrices > > % add support fom complex sparse inverse > > % > > % Revision 1.8 2001/09/23 17:46:12 aadler > > % updated README > > % modified licence to GPL plus link to opensource programmes > > % > > % Revision 1.7 2001/04/08 20:14:34 aadler > > % test cases for complex sparse > > % > > % Revision 1.6 2001/04/04 02:13:46 aadler > > % complete complex_sparse, templates, fix memory leaks > > % > > % Revision 1.5 2001/03/30 04:36:30 aadler > > % added multiply, solve, and sparse creation > > % > > % Revision 1.4 2001/03/15 15:47:58 aadler > > % cleaned up duplicated code by using "defined" templates. > > % used default numerical conversions > > % > > % Revision 1.3 2001/02/27 03:01:52 aadler > > % added rudimentary complex matrix support > > % > > % Revision 1.2 2000/12/18 03:31:16 aadler > > % Split code to multiple files > > % added sparse inverse > > % > > % Revision 1.1 2000/11/11 02:47:11 aadler > > % DLD functions for sparse support in octave > > % > > % Revision 1.3 2000/08/02 01:17:51 andy > > % more careful tests including vaguely pathological cases > > % > > % Revision 1.2 2000/06/23 03:25:28 andy > > % functions for sparse op scalar > > % > > % Revision 1.1 2000/04/01 02:42:02 andy > > % Initial revision > > % > > % numbering of tests: (vim cmd) > > % %perld BEGIN{$i=0};s/[#%] i=( *\d*) *$/sprintf("%% i=%2d",++$i)/e > > % > > > ----- End forwarded message ----- -- ----------------------------------------------------- David R. "Chip" Kent IV The Optimal Solution ch...@th... ----------------------------------------------------- |