lapackpp-devel Mailing List for Lapack++ (Page 8)
Status: Beta
Brought to you by:
cstim
You can subscribe to this list here.
2004 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(19) |
Sep
(11) |
Oct
|
Nov
(4) |
Dec
(15) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2005 |
Jan
(2) |
Feb
(4) |
Mar
(32) |
Apr
(18) |
May
(3) |
Jun
|
Jul
(1) |
Aug
(4) |
Sep
(13) |
Oct
(5) |
Nov
|
Dec
(1) |
2006 |
Jan
|
Feb
(6) |
Mar
(2) |
Apr
(6) |
May
(18) |
Jun
(15) |
Jul
(17) |
Aug
(45) |
Sep
(3) |
Oct
(4) |
Nov
(26) |
Dec
(4) |
2007 |
Jan
(11) |
Feb
(14) |
Mar
(1) |
Apr
|
May
(4) |
Jun
|
Jul
|
Aug
(2) |
Sep
|
Oct
(1) |
Nov
(1) |
Dec
(2) |
2008 |
Jan
|
Feb
(2) |
Mar
|
Apr
(4) |
May
(1) |
Jun
(2) |
Jul
|
Aug
|
Sep
|
Oct
(1) |
Nov
|
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(3) |
Nov
(1) |
Dec
(1) |
2010 |
Jan
(2) |
Feb
(1) |
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(4) |
Oct
|
Nov
(7) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
(2) |
Jun
(2) |
Jul
(2) |
Aug
|
Sep
(1) |
Oct
|
Nov
(14) |
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
(3) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2013 |
Jan
|
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
(2) |
Mar
(5) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: Christian S. <sti...@tu...> - 2006-08-08 08:17:49
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Do bi schrieb: > Hi. You briefly explained with enough code how to create a tridiagonal > matrix on > http://lapackpp.sourceforge.net/html/classLaTridiagMatDouble.html#_details > which is > LaVectorDouble newdiag(N); > newdiag(0) = ...; > LaTriagMatDouble triagmat(N); > triagmat.diag(0).inject(newdiag); // correct > // but don't write this: > triagmat.diag(0) = newdiag; // wrong! > and easily understood and very helpful. Can you please write a similar > size of code to solve a tridiagonal matrix? Sure: #include <trfd.h> // for LaTridiagFactDouble class // define A LaTridiagMatDouble A(N); A.diag(0).inject(...); // fill the matrix with values // define X and B LaGenMatDouble B(N,1); B = ...; // fill B with values from somewhere // To solve Ax=b: LaTridiagFactDouble Afact; LaGenMatDouble X(N,1); LaTridiagMatFactorize(A, Afact); // calculate LU factorization LaLinearSolve(Afact, X, B); // solve; result is in X Regards, Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRNhIn2XAi+BfhivFAQLS0wP+MZEGreWLkbBGxk2EGVHAY86kL4YDiXfO uGgCXCu31hy/1kXRQI32GNpvZEhTgeiP3kA232Y651MBrXY1LjAgAMEcYKHf9DT+ OzUFsvNXnm4cTzepuphgr1jyqiDL0VjbQBmLdOf/e1RfB/kmxEmB/A4GQPAL3Lvw yueID2dzOPg= =aggs -----END PGP SIGNATURE----- |
From: Do bi <mrc...@ya...> - 2006-08-08 05:42:20
|
Hi. You briefly explained with enough code how to create a tridiagonal matrix on http://lapackpp.sourceforge.net/html/classLaTridiagMatDouble.html#_details which is LaVectorDouble newdiag(N); newdiag(0) = ...; LaTriagMatDouble triagmat(N); triagmat.diag(0).inject(newdiag); // correct // but don't write this: triagmat.diag(0) = newdiag; // wrong! and easily understood and very helpful. Can you please write a similar size of code to solve a tridiagonal matrix? Thanks Christian Stimming <sti...@tu...> wrote: Am Sonntag, 6. August 2006 13:25 schrieb Do bi: > If I use LaTridiagMatDouble instead of LaGenMatDouble, will I save memory? RTFM!!!!!!!!!!!! http://en.wikipedia.org/wiki/RTFM Everything explained in the header include/trmd.h > Moreover, if I use LaSymmTridiagMatDouble, will the new Lapackpp package > solve the system? There is no LaSymmTridiagMatDouble. Christian > > Christian Stimming wrote: Am Freitag, 4. August 2006 15:24 schrieb Do bi: > > I want to solve the tridiagonal Ax=b. If this is not possible, then I > > proceed with LaMatDouble because I have already produced a tridiagonal > > with my code in the form of a LaMatDouble. Thanks. > > > > Christian Stimming wrote: > > (...) Apart from this I actually don't quite understand what you > > want to do with the LaTridiagMat. There aren't any useful functions > > available for these, except for LaTridiagMatFactorize in trfd.h ... > > If you want to solve tridiagonal Ax=b then the two functions at the end of > include/trfd.h should be exactly what you need. You first create the > LaTridiagMatDouble A with your data, then create its factorization by > LaTridiagMatFactorize, then use that factorization to solve Ax=b by the > LaLinearSolve in trfd.h. In numerical maths it is quite usual to solve Ax=b > in these two separate steps. --------------------------------- Do you Yahoo!? Everyone is raving about the all-new Yahoo! Mail Beta. |
From: Christian S. <sti...@tu...> - 2006-08-06 13:35:54
|
Am Sonntag, 6. August 2006 13:25 schrieb Do bi: > If I use LaTridiagMatDouble instead of LaGenMatDouble, will I save memory? RTFM!!!!!!!!!!!! http://en.wikipedia.org/wiki/RTFM Everything explained in the header include/trmd.h > Moreover, if I use LaSymmTridiagMatDouble, will the new Lapackpp package > solve the system? There is no LaSymmTridiagMatDouble. Christian > > Christian Stimming <sti...@tu...> wrote: Am Freitag, 4. August 2006 15:24 schrieb Do bi: > > I want to solve the tridiagonal Ax=b. If this is not possible, then I > > proceed with LaMatDouble because I have already produced a tridiagonal > > with my code in the form of a LaMatDouble. Thanks. > > > > Christian Stimming wrote: > > (...) Apart from this I actually don't quite understand what you > > want to do with the LaTridiagMat. There aren't any useful functions > > available for these, except for LaTridiagMatFactorize in trfd.h ... > > If you want to solve tridiagonal Ax=b then the two functions at the end of > include/trfd.h should be exactly what you need. You first create the > LaTridiagMatDouble A with your data, then create its factorization by > LaTridiagMatFactorize, then use that factorization to solve Ax=b by the > LaLinearSolve in trfd.h. In numerical maths it is quite usual to solve Ax=b > in these two separate steps. |
From: Do bi <mrc...@ya...> - 2006-08-06 11:25:17
|
If I use LaTridiagMatDouble instead of LaGenMatDouble, will I save memory? Moreover, if I use LaSymmTridiagMatDouble, will the new Lapackpp package solve the system? Christian Stimming <sti...@tu...> wrote: Am Freitag, 4. August 2006 15:24 schrieb Do bi: > I want to solve the tridiagonal Ax=b. If this is not possible, then I > proceed with LaMatDouble because I have already produced a tridiagonal with > my code in the form of a LaMatDouble. Thanks. > > Christian Stimming wrote: > (...) Apart from this I actually don't quite understand what you > want to do with the LaTridiagMat. There aren't any useful functions > available for these, except for LaTridiagMatFactorize in trfd.h ... If you want to solve tridiagonal Ax=b then the two functions at the end of include/trfd.h should be exactly what you need. You first create the LaTridiagMatDouble A with your data, then create its factorization by LaTridiagMatFactorize, then use that factorization to solve Ax=b by the LaLinearSolve in trfd.h. In numerical maths it is quite usual to solve Ax=b in these two separate steps. Christian __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Christian S. <sti...@tu...> - 2006-08-06 10:19:00
|
Am Samstag, 5. August 2006 20:18 schrieb Do bi: > Please provide the updated lapackpp because it would be too much pain doing > CVS. I am already familiar with how to download the library, running the > proj file, and linking, so it is better for me to continue in the same way. Ok, a new release lapackpp-2.4.12.tar.gz is available on the sourceforge download page. Christian |
From: Christian S. <sti...@tu...> - 2006-08-06 10:18:09
|
Am Samstag, 5. August 2006 20:14 schrieb Do bi: > Please can you hint me on how to reduce the memory needs of a 10^5 x 10^5 > Matrix in Lapackpp? 1) How can I use floats instead for the matrix? Use LaGenMatFloat instead of LaGenMatDouble. > 2) What are the options in Lapack in terms of taking advantage of the > symmetry, and using just half the matrix, and still solve A . x = b ? Use LaSymmMatDouble from include/symd.h, but the header file hasn't been proof-read by myself (obvious because of almost missing documentation) so you need to watch out for potential errors in the code. Christian > Christian Stimming <sti...@tu...> wrote: > > Am Freitag, 4. August 2006 18:57 schrieb Do bi: > > Hi Christian sorry I mistakenly sent to your personal address the first > > time. This is my mportant enquiry: > > > > I noticed that LaGenMatDouble cannot be a size more than (10000,10000). > > Please tell me what to do. I need larger matrices. > > Thanks. > > Have you spent some thought about the required memory for the actual > storage of a 10^4 x 10^4 general matrix? Obviously it has 10^8 entries. The > "double" data type needs 8 bytes each ("float" needs 4 bytes), so this > matrix would need 8*10^8 bytes in memory or in other words roughly 800 > MBytes (in one continuous block). You don't have that amount of memory > available. That's the whole point of all the other matrix data types which > can be used if you don't need one "general dense" matrix (but instead any > kind of symmetry or triangularity or whatever.) > > So, no, it's not a bug of lapack/lapackpp that you cannot create > LaGenMatDouble of that size. You cannot do this unless you're on some kind > of supercomputer. You have to formulate your problem in a different way so > that you don't need a LaGenMatDouble. |
From: Do bi <mrc...@ya...> - 2006-08-05 18:18:44
|
Please provide the updated lapackpp because it would be too much pain doing CVS. I am already familiar with how to download the library, running the proj file, and linking, so it is better for me to continue in the same way. Thanks. Christian Stimming <sti...@tu...> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Do Bi, Christian Stimming schrieb: > Please can anyone hint me how to correctly form a tridiagonal? > I wrote this and tried to print the value, but it was wrong. indeed you have found a bug in the library. Thanks for providing the testing code -- this way I could fix this in the library. Basically you need to write Mat.diag(0).inject(Diag); instead of Mat.diag(0)=Diag; but apart from this there have been various bugs in the code of the LaTridiagMatDouble class. These have been fixed in CVS now. Are you familiar with retrieving the source code from CVS, see http://sourceforge.net/cvs/?group_id=99696 ? If not, then please tell us so, and then I'll provide an updated lapackpp-2.4.12 version as soon as possible. As a hint for you: The header file with the LaTridiagMatDouble class, include/trmd.h, contained almost no documentation at all. This always means that the code has never been reviewed by me since its original lapack++-1.0 version, and it is very likely that it contains bugs and/or is incomplete. Not that I wouldn't introduce bugs myself, but when I document and review other code then it has at least been checked by more than one person. So: The class LaTridiagMatDouble contained various errors, and the missing documentation were a strong hint that this is possible. Apart from this I actually don't quite understand what you want to do with the LaTridiagMat. There aren't any useful functions available for these, except for LaTridiagMatFactorize in trfd.h ... Regards Christian Stimming > LaVectorDouble x(M), b(M), const Diag(M), DiagL(M-1), DiagU(M-1); > for (int i=0; i< M; i++) > Diag(i)=1+2*alfa*0; > for (int i=0; i< M-1; i++) > DiagL(i)=-alfa; > for (int i=0; i< M-1; i++) > DiagU(i)=-alfa; > > > for (int i=0; i< M-1; i++) > cout << DiagL(i) << endl; > LaTridiagMatDouble Mat(M); > Mat.diag(0)=Diag; > Mat.diag(-1)=DiagL; > Mat.diag(1)=DiagU; > //for (int i=0; i< M-1; i++) > //cout << Diag(i) << endl; > cout << Mat(0,0) << endl; > > > --------------------------------- > Yahoo! Music Unlimited - Access over 1 million songs.Try it free. > > ------------------------------------------------------- > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRM9TaGXAi+BfhivFAQIZxgP/WDrfUSZvbi28cSxvlMuD9HdFnHnuM8H+ GweXLM6g4jCblLZZK4hUuEsvvhr9C9LROojqjnZhSpGtjxnbVRbdUruotj228FpE AK5Usws81NMAFpeWdTKBzLrM39Ript99i2tuiEADSLO8L/luq0zshb1DX2I6yxLi ae8OfNRKdt0= =bWY1 -----END PGP SIGNATURE----- --------------------------------- Talk is cheap. Use Yahoo! Messenger to make PC-to-Phone calls. Great rates starting at 1¢/min. |
From: Do bi <mrc...@ya...> - 2006-08-05 18:14:42
|
Please can you hint me on how to reduce the memory needs of a 10^5 x 10^5 Matrix in Lapackpp? 1) How can I use floats instead for the matrix? 2) What are the options in Lapack in terms of taking advantage of the symmetry, and using just half the matrix, and still solve A . x = b ? Please just hint me on what you would do. Regards Donald. Christian Stimming <sti...@tu...> wrote: Am Freitag, 4. August 2006 18:57 schrieb Do bi: > Hi Christian sorry I mistakenly sent to your personal address the first > time. This is my mportant enquiry: > > I noticed that LaGenMatDouble cannot be a size more than (10000,10000). > Please tell me what to do. I need larger matrices. > Thanks. Have you spent some thought about the required memory for the actual storage of a 10^4 x 10^4 general matrix? Obviously it has 10^8 entries. The "double" data type needs 8 bytes each ("float" needs 4 bytes), so this matrix would need 8*10^8 bytes in memory or in other words roughly 800 MBytes (in one continuous block). You don't have that amount of memory available. That's the whole point of all the other matrix data types which can be used if you don't need one "general dense" matrix (but instead any kind of symmetry or triangularity or whatever.) So, no, it's not a bug of lapack/lapackpp that you cannot create LaGenMatDouble of that size. You cannot do this unless you're on some kind of supercomputer. You have to formulate your problem in a different way so that you don't need a LaGenMatDouble. Christian --------------------------------- How low will we go? Check out Yahoo! Messengers low PC-to-Phone call rates. |
From: Christian S. <sti...@tu...> - 2006-08-05 16:33:47
|
Am Freitag, 4. August 2006 18:57 schrieb Do bi: > Hi Christian sorry I mistakenly sent to your personal address the first > time. This is my mportant enquiry: > > I noticed that LaGenMatDouble cannot be a size more than (10000,10000). > Please tell me what to do. I need larger matrices. > Thanks. Have you spent some thought about the required memory for the actual storage of a 10^4 x 10^4 general matrix? Obviously it has 10^8 entries. The "double" data type needs 8 bytes each ("float" needs 4 bytes), so this matrix would need 8*10^8 bytes in memory or in other words roughly 800 MBytes (in one continuous block). You don't have that amount of memory available. That's the whole point of all the other matrix data types which can be used if you don't need one "general dense" matrix (but instead any kind of symmetry or triangularity or whatever.) So, no, it's not a bug of lapack/lapackpp that you cannot create LaGenMatDouble of that size. You cannot do this unless you're on some kind of supercomputer. You have to formulate your problem in a different way so that you don't need a LaGenMatDouble. Christian |
From: Christian S. <sti...@tu...> - 2006-08-05 16:13:09
|
Am Freitag, 4. August 2006 15:24 schrieb Do bi: > I want to solve the tridiagonal Ax=b. If this is not possible, then I > proceed with LaMatDouble because I have already produced a tridiagonal with > my code in the form of a LaMatDouble. Thanks. > > Christian Stimming <sti...@tu...> wrote: > (...) Apart from this I actually don't quite understand what you > want to do with the LaTridiagMat. There aren't any useful functions > available for these, except for LaTridiagMatFactorize in trfd.h ... If you want to solve tridiagonal Ax=b then the two functions at the end of include/trfd.h should be exactly what you need. You first create the LaTridiagMatDouble A with your data, then create its factorization by LaTridiagMatFactorize, then use that factorization to solve Ax=b by the LaLinearSolve in trfd.h. In numerical maths it is quite usual to solve Ax=b in these two separate steps. Christian |
From: Do bi <mrc...@ya...> - 2006-08-04 16:57:48
|
Hi Christian sorry I mistakenly sent to your personal address the first time. This is my mportant enquiry: I noticed that LaGenMatDouble cannot be a size more than (10000,10000). Please tell me what to do. I need larger matrices. Thanks. --------------------------------- Groups are talking. We´re listening. Check out the handy changes to Yahoo! Groups. |
From: Christian S. <sti...@tu...> - 2006-08-01 13:13:23
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Do Bi, Christian Stimming schrieb: > Please can anyone hint me how to correctly form a tridiagonal? > I wrote this and tried to print the value, but it was wrong. indeed you have found a bug in the library. Thanks for providing the testing code -- this way I could fix this in the library. Basically you need to write Mat.diag(0).inject(Diag); instead of Mat.diag(0)=Diag; but apart from this there have been various bugs in the code of the LaTridiagMatDouble class. These have been fixed in CVS now. Are you familiar with retrieving the source code from CVS, see http://sourceforge.net/cvs/?group_id=99696 ? If not, then please tell us so, and then I'll provide an updated lapackpp-2.4.12 version as soon as possible. As a hint for you: The header file with the LaTridiagMatDouble class, include/trmd.h, contained almost no documentation at all. This always means that the code has never been reviewed by me since its original lapack++-1.0 version, and it is very likely that it contains bugs and/or is incomplete. Not that I wouldn't introduce bugs myself, but when I document and review other code then it has at least been checked by more than one person. So: The class LaTridiagMatDouble contained various errors, and the missing documentation were a strong hint that this is possible. Apart from this I actually don't quite understand what you want to do with the LaTridiagMat. There aren't any useful functions available for these, except for LaTridiagMatFactorize in trfd.h ... Regards Christian Stimming > LaVectorDouble x(M), b(M), const Diag(M), DiagL(M-1), DiagU(M-1); > for (int i=0; i< M; i++) > Diag(i)=1+2*alfa*0; > for (int i=0; i< M-1; i++) > DiagL(i)=-alfa; > for (int i=0; i< M-1; i++) > DiagU(i)=-alfa; > > > for (int i=0; i< M-1; i++) > cout << DiagL(i) << endl; > LaTridiagMatDouble Mat(M); > Mat.diag(0)=Diag; > Mat.diag(-1)=DiagL; > Mat.diag(1)=DiagU; > //for (int i=0; i< M-1; i++) > //cout << Diag(i) << endl; > cout << Mat(0,0) << endl; > > > --------------------------------- > Yahoo! Music Unlimited - Access over 1 million songs.Try it free. > > ------------------------------------------------------- > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRM9TaGXAi+BfhivFAQIZxgP/WDrfUSZvbi28cSxvlMuD9HdFnHnuM8H+ GweXLM6g4jCblLZZK4hUuEsvvhr9C9LROojqjnZhSpGtjxnbVRbdUruotj228FpE AK5Usws81NMAFpeWdTKBzLrM39Ript99i2tuiEADSLO8L/luq0zshb1DX2I6yxLi ae8OfNRKdt0= =bWY1 -----END PGP SIGNATURE----- |
From: Do bi <mrc...@ya...> - 2006-07-31 18:11:38
|
Please can anyone hint me how to correctly form a tridiagonal? I wrote this and tried to print the value, but it was wrong. LaVectorDouble x(M), b(M), const Diag(M), DiagL(M-1), DiagU(M-1); for (int i=0; i< M; i++) Diag(i)=1+2*alfa*0; for (int i=0; i< M-1; i++) DiagL(i)=-alfa; for (int i=0; i< M-1; i++) DiagU(i)=-alfa; for (int i=0; i< M-1; i++) cout << DiagL(i) << endl; LaTridiagMatDouble Mat(M); Mat.diag(0)=Diag; Mat.diag(-1)=DiagL; Mat.diag(1)=DiagU; //for (int i=0; i< M-1; i++) //cout << Diag(i) << endl; cout << Mat(0,0) << endl; --------------------------------- Yahoo! Music Unlimited - Access over 1 million songs.Try it free. |
From: Do bi <mrc...@ya...> - 2006-07-31 16:11:02
|
I have now succeeded in using lapackpp in the .Net platform. I can now answer a few questions if someone needs it. --------------------------------- See the all-new, redesigned Yahoo.com. Check it out. |
From: Do bi <mrc...@ya...> - 2006-07-29 08:14:42
|
Please can you direct me to anyone who has used lapack++ from microsoft visual studio.Net. I need to ask for guidance as I go on. Regards __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Do bi <mrc...@ya...> - 2006-07-28 21:43:23
|
Hi friends, I succeeededb in compliling the lapack++ proj file in vc++. Since there are no hands-on tutorials on lapach++, please just state briefly how the simplex code can be written: Say I need a small matrix and a small vector and I want to multiply, display, and solve LU. Thanks Christian Stimming <sti...@tu...> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Michael, thank you for your nice feedback. I'd happily try to fix these bugs, although I probably need some assistance to track them down. I'll reply to both bugs in individual posts; first this one: Michael Price schrieb: > situations: printing out matrices, and linear systems solution. (I > don't remember seeing the problem when using LU, only QR and SVD.) > First, sometimes the assertion > > assert(cI.end() >= 0); (mtmpl.h, line 279) > > fails. This assertion should only be reached when you used negative increments for a submatrix index; do you really use negative increments? I would certainly agree that several functions have never been tested with negative increments, only with positive ones, so there can very well be a bug in there. The assertion is perfectly valid and if it fails then it means that probably somewhere else some code is wrong if the increments are negative (instead of positive). Could you submit a code snippet that crashes with that assertion? Thanks. Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRLdaCWXAi+BfhivFAQIEswQAkESe67QTy0wCivjUL2bbvCxgFN/lyLtu KCTU3I7A9hxJ/UVlOprWmKcNBexcxL5/VW7T+i54O7Ud1YEqHZIzZfokIgE5rnMs YWgPIuE9Qb4JseMzSYXAxZ4oS/WGwWB3RKAswcdgoKg3WQItrIEOd9ylj9eaqtrr C/Iyc26xiW4= =toTa -----END PGP SIGNATURE----- ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ lapackpp-devel mailing list lap...@li... https://lists.sourceforge.net/lists/listinfo/lapackpp-devel __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Christian S. <sti...@tu...> - 2006-07-28 08:25:11
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Donald, 1. If you have a question, feel free to ask it here on the mailing list, but then please WAIT until we're at our computers again and respond. There is no need to write a question four times. 2. Every documentation that exists is mentioned on http://lapackpp.sourceforge.net/ , especially the last sentence of the section "Documentation": There is some old, outdated information about the original LAPACK++-1.1 in the LAPACK++ User's Manual and Class Reference Manual, all available from http://www.netlib.org/ or on http://math.nist.gov/lapack++/ . So please read the "LAPACK++ User's Manual" now. 3. As for your MSVC compiler: Using your compiler is better explained by the documentation of the compiler. My primary development environment is a different operating system and compiler anyway, so I'm the wrong person to explain you anything about the MSVC compiler. Christian Do bi schrieb: > Please tell me how to write a smle matrix solve programme in c++ using > lapack++, what header files aare needed and why. > -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRMnJy2XAi+BfhivFAQKDSwP8Df0c3hRfgBJljGPaW/dTgiRTwTX1aSlz A6NOpCTldWDeH0dDbh6mE29UgJfN3AHWdAE8AoAZ89gZqK0b0yUGA374TzJWxDlx aTVmBMopA91ydbgYvk0bYOMMHnGKPZpMYgKIcNXd7WTB+PJECl1vYOrAJATLVmmo MuylpGRCn0I= =w5lp -----END PGP SIGNATURE----- |
From: Do bi <mrc...@ya...> - 2006-07-27 17:31:13
|
Dear all, I have successfully compiled lapackpp.vcproj in visual studio, and got this result: Rebuild All: 2 succeeded, 0 failed, 1 skipped Is that Okay? The skipped one, no prob? Regards Donald Christian Stimming <sti...@tu...> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 General answer to your questions: You need to compile the lapackpp library (DLL) yourself in order to use it. Obviously you are not very familiar with the process of compiling a DLL. I can help a little bit, but I'm neither willing nor able to give you a full-fledged introduction into how to use a compiler. You might want to consider using a different tool for completing your homework if you're in a hurry here and if you're not willing or able to work with your compiler yourself. Here are quick answers: Do bi schrieb: > I am using Microsoft Visual Studio version 2.0.50727 Are you really sure this is the only version number and it is the version number of your compiler? I know of "Microsoft Visual Studio" versions 6.x, 7.0.x, 7.1.x and maybe higher (8.x?), but *not* 2.0.x. Additionally, the "About" box will show you the version number of the "Microsoft .NET Framework", which is 1.1.x here, but that doesn't matter for a C++ project. If you are really using MSVC version 2.x, then this is way too old and lapackpp will not compile with this. You need at least 6.0. > 1. Install the .exe setup package( *I did this* ) > but it does not contain any auxiliary libraries BLAS32.DLL and others; Yes it does. Where did you look for BLAS32.DLL? It installs BLAS32.DLL into your c:\windows, and BLAS32.LIB into c:\program-files\lapackpp\lib (or whatever directory prefix you have chosen). > 2. Unpack the tar.gz package with the source code: > *do you mean unzipping the lapackpp-2.4.10.tar file?* http://sourceforge.net/project/showfiles.php?group_id=99696 says there is exactly one file ending with "tar.gz". > *What do you mean "with the source code", where is it? In the directories extracted from that package? > 3. compile the source code using the provided > lapackpp.vcproj MSVC project file, which will also > compile two small test programs. You might have to adapt the > linker input directories (Project Properties -> Linker -> Input) > so that the BLAS32.DLL library can be found. > > *I saw the lapackpp.vcproj, but how do I compile the soucecode with it?* Like, opening it with your MSVC compiler? And clicking Compile -> Build All? > *When I do "Project Properties -> Linker -> Input" what should i do, add > a file, which file or directory? * If you don't know what I mean, then just ignore it. You will encounter the respective error message early enough. > 4. After successfully compiling the DLL, you need to copy the > LAPACKPP.DLL file to whatever location you consider > appropriate. This can either be your c:\WINNT directory, or the > working directory of your actual application that should use > lapackpp. > > *Do you mean copying Lapackpp.ddl or addin it through project->properties* By "copy the LAPACKPP.DLL file" I indeed mean "copying lapackpp.dll", yes. Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRKO02GXAi+BfhivFAQLEDgP/bE6lFwqpP9OVCNQ5QwrejBVHl2yEyG5P Za2CXNl/4ShvWPvUE2I/hAJQUQudtWGdar95o/acR5oRLrmhpzuDEgJ3JHUWZPKz noW0GWLoXZcne2klLqrWJRRTfVbDvZIaE7Q28b6bdqKiOy19ztjOsHMrLY3dsmJ5 n0AgcCAhZLU= =slue -----END PGP SIGNATURE----- __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Do bi <mrc...@ya...> - 2006-07-27 17:20:19
|
Dear all, Now that I have successfully compiled lapackpp.vcproj in visual studio, please tell me how to use it in a c++ project. What files do I include, which .obj and .lb and .dll files are needed, and how to create s simple matrix and do some basic stuff. Regards Donald Christian Stimming <sti...@tu...> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 General answer to your questions: You need to compile the lapackpp library (DLL) yourself in order to use it. Obviously you are not very familiar with the process of compiling a DLL. I can help a little bit, but I'm neither willing nor able to give you a full-fledged introduction into how to use a compiler. You might want to consider using a different tool for completing your homework if you're in a hurry here and if you're not willing or able to work with your compiler yourself. Here are quick answers: Do bi schrieb: > I am using Microsoft Visual Studio version 2.0.50727 Are you really sure this is the only version number and it is the version number of your compiler? I know of "Microsoft Visual Studio" versions 6.x, 7.0.x, 7.1.x and maybe higher (8.x?), but *not* 2.0.x. Additionally, the "About" box will show you the version number of the "Microsoft .NET Framework", which is 1.1.x here, but that doesn't matter for a C++ project. If you are really using MSVC version 2.x, then this is way too old and lapackpp will not compile with this. You need at least 6.0. > 1. Install the .exe setup package( *I did this* ) > but it does not contain any auxiliary libraries BLAS32.DLL and others; Yes it does. Where did you look for BLAS32.DLL? It installs BLAS32.DLL into your c:\windows, and BLAS32.LIB into c:\program-files\lapackpp\lib (or whatever directory prefix you have chosen). > 2. Unpack the tar.gz package with the source code: > *do you mean unzipping the lapackpp-2.4.10.tar file?* http://sourceforge.net/project/showfiles.php?group_id=99696 says there is exactly one file ending with "tar.gz". > *What do you mean "with the source code", where is it? In the directories extracted from that package? > 3. compile the source code using the provided > lapackpp.vcproj MSVC project file, which will also > compile two small test programs. You might have to adapt the > linker input directories (Project Properties -> Linker -> Input) > so that the BLAS32.DLL library can be found. > > *I saw the lapackpp.vcproj, but how do I compile the soucecode with it?* Like, opening it with your MSVC compiler? And clicking Compile -> Build All? > *When I do "Project Properties -> Linker -> Input" what should i do, add > a file, which file or directory? * If you don't know what I mean, then just ignore it. You will encounter the respective error message early enough. > 4. After successfully compiling the DLL, you need to copy the > LAPACKPP.DLL file to whatever location you consider > appropriate. This can either be your c:\WINNT directory, or the > working directory of your actual application that should use > lapackpp. > > *Do you mean copying Lapackpp.ddl or addin it through project->properties* By "copy the LAPACKPP.DLL file" I indeed mean "copying lapackpp.dll", yes. Christian -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRKO02GXAi+BfhivFAQLEDgP/bE6lFwqpP9OVCNQ5QwrejBVHl2yEyG5P Za2CXNl/4ShvWPvUE2I/hAJQUQudtWGdar95o/acR5oRLrmhpzuDEgJ3JHUWZPKz noW0GWLoXZcne2klLqrWJRRTfVbDvZIaE7Q28b6bdqKiOy19ztjOsHMrLY3dsmJ5 n0AgcCAhZLU= =slue -----END PGP SIGNATURE----- __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Do bi <mrc...@ya...> - 2006-07-27 15:02:08
|
Please tell me how to write a smle matrix solve programme in c++ using lapack++, what header files aare needed and why. Christian Stimming <sti...@tu...> wrote: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Michael, I've had a very close look into the QR solving routines. Unfortunately I discovered they were broken all along and all the time :-( Thanks for clearly pointing this out by the valgrind and gdb backtraces. I've fixed this now in CVS. Is it possible for you to get the current source code from CVS, https://sourceforge.net/cvs/?group_id=99696 ? If this is possible, then I'd be happy to hear whether this works again now. If it works, then I'll make a lapackpp-2.4.11 release ASAP. Thank you very much. Christian Michael Price schrieb: > fails. The main issue is a strange crash, which I was able to track > down in valgrind (since the stack in GDB is messed up): -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRLeeo2XAi+BfhivFAQJRzgP8DgNOxzu5baGb2ei6/3iRE7U5kk3CCZBV ZziOoOZEvbj3SD9swkH5JuQCDA35BFWxArTdXj0+oKHPuw2Hp49aOpIffAFrZB0I XTiYXImUcKVXm2V8r4nPFnwsITjso0o7BxU6xu5PY8rmGhoiMzBV99UyMoC/EgOR utmwmG4hMT4= =u1rD -----END PGP SIGNATURE----- ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ lapackpp-devel mailing list lap...@li... https://lists.sourceforge.net/lists/listinfo/lapackpp-devel __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: Christian S. <sti...@tu...> - 2006-07-20 08:59:10
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Dear Cheng Guo, thank you for this detailed question. However, as for your Blas_H_Dot_Prod problem, I cannot reproduce this here with lapackpp-2.4.10. The output, as expected, is (3,0) which is the expected dot product. This is both with gcc-3.3.5, blas-3.0, lapack-3.0 on SuSE 9.3 and also with gcc-4.0.2, blas-3.0, lapack-3.0 on SuSE 10.0. Oh, I just see you mentioned x86_64. Stand by - I will check more on this architecture. As for the other bug: As you wrote yourself, this doesn't occur on gcc-3.x, only on the gcc-2.97. So this is obviously an issue due to different compiler behaviour. I'm actually not really willing to spend a lot of effort on supporting the old gcc-2.9x compiler, because it is just so old and there are much newer compilers around for a long time. I understand you might be forced to use that old version on the True64 computer, but in that case I'm afraid I have to say I cannot really support this architecture. I'll look into the x86_64 more closely and report back in some time. Christian Cheng Guo schrieb: > Dear Christian, > > I found the function Blas_H_Dot_Prod doesn't work on my computer. My cpu > is P4 with EM64t, and my OS is SuSE 10.0 for x86_64. > The testing program is: > ***************************************** > int main() > { > LaVectorComplex a(3),b(3); > a=LaComplex(1,0); > b=LaComplex(1,0); > cout<<a<<endl; > cout<<Blas_H_Dot_Prod(a,b)<<endl; > } > ***************************************** > > The output is: > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > (1,0) > (1,0) > (1,0) > > (2.31779e-310,4.94066e-323) > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > So the result of Blas_H_Dot_Prod(a,b) is incorrect. The strange thing is > that when I deleted the line "cout<<a<<endl;" the result of > Blas_H_Dot_Prod(a,b) changed to (2,1) which is also wrong. > > > By the way, in the email I sent to you on May 29, I also reported a bug. > I still don't konw how to solve it so I include this bug here: > > My test program is > **************************** > #include <cstdlib> > #include <iostream> > #include <laindex.h> > #include <lavd.h> > #include <gmd.h> > using namespace std; > int main() > { > LaVectorDouble m,n; > m.resize(3,1); > m=2; > n.resize(2,1); > n=1; > m(LaIndex(0,1)).inject(n); > cout<<m<<endl; > } > *************************** > I expect get the result > > 1 > 1 > 2 > > which is what I get on my PC(suse 10,gcc-4.02) > But I got this > > 2 > 2 > 2 > > on the Tru64 UNIX (gcc-2.97) > I have tested lapackpp2.4.10 and 2.4.8, neither gave the right answer. > > This bug seems not affecting LaGenMatDouble, for the following test code > works correctly on Tru64 > **************************** > #include <cstdlib> > #include <iostream> > #include <laindex.h> > #include <lavd.h> > #include <gmd.h> > using namespace std; > int main() > { > LaGenMatDouble m,n; > m.resize(3,3); > m=2; > n.resize(2,2); > n=1; > m(LaIndex(0,1),LaIndex(0,1)).inject(n); > cout<<m<<endl; > } > *************************** -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRL9Fv2XAi+BfhivFAQLuTwQAqpavSg307G/YqIKMxuGxm5LC1o2EvlLp aITYrzuG6HK1isuy7V37Tga3BddAP74n7pHomCGrI+szAqARzUNQB/NYj0pT6crv XiJLtz50loQwe+W0nU6Dkr67m7VzWhBcPJAnqkem7ca5JjxAJAvJkz2KYGAv59Fm XxEZ+U9LdUw= =VOQO -----END PGP SIGNATURE----- |
From: Christian S. <sti...@tu...> - 2006-07-18 20:31:17
|
Hi Michael, Am Montag, 17. Juli 2006 19:55 schrieb Michael Price: > Thanks for responding so quickly and thoughtfully. As for negative > submatrix increments, I'm not using them, but I also may have reported > the wrong failed assertion; it may have been "assert(cI.end() < > mat.size(0))" on line 273. yes, might have happened. > For now I've only been doing overdetermined systems (for example: 50 to > 200 equations, 3 unknowns). I think the change of linslv.cc:220 makes > sense to correctly initialize Xtmp for either m >= n or m < n. I wonder > why that was changed to Xtmp = B? That change was probably "not-so-well-thought-out". You can see in the CVS logs that it wasn't me. Obviously at the time I should have had a closer look and/or have insisted on a test case. Well, you never stop learning. > Anyway, changing the work vector size for the QR solve routine to agree > with the manual (as you suggested) eliminated the crash I was > experiencing. I will take a closer look at it later, since we will also > be using the sparse LU solver and eigenvalue functions (which I > understand we may need to debug somewhat). I'll keep you posted. Are you familiar with using CVS? If yes, then I'd be happy to add you as a developer to the lapackpp project on sourceforge. That way, you have the faster CVS access as available for developers, and potentially you could contribute your own patches as well. Surely I'll have a close look at any submitted code, but CVS ensures nothing will get lost. If you like to use developer CVS, you would have to get an account at sourceforge.net and tell me the account name. Regards, Christian |
From: Michael P. <mr...@cm...> - 2006-07-17 17:57:08
|
Christian, Thanks for responding so quickly and thoughtfully. As for negative submatrix increments, I'm not using them, but I also may have reported the wrong failed assertion; it may have been "assert(cI.end() < mat.size(0))" on line 273. For now I've only been doing overdetermined systems (for example: 50 to 200 equations, 3 unknowns). I think the change of linslv.cc:220 makes sense to correctly initialize Xtmp for either m >= n or m < n. I wonder why that was changed to Xtmp = B? Anyway, changing the work vector size for the QR solve routine to agree with the manual (as you suggested) eliminated the crash I was experiencing. I will take a closer look at it later, since we will also be using the sparse LU solver and eigenvalue functions (which I understand we may need to debug somewhat). I'll keep you posted. Thanks Michael |
From: Christian S. <sti...@tu...> - 2006-07-14 13:40:18
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Michael, I've had a very close look into the QR solving routines. Unfortunately I discovered they were broken all along and all the time :-( Thanks for clearly pointing this out by the valgrind and gdb backtraces. I've fixed this now in CVS. Is it possible for you to get the current source code from CVS, https://sourceforge.net/cvs/?group_id=99696 ? If this is possible, then I'd be happy to hear whether this works again now. If it works, then I'll make a lapackpp-2.4.11 release ASAP. Thank you very much. Christian Michael Price schrieb: > fails. The main issue is a strange crash, which I was able to track > down in valgrind (since the stack in GDB is messed up): -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRLeeo2XAi+BfhivFAQJRzgP8DgNOxzu5baGb2ei6/3iRE7U5kk3CCZBV ZziOoOZEvbj3SD9swkH5JuQCDA35BFWxArTdXj0+oKHPuw2Hp49aOpIffAFrZB0I XTiYXImUcKVXm2V8r4nPFnwsITjso0o7BxU6xu5PY8rmGhoiMzBV99UyMoC/EgOR utmwmG4hMT4= =u1rD -----END PGP SIGNATURE----- |
From: Christian S. <sti...@tu...> - 2006-07-14 09:19:26
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi Michael, Michael Price schrieb: > The main issue is a strange crash, which I was able to track > down in valgrind (since the stack in GDB is messed up): > > ==16581== Invalid write of size 4 > ==16581== at 0x40635D7: dgels_ (in /usr/local/lib/liblapackpp.so.1.13.0) > ==16581== by 0x4031EA1: LaQRLinearSolveIP(LaGenMatDouble&, > LaGenMatDouble&, L aGenMatDouble const&) (linslv.cc:220) (...) > ==16581== Address 0x6DC5C10 is 0 bytes after a block of size 16 alloc'd > ==16581== at 0x40057E9: operator new[](unsigned) > (vg_replace_malloc.c:195) > ==16581== by 0x4052287: VectorDouble::VectorDouble(unsigned) (vd.h:46) > ==16581== by 0x403701F: LaGenMatDouble::LaGenMatDouble(int, int) > (gmd.cc:62) > ==16581== by 0x4042954: LaGenMatDouble::resize(int, int) (mtmpl.h:189) > ==16581== by 0x4042C2D: LaGenMatDouble::resize(LaGenMatDouble const&) > (gmtmpl .cc:113) > ==16581== by 0x4044A1B: LaGenMatDouble::copy(LaGenMatDouble const&) > (mtmpl.h: 210) > ==16581== by 0x4031E0D: LaQRLinearSolveIP(LaGenMatDouble&, > LaGenMatDouble&, L aGenMatDouble const&) (gmd.h:665) (...) > > I don't know the workings of Lapack++ too well, but it sounds like the > workspace of the Fortran function may not have been allocated correctly > in LaQRLinearSolveIP(). Have you seen this problem before, or know how > to fix it? Yes, the workspace dimension is obviously not allocated correctly, as clearly shown by the valgrind output. Also, sometimes I really don't understand where these workspace dimensions came from in the first place - -- I took this code from the original lapack++-1.x and I *hoped* the calculations were correct. In this particular case, one quick look into "man dgels" (the manual page of LAPACK's dgels) shows a completely different minimum workspace dimension compared to the one existing in the source code. Can you apply the patch below (i.e. replace the calculation of "W" by the lower line) and see whether this fixes your crash? However, when checking this code more closely I discovered that the whole LaQRLinearSolveIP() is probably broken for many N!=M matrices, i.e. for non-square A matrix. In particular, the change in line 217, committed in 2004, http://lapackpp.cvs.sourceforge.net/lapackpp/lapackpp/src/linslv.cc?view=diff&r1=1.5&r2=1.6 is probably fundamentally wrong -- the matrix Xtmp that is to be passed to dgels() should have dimension (max(M,N) x Nrhs) (as defined in line 213), but the command Xtmp=B (line 217) which is just an alias for Xtmp.copy(B) will actually resize Xtmp into dimensions identical to the B matrix, which in turn is (M, Nrhs) which is clearly wrong as soon as M < N. Does that apply to you, or were you lucky enough to only use a M>N? Regards, Christian Index: src/linslv.cc =================================================================== RCS file: /cvsroot/lapackpp/lapackpp/src/linslv.cc,v retrieving revision 1.13 diff -r1.13 linslv.cc 201c201 < long int W = std::min(M,N) + nb * MAX3(M, N, nrhs); - --- > long int W = std::max(1, M * N + nb * std::max(M * N, nrhs) ); -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.2.1 (MingW32) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iQCVAwUBRLdhg2XAi+BfhivFAQIADAP/R7Jfr4i/IdR01mc7If8LnOxkbzh3I1/B qRar4HtSTOKxzGGBgke3yOFa/LoUe6drrvZlJiWJkXgBNOYAu+ZoadpENQCB7xC6 WznExmH7OCyoVaR89jUPfL9Hv1tAebCzrsowrbtd8jxDKFLjaDv6UNRhyI1H0+mB +wYWtKTeqxU= =rYwx -----END PGP SIGNATURE----- |