Screenshot instructions:
Windows
Mac
Red Hat Linux
Ubuntu
Click URL instructions:
Right-click on ad, choose "Copy Link", then paste here →
(This may not be possible with some types of ads)
You can subscribe to this list here.
1998 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
(15) |
Sep
(5) |
Oct
(11) |
Nov
(19) |
Dec
(5) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
1999 |
Jan
(8) |
Feb
(2) |
Mar
(13) |
Apr
(22) |
May
(6) |
Jun
(11) |
Jul
(3) |
Aug
(8) |
Sep
(14) |
Oct
(14) |
Nov
(7) |
Dec
(13) |
2000 |
Jan
(14) |
Feb
(13) |
Mar
(25) |
Apr
(5) |
May
(11) |
Jun
(7) |
Jul
(5) |
Aug
(4) |
Sep
(1) |
Oct
(14) |
Nov
(13) |
Dec
(15) |
2001 |
Jan
(46) |
Feb
(8) |
Mar
(10) |
Apr
(4) |
May
(7) |
Jun
(5) |
Jul
(10) |
Aug
(12) |
Sep
(11) |
Oct
(6) |
Nov
(11) |
Dec
(3) |
2002 |
Jan
(6) |
Feb
(2) |
Mar
(3) |
Apr
(16) |
May
(23) |
Jun
(9) |
Jul
(14) |
Aug
(15) |
Sep
(11) |
Oct
(13) |
Nov
(15) |
Dec
(36) |
2003 |
Jan
(33) |
Feb
(49) |
Mar
(27) |
Apr
(23) |
May
(19) |
Jun
(21) |
Jul
(33) |
Aug
(26) |
Sep
(42) |
Oct
(34) |
Nov
(31) |
Dec
(52) |
2004 |
Jan
(22) |
Feb
(24) |
Mar
(22) |
Apr
(12) |
May
(18) |
Jun
(45) |
Jul
(18) |
Aug
(52) |
Sep
(13) |
Oct
(17) |
Nov
(14) |
Dec
(30) |
2005 |
Jan
(11) |
Feb
(10) |
Mar
(19) |
Apr
(29) |
May
(58) |
Jun
(61) |
Jul
(45) |
Aug
(23) |
Sep
(43) |
Oct
(42) |
Nov
(30) |
Dec
(24) |
2006 |
Jan
(23) |
Feb
(43) |
Mar
(34) |
Apr
(14) |
May
(31) |
Jun
(23) |
Jul
(13) |
Aug
(6) |
Sep
(16) |
Oct
(14) |
Nov
(9) |
Dec
(11) |
2007 |
Jan
(28) |
Feb
(24) |
Mar
(23) |
Apr
(16) |
May
(29) |
Jun
(28) |
Jul
(17) |
Aug
(14) |
Sep
(15) |
Oct
(19) |
Nov
|
Dec
(12) |
2008 |
Jan
(30) |
Feb
(21) |
Mar
(24) |
Apr
(22) |
May
(38) |
Jun
(21) |
Jul
(24) |
Aug
(31) |
Sep
(9) |
Oct
(23) |
Nov
(18) |
Dec
(1) |
2009 |
Jan
(12) |
Feb
(17) |
Mar
(20) |
Apr
(6) |
May
(6) |
Jun
(11) |
Jul
(27) |
Aug
(5) |
Sep
(5) |
Oct
(16) |
Nov
(2) |
Dec
(6) |
2010 |
Jan
(18) |
Feb
(23) |
Mar
(5) |
Apr
(6) |
May
(2) |
Jun
(10) |
Jul
(24) |
Aug
(6) |
Sep
(7) |
Oct
(8) |
Nov
(11) |
Dec
(1) |
2011 |
Jan
(15) |
Feb
(1) |
Mar
(1) |
Apr
(4) |
May
(7) |
Jun
(2) |
Jul
(36) |
Aug
(10) |
Sep
(2) |
Oct
(10) |
Nov
(3) |
Dec
(12) |
2012 |
Jan
(10) |
Feb
(29) |
Mar
(6) |
Apr
(47) |
May
(11) |
Jun
(11) |
Jul
(14) |
Aug
(13) |
Sep
(3) |
Oct
|
Nov
(5) |
Dec
|
2013 |
Jan
(7) |
Feb
(6) |
Mar
(5) |
Apr
|
May
(5) |
Jun
(10) |
Jul
|
Aug
(1) |
Sep
(6) |
Oct
(3) |
Nov
(1) |
Dec
(7) |
2014 |
Jan
|
Feb
(5) |
Mar
(1) |
Apr
(2) |
May
|
Jun
(6) |
Jul
|
Aug
(10) |
Sep
(1) |
Oct
|
Nov
(5) |
Dec
|
2015 |
Jan
|
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2016 |
Jan
(6) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(6) |
Dec
|
2017 |
Jan
(3) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
S | M | T | W | T | F | S |
---|---|---|---|---|---|---|
|
|
|
|
|
1
(5) |
2
(1) |
3
(1) |
4
(2) |
5
(3) |
6
(1) |
7
(1) |
8
|
9
|
10
|
11
|
12
(1) |
13
|
14
|
15
|
16
|
17
|
18
|
19
|
20
|
21
|
22
(1) |
23
|
24
|
25
|
26
(4) |
27
|
28
|
29
(5) |
30
(1) |
31
|
|
|
|
|
|
|
From: Fernando Perez <fperez@co...> - 2003-08-30 00:36:59
|
Todd Veldhuizen wrote: > Maybe it's best to visualize an outer product followed by a reduction. > The indices refer to the dimensions of the outer product. [snip] > Your example: > M(i1,j) * T(i2,i3,i4,j) > This is a five dimensional array (i1,i2,i3,i4,j) > > sum(M(i1,j) * T(i2,i3,i4,j), j) > This is a four dimensional array (i1,i2,i3,i4) > > Hope that helps! Thanks a lot, and it helps indeed. But I have a bit of a worry now, and it's performance. I am wondering if blitz is making an intermediate rank d+1 array above before the reduction, or something. Here is the problem. Now that I understood how to fix the code, I went ahead and timed the two versions: my hand-rolled loops (horrendous macro code), vs the blitz-expanded one (beautiful, elegant one-liners). The results are: planck[~/mtinner]> ./mtinner 300 Memory usage requested: 300 MB Rank size dif t_hand t_bz ratio (bz/hand) 1 6270 0 0.49 0.4 0.816327 2 340 0 0.36 0.41 1.13889 3 79 0 0.36 0.53 1.47222 4 33 0 0.4 0.7 1.75 5 18 0 0.35 0.82 2.34286 6 12 0 0.38 1.17 3.07895 Times are in seconds. I estimate the size at rank 1 to fit in the requested memory, and other sizes are computed to keep the total op-count approximately constant (memory use goes down with rank). The hand-rolled loops do indeed remain constant in time, but the blitz-expanded code doesn't. This worries me a lot, since a factor of 3 is unfortunately, far more than I can afford to pay once I move to production with this project. I'd really love to be able to use blitz's fancy syntax with abandon, and I wonder if I am doing something wrong, or if this is something which can be fixed. These numbers are on a P-4@..., with 1 GB of RAM, RedHat 9.0. Code compiled with gcc 3.2.2 (also tested 3.3.1, no significant difference), and CXXFLAGS = -I$(BZINCDIR) -DNDEBUG -O3 CFLAGS = -DNDEBUG -O3 Next, I decided to test the Intel compiler (icc 7.0). Here's what I get, with SSE2 optimizations turned on: planck[~/mtinner]> ./mtinner 300 Memory usage requested: 300 MB Rank size dif t_hand t_bz ratio (bz/hand) 1 6270 0 0.58 0.36 0.62069 2 340 0 0.67 0.37 0.552239 3 79 0 0.79 0.47 0.594937 4 33 0 1.02 0.61 0.598039 5 18 0 0.92 0.7 0.76087 6 12 0 1.11 1.1 0.990991 It's quite interesting: icc is a bit faster than gcc for the templated code, but far worse for the hand-rolled loops. In the end, the blitz ratio is better wiht icc, but for all the wrong reasons :) The opcount is approximately constant, so what gcc + hand loops gives is the 'ideal' situation: time _should_ remain constant. In case I am doing something outright wrong, I've posted a tarball with the necessary code so others can run the tests: http://www-hep.colorado.edu/~fperez/tmp/mtinner.tgz Just 'make', then './mtinner NNN' will run with NNN Mbytes of memory (if NNN is not given, 50 is the default). In summary: I'd love to know if it's possible to use the fancy tensor notation with no performance penalty, and if so, how to do it. The project I'm working on requires algorithms to be written for d=1..6, and that syntax would make my life *much*, *much* easier. Thanks in advance for any feedback. Regards, Fernando. ps. And to the Blitz team, many thanks. Even if the tensor notation can't be used for real work, I'm still amazed by blitz, and I'll keep using it with loops. It's a joy to work with :) |
From: Todd Veldhuizen <tveldhui@os...> - 2003-08-29 18:40:09
|
Maybe it's best to visualize an outer product followed by a reduction. The indices refer to the dimensions of the outer product. Some examples: firstIndex i; secondIndex j; thirdIndex k; fourthIndex l; A(i,j) * B(i,j) This is a two-dimensional array (i,j) sum(A(i,j) * B(i,j), j) This is a one dimensional-array (i) A(i,j) * B(k,l) This is a four-dimensional array (i,j,k,l) A(i,k) * B(k,j) This is a three-dimensional array (i,j,k) sum(A(i,k) * B(k,j), k) This is a two-dimensional array (i,j) Your example: M(i1,j) * T(i2,i3,i4,j) This is a five dimensional array (i1,i2,i3,i4,j) sum(M(i1,j) * T(i2,i3,i4,j), j) This is a four dimensional array (i1,i2,i3,i4) Hope that helps! Cheers, Todd -- Todd Veldhuizen / tveldhui@... / Indiana University Computer Science On Fri, 29 Aug 2003, Fernando Perez wrote: > Matthias Schillinger wrote: > > declare j as thirdIndex and it should work, I think. > > See also the user guide on page 57. > > Thanks a lot! It does indeed work correctly. Even though I read the docs > several times, I just misunderstood something. > > However, perhaps more detail on the semantics of these magical index objects > might be worth having in the manual, since I still find it quite confusing. > > The manual says: > > "There is a distinct index placeholder type associated with each dimension of > an array. The types are called firstIndex, secondIndex, thirdIndex, ..., > tenthIndex, eleventhIndex." > > This is fine when all your objects have the same rank. But for example, the > 4d version of my code (which thanks to your comments now works correctly), reads: > > // 4d version > void mat_ten_inner0(Array<double,2>& M, > Array<double,4>& T, Array<double,4>& U ) { > firstIndex i1; > secondIndex i2; > thirdIndex i3; > fourthIndex i4; > > fifthIndex j; > > U = sum(M(i1,j)*T(i2,i3,i4,j),j); > } > > j has to be declared as a fifthIndex, even though nothing is 5-dimensional > here. And i2,i3,i4 play the role of the 2nd, 3rd and 4th dimension for U, but > one less each for T. > > So exactly what the semantics of these objects is, remains a bit of a mistery > to me. I'd love to understand it, though, as they make the code an absolute > joy to write (once it works ;) > > Many thanks again for your help. > > Regards, > > Fernando. > > _______________________________________________ > Blitz-support mailing list > Blitz-support@... > http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > |
From: Fernando Perez <fperez@co...> - 2003-08-29 17:53:14
|
Matthias Schillinger wrote: > declare j as thirdIndex and it should work, I think. > See also the user guide on page 57. Thanks a lot! It does indeed work correctly. Even though I read the docs several times, I just misunderstood something. However, perhaps more detail on the semantics of these magical index objects might be worth having in the manual, since I still find it quite confusing. The manual says: "There is a distinct index placeholder type associated with each dimension of an array. The types are called firstIndex, secondIndex, thirdIndex, ..., tenthIndex, eleventhIndex." This is fine when all your objects have the same rank. But for example, the 4d version of my code (which thanks to your comments now works correctly), reads: // 4d version void mat_ten_inner0(Array<double,2>& M, Array<double,4>& T, Array<double,4>& U ) { firstIndex i1; secondIndex i2; thirdIndex i3; fourthIndex i4; fifthIndex j; U = sum(M(i1,j)*T(i2,i3,i4,j),j); } j has to be declared as a fifthIndex, even though nothing is 5-dimensional here. And i2,i3,i4 play the role of the 2nd, 3rd and 4th dimension for U, but one less each for T. So exactly what the semantics of these objects is, remains a bit of a mistery to me. I'd love to understand it, though, as they make the code an absolute joy to write (once it works ;) Many thanks again for your help. Regards, Fernando. |
From: Matthias Schillinger <matthias@tk...> - 2003-08-29 17:21:48
|
Hi Fernando, declare j as thirdIndex and it should work, I think. See also the user guide on page 57. Regards, Matthias > // 2d version > void mat_ten_inner0(Array<double,2>& M, > Array<double,2>& T, Array<double,2>& U ) { > firstIndex i0; > secondIndex j; > > secondIndex i1; > // We want for(i0,i1) U(i0,i1) = sum(...,j): j is the sum index > U = sum(M(i0,j)*T(i1,j),j); > } |
From: Fernando Perez <fperez@co...> - 2003-08-29 08:50:09
|
Hi all, the strange behavior I was seeing with the old Blitz code is still there, so I'd like to know if I am misusing the library in some way. I am trying to compute the product of a rank-2 array M with a rank-d array T, by summing over the 2nd index of M and the last one of T: U(i1,i2,...,id) = sum(M(i1,j)*T(i2,i3,...,id,j),j), or in tensor notation U = M T i1,i2,...,id i1,j i2,i3,...,j I had initially written code to do this by hand-rolling nested loops with preprocessor macros (I need d=1..6), but this is super-ugly. I later read the documentation, and found that Blitz supports essentially the above notation unchanged. So I wrote a new version using this, but it doesn't work correctly for d>1 (d=1 is ok). I'd like to know if I am misusing the library (case in which perhaps the docs need some clarification, b/c I read them fairly carefully many times), or if this is indeed a problem. The relevant part of my code is (showing d=1,2,3): // 1d version void mat_ten_inner0(Array<double,2>& M, Array<double,1>& T, Array<double,1>& U ) { firstIndex i0; secondIndex j; U = sum(M(i0,j)*T(j),j); } // 2d version void mat_ten_inner0(Array<double,2>& M, Array<double,2>& T, Array<double,2>& U ) { firstIndex i0; secondIndex j; secondIndex i1; // We want for(i0,i1) U(i0,i1) = sum(...,j): j is the sum index U = sum(M(i0,j)*T(i1,j),j); } // 3d version void mat_ten_inner0(Array<double,2>& M, Array<double,3>& T, Array<double,3>& U ) { firstIndex i0; secondIndex j; secondIndex i1; thirdIndex i2; // We want for(i0,i1,i2) U(i0,i1,i2) = sum(...) U = sum(M(i0,j)*T(i1,i2,j),j); } I can post a fully buildable test case if anyone wants to run it without having to write anything themselves. I made a debug build, and here are the results (a non-debug build gives incorrect results for d=2 and segfaults for d=3): planck[bug]> ./mtinner Rank 1 size 3500 dif 4.40307e-12 // Dif is the difference with hand loops [Blitz++] Precondition failure: Module /home/fperez/usr/local/blitz/include/blitz/array/eval.cc line 129 Assigned rank 1 expression to rank 2 array. mtinner: /home/fperez/usr/local/blitz/include/blitz/array/eval.cc:129: blitz::Array<T, N>& blitz::Array<T, N>::evaluate(T_expr, T_update) [with T_expr = blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprReduce<blitz::_bz_ArrayExpr<blitz::_bz_ArrayExprOp<blitz::_bz_ArrayExpr<blitz::ArrayIndexMapping<double, 2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0> >, blitz::_bz_ArrayExpr<blitz::ArrayIndexMapping<double, 2, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0> >, blitz::Multiply<double, double> > >, 1, blitz::ReduceSum<double, double> > >, T_update = blitz::_bz_update<double, double>, P_numtype = double, int N_rank = 2]: Assertion `0' failed. Abort Platform info: gcc 3.2.2, from a stock RedHat 9 install (x86). Blitz from today's CVS. I don't understand why it says that I'm assigning a rank 1 expression to a rank 2 array. It seems pretty clear to me that in the 2d case, there's 2 free indices (i0,i1), so the resulting expression should be rank 2. No? I'd very much appreciate any advice on this, as I'm rather new to C++ templates. Regards, Fernando. |
From: Fernando Perez <fperez@co...> - 2003-08-29 03:56:39
|
Hi all, I've been using blitz in the past, from a version included by Eric Jones in Sicpy's weave package (python support). He used a snapshot from 2000/12/13 for that. I decided to update to current CVS because I'm having some strange problems with that, and would rather not report a bug which has been fixed for 2 years :) Here come a few initial comments: 1. First, it might be a good idea to update the webpage http://www.oonumerics.org/blitz/download/ at the end, where it describes using cvs. Instead of ********* NOTE: The CVS repository is mainly intended for developers. It does not contain the configure script referred to in the Installation section in the User's Guide. You will need additional tools to generate it: be sure to have autoconf and automake installed and issue aclocal; autoheader; automake -a; autoconf in your favourite shell. ********* It should say: ********* NOTE:... be sure to have at least version 2.57 of autoconf and 1.7.6 of automake installed and issue autoreconf -vif in your favourite shell. You can then proceed with the usual ./configure;make;make install steps. ********* This would save those willing to use CVS a good deal of frustration and mailing list hunting (though truth be told, all the info _was_ in the archives, which is good). 2. The problem reported in http://www.oonumerics.org/MailArchives/blitz-support/msg00768.php is still present. It can, as was pointed in followups, be handled by adding the --disable-shared flag to ./configure. But it would be worth at least adding a note about it to the CVS instructions, if it is not reasonable to expect a fix soon. 3. After a successful build with the above caveats, I tried running the test suite, and it fails with: planck[blitz_cvs]> make check-testsuite [snip] Running test suite... Adnene-Ben-Abdallah-1 Adnene-Ben-Abdallah-2 arrayresize chris-jeffery-1 chris-jeffery-2 chris-jeffery-3 complex-test constarray contiguous copy ctors derrick-bass-1 derrick-bass-3 exprctor make[1]: *** [check-testsuite] Error 1 make[1]: Leaving directory `/home/fperez/usr/local/blitz_cvs/testsuite' make: *** [check-testsuite] Error 1 This is running on a stock RedHat 9.0 box, Pentium 4, 1 GB of RAM: planck[blitz_cvs]> gcc --version gcc (GCC) 3.2.2 20030222 (Red Hat Linux 3.2.2-5) planck[blitz_cvs]> uname -a Linux planck 2.4.20-8 #1 Thu Mar 13 17:54:28 EST 2003 i686 i686 i386 GNU/Linux With a make -n I got what it wanted to do and ran the same commands as a separate script. The problem is: ... exprctor ./test: line 6: 7823 Segmentation fault ( ./$prog >/dev/null 2>&1 ) exprctor is indeed segfaulting. If I remove it from the list of tests to run, the suite passes. Someone who knows the code might want to look into why exprctor is crashing. I'll be glad to provide more details if it's useful. Now I'm off to test the problems I was seeing, to find out if they are still there or not :) Best regards, Fernando. |
From: William Gallafent <william@ga...> - 2003-08-26 20:53:47
|
On Tue, 26 Aug 2003, Patrik wrote: > i even grepped through all the sources and I can't see a definition for a > unary minus operator anywhere... this is weird. And unless i'm completely > spacing now, I am using the current cvs code. so, this operator should > exist? Seems you're right. On closer inspection I too failed to find it! I suppose one is expected simply to subtract from 0 to change the sign of each element of a TinyVector. This compiles for me: #include <iostream> #include <blitz/tinyvec-et.h> int main (int argc, char* argv[]) { blitz::TinyVector<float, 3> myTV = 1; blitz::TinyVector<float, 3> anotherTV = 0 - myTV; std::cout << anotherTV << std::endl; } and produces the output 3 [ -1 -1 -1 ] Hope I haven't misunderstood, and you're actually trying to do something cleverer or more subtle than that! -- Bill Gallafent. |
From: Todd Veldhuizen <tveldhui@os...> - 2003-08-26 20:36:10
|
It does look like this is missing, I see this comment at the bottom of blitz/vecexpr.h: // NEEDS_WORK: implement operator- for Range, VectorPick, TinyVector Sorry about that, looks like I never got around to implementing those. As a kludge, "0-x" should work as well as "-x". Todd On Tue, 26 Aug 2003, Patrik wrote: > At 12:54 PM 8/26/2003 +0100, you wrote: > >On Thu, 21 Aug 2003, Patrik wrote: > > > > > I don't know if I've never tried this before, but it seems there is no > > unary > > > minus for TinyVector. Is there a reason for this? Or am I missing > > > something? > > > >I think you just need to: > > > >#include <blitz/tinyvec-et.h> > > > >to get these and all the other tinyvector operators. I think this isn't > >included automatically from tinyvec.h since it slows down compilation quite a > >bit (vecbops.cc, for example, is 17000 lines of templated operators!) > > well, trouble is that I am... > > i even grepped through all the sources and I can't see a definition for a > unary minus operator anywhere... this is weird. And unless i'm completely > spacing now, I am using the current cvs code. so, this operator should exist? > > /patrik > > > _______________________________________________ > Blitz-support mailing list > Blitz-support@... > http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > -- Todd Veldhuizen / tveldhui@... / Indiana University Computer Science |
From: Patrik <patrik@uc...> - 2003-08-26 20:20:57
|
At 12:54 PM 8/26/2003 +0100, you wrote: >On Thu, 21 Aug 2003, Patrik wrote: > > > I don't know if I've never tried this before, but it seems there is no > unary > > minus for TinyVector. Is there a reason for this? Or am I missing > > something? > >I think you just need to: > >#include <blitz/tinyvec-et.h> > >to get these and all the other tinyvector operators. I think this isn't >included automatically from tinyvec.h since it slows down compilation quite a >bit (vecbops.cc, for example, is 17000 lines of templated operators!) well, trouble is that I am... i even grepped through all the sources and I can't see a definition for a unary minus operator anywhere... this is weird. And unless i'm completely spacing now, I am using the current cvs code. so, this operator should exist? /patrik |
From: William Gallafent <william.gallafent@vi...> - 2003-08-26 13:53:14
|
On Thu, 21 Aug 2003, Patrik wrote: > I don't know if I've never tried this before, but it seems there is no unary > minus for TinyVector. Is there a reason for this? Or am I missing > something? I think you just need to: #include <blitz/tinyvec-et.h> to get these and all the other tinyvector operators. I think this isn't included automatically from tinyvec.h since it slows down compilation quite a bit (vecbops.cc, for example, is 17000 lines of templated operators!) -- Bill Gallafent. |
From: Patrik <patrik@uc...> - 2003-08-22 08:34:05
|
Hi everyone, I don't know if I've never tried this before, but it seems there is no unary minus for TinyVector. Is there a reason for this? Or am I missing something? Thanks, /Patrik |
From: Matthias Schillinger <matthias@tk...> - 2003-08-12 22:08:18
|
Hi, if I try to compile this small program with gcc-3.2 /******************************************/ #include <iostream> #include <complex> #include <blitz/array.h> using namespace blitz; typedef TinyVector< std::complex<double> ,2> cVector2D; int main() { cVector2D a( std::complex<double>(1.0,1.0), std::complex<double>(2.0,2.0)); cVector2D b; b=conj(a); return 0; }; /*****************************************/ I get the following error message: tinytest.cpp: In function `int main()': tinytest.cpp:11: cannot convert `cVector2D' to `__complex__ double' for argument `1' to `__complex__ double std::conj(__complex__ double)' For Arrays conj() works fine and following the blitz++ user guide it should also work for TinyVector. Thanks for any suggestions! Matthias |
From: Rob Lipshutz <rob_lipshutz@mi...> - 2003-08-07 04:19:43
|
Julian Thanks. I misspoke. I am using VS.NET. I will see if I can suppress them. Rob ----- Original Message ----- From: "Julian Cummings" <cummings@...> To: "Support list for Blitz++" <blitz-support@...> Sent: Wednesday, August 06, 2003 11:25 AM Subject: Re: [Blitz-support] Help with compiler warning > Hi Rob, > > I don't know if there is a compiler-specific flag that will disable > those warnings > for you. I remember seeing warnings like those back when I was still > trying > to use VSC++ 7. The newer MS compiler with VS .NET does not issue these > bogus warnings. But they are definitely harmless. > > Regards, Julian C. > > > Rob Lipshutz wrote: > > > I am getting the following error message when compiling in VS 7.0 - > > while it is warning and doesn't seem to affect what I am doing - it > > would be nice to avoid it. > > > > Any help would be appreciated > > > > -------------------------------------------------------------------------- ------------------------------------- > > > > D:\Documents and Settings\Rob\My Documents\My > > Project\blitz-0.6\blitz\vector.h(501) : warning C4521: > > 'blitz::Vector<P_numtype>' : multiple copy constructors specified with > > > > [ > > > > P_numtype=int > > > > ] > > > > D:\Documents and Settings\Rob\My Documents\My > > Project\blitz-0.6\blitz\vecpick.h(314) : see reference to class > > template instantiation 'blitz::Vector<P_numtype>' being compiled with > > > > [ > > > > P_numtype=int > > > > ] > > > > D:\Documents and Settings\Rob\My Documents\My > > Project\blitz-0.6\blitz\vecpick.h(315) : see reference to class > > template instantiation 'blitz::VectorPick<P_numtype>' being compiled > > > > -------------------------------------------------------------------------- -------------------------------------------------- > > > >------------------------------------------------------------------------ > > > >_______________________________________________ > >Blitz-support mailing list > >Blitz-support@... > >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > > > > > > -- > Dr. Julian C. Cummings E-mail: cummings@... > California Institute of Technology Phone: 626-395-2543 > 1200 E. California Blvd., Mail Code 158-79 Fax: 626-584-5917 > Pasadena, CA 91125 > > > > _______________________________________________ > Blitz-support mailing list > Blitz-support@... > http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > |
From: Julian Cummings <cummings@ca...> - 2003-08-06 20:25:22
|
Hi Rob, I don't know if there is a compiler-specific flag that will disable those warnings for you. I remember seeing warnings like those back when I was still trying to use VSC++ 7. The newer MS compiler with VS .NET does not issue these bogus warnings. But they are definitely harmless. Regards, Julian C. Rob Lipshutz wrote: > I am getting the following error message when compiling in VS 7.0 - > while it is warning and doesn't seem to affect what I am doing - it > would be nice to avoid it. > > Any help would be appreciated > > --------------------------------------------------------------------------------------------------------------- > > D:\Documents and Settings\Rob\My Documents\My > Project\blitz-0.6\blitz\vector.h(501) : warning C4521: > 'blitz::Vector<P_numtype>' : multiple copy constructors specified with > > [ > > P_numtype=int > > ] > > D:\Documents and Settings\Rob\My Documents\My > Project\blitz-0.6\blitz\vecpick.h(314) : see reference to class > template instantiation 'blitz::Vector<P_numtype>' being compiled with > > [ > > P_numtype=int > > ] > > D:\Documents and Settings\Rob\My Documents\My > Project\blitz-0.6\blitz\vecpick.h(315) : see reference to class > template instantiation 'blitz::VectorPick<P_numtype>' being compiled > > ---------------------------------------------------------------------------------------------------------------------------- > >------------------------------------------------------------------------ > >_______________________________________________ >Blitz-support mailing list >Blitz-support@... >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > > -- Dr. Julian C. Cummings E-mail: cummings@... California Institute of Technology Phone: 626-395-2543 1200 E. California Blvd., Mail Code 158-79 Fax: 626-584-5917 Pasadena, CA 91125 |
From: Jonathan Stickel <jjstickel@my...> - 2003-08-05 19:53:36
|
Thanks for suggestions! I was able to implement a sorting function by using a vector of pairs. It turns out that boolean operators on pairs operate on the first element, so I didn't need to define a class to do the sorting. I have attached the code below. It can sort the rows of any m x n Blitz array by the specified column. It would be trivial to modify the function to sort columns by specified row number. I wonder if there might be interest in making this a member function of the Array class? Regards, Jonathan /*Sort the rows of a 2D array by a single column (colNumb). The column to be sorted is copied to vector of pairs where the first pair element is the value and the second is the row index number. This pair vector is sorted by the values, and the the ordered indexes are used to reorder the table accordingly. Could also write functions to sort the columns (and even pages of 3D arrays). */ template <class Type> void sortRows(Array<Type,2> & table, const int colNumb) { int i, j, m=table.rows(), n=table.columns(); vector< pair<Type,int> > valIndPair(m); for (i=0; i<m; ++i) { valIndPair[i].first = table(i,colNumb); valIndPair[i].second=i; } sort(valIndPair.begin(), valIndPair.end()); Array<Type,1> colReord(m); for (j=0; j<n; ++j) { if (j==colNumb) for (i=0; i<m; ++i) table(i,j)=valIndPair[i].first; else { colReord=table(rAll,j); for (i=0; i<m; ++i) table(i,j) = colReord(valIndPair[i].second); } } } |
From: Julian C. Cummings <cummings@ca...> - 2003-08-05 03:02:32
|
Hello Heberto, A lot of these warnings about unused parameters and so forth have been cleaned up in the current blitz code base that is available by anonymous cvs. Please try checking out blitz from the cvs repository and installing it, and then send another message if you continue to see lots of compiler warnings. Clearly, it has been too long since we last created a tarball of the blitz distribution. I will try to address that soon. By the way, you would need reasonably current versions of the GNU autoconf, automake and libtool packages in order to configure the repository version of blitz. Regards, Julian C. Dr. Julian C. Cummings Staff Scientist, CACR/Caltech (626) 395-2543 cummings@... > -----Original Message----- > From: blitz-support-bounces@... > [mailto:blitz-support-bounces@...] On Behalf Of > Heberto del Rio > Sent: Monday, August 04, 2003 3:22 PM > To: blitz-support@... > Subject: [Blitz-support] Too many warnings... > > > Hi, I have just downloaded and installed blitz-0.6 to my > computer, it is > running. Although I have a question: > > Every time that I try to input values into the arrays, my > compiler produces > plenty of WARNINGS, I have tried everything but I cannot get > rid of them. > > blits is intalled into the following directories: > > /usr/include/blitz > /usr/include/random > and > /usr/lib > > I have used the following to compile: -lblitz > > the program is the following: > > > #ifdef HAVE_CONFIG_H > #include <config.h> > #endif > > #include <iostream> > #include <stdlib.h> > > #include <blitz/array.h> > > using namespace blitz; > > int main(void) > { > cout << "Hello, World!" << endl; > > > int n = 10; > Array<double, 1> A(n); > A=0; > cout<< A <<endl; > return 1; > } > > As you can see this is a really very easy program. I have > included the > output of the compilation > > I hope someone can help me to figure out how to fix it. > > Heberto > > > +------------------------------------------------------------- > -------------+ > | > | > | I am in the process of changing ISP, therefore my email > address will | > | > | > | change too. Please use the following email address in the > future: | > | > | > | hebertodelrio@... > | > | > > | | > +------------------------------------------------------------- > -------------+ > |
From: Heberto del Rio <hebertodelrio@fa...> - 2003-08-05 00:22:32
|
Hi, I have just downloaded and installed blitz-0.6 to my computer, it is running. Although I have a question: Every time that I try to input values into the arrays, my compiler produces plenty of WARNINGS, I have tried everything but I cannot get rid of them. blits is intalled into the following directories: /usr/include/blitz /usr/include/random and /usr/lib I have used the following to compile: -lblitz the program is the following: #ifdef HAVE_CONFIG_H #include <config.h> #endif #include <iostream> #include <stdlib.h> #include <blitz/array.h> using namespace blitz; int main(void) { cout << "Hello, World!" << endl; int n = 10; Array<double, 1> A(n); A=0; cout<< A <<endl; return 1; } As you can see this is a really very easy program. I have included the output of the compilation I hope someone can help me to figure out how to fix it. Heberto +--------------------------------------------------------------------------+ | | | I am in the process of changing ISP, therefore my email address will | | | | change too. Please use the following email address in the future: | | | | hebertodelrio@... | | | +--------------------------------------------------------------------------+ |
From: Patrik <patrik@uc...> - 2003-08-04 04:00:56
|
(I apologize for the previous message that Eudora decided to send before I had even started typing it... ;-) I managed to get one step further in building my cvs snapshot, by making the following change to the configure.in: diff -r1.29 configure.in 248a249 > LDFLAGS="-XCClinker -q64" The output now looks like this: /bin/sh ../libtool --mode=link KCC -q64 --restrict --longlong --strict_warnings -XCClinker -q64 -o libblitz.la -rpath /u7/patrik/lib64 globals.lo -lm rm -fr .libs/libblitz.exp .libs/libblitz.so.0 generating symbol list for `libblitz.la' /usr/common/usg/gnu/bin/nm -B -Bpg .libs/globals.o | awk '{ if ((($2 == "T") || ($2 == "D") || ($2 == "B")) && (substr($3,1,1) != ".")) { print $3 } }' | sort -u > .libs/libblitz.exp /usr/common/usg/gnu/bin/nm: .libs/globals.o: File format not recognized KCC -Wl,-bM:SRE -o .libs/libblitz.so.0 .libs/globals.o -lm -lc -q64 -Wl,-bE:.libs/libblitz.exp -Wl,-bnoentry ${wl}-berok $(CXX) -q64 -o .libs/libblitz.a .libs/libblitz.so.0 ../libtool[4137]: CXX: not found ../libtool[4137]: -q64: not found make[1]: *** [libblitz.la] Error 127 I don't know what's going on now. CXX is certainly set to KCC in the Makefile. It looks like libtool is actually trying to invoke "$(cxx)" literally? Moreover, if I try to help libtool out with this step by doing what I assume it wants to, the following happens: [37] patrik@...% KCC -q64 -o .libs/libblitz.a .libs/libblitz.so.0 KCC: Option .libs/libblitz.so.0 not recognized. Apparently, the ".0" suffix on the file confuses KCC. Anyone have any idea what the @<#@& problem is?? I'm getting pretty frustrated with this "portable" way of building the library, when a simple "KCC -o libblitz.a globals.o" would do it and I would have had time to type that many thousands of times in the time I've spent trying to get this to work... :-( Regards, /Patrik At 10:43 PM 8/1/2003 -0700, you wrote: >Thanks to Julian and Frank who helped me with the autoreconf problem! Now >I have another one. I'm doing > >./configure --with-cxx=KCC --enable-64bit --libdir=/u7/patrik/lib64 >--includedir=/u7/patrik/include > >and the making fails with: > >/usr/common/usg/gnu/bin/nm: .libs/globals.o: File format not recognized >KCC -bM:SRE -o .libs/libblitz.so.0 .libs/globals.o -lm >-lc -bE:.libs/libblitz.exp -bnoentry ${wl}-berok >dump: .libs/globals.o: 0654-108 file is not valid in the current object >file mode. > Use the -X option to specify the desired object mode. >ld: 0711-736 ERROR: Input file .libs/globals.o: > XCOFF64 object files are not allowed in 32-bit mode. > >This is what happens when the "-q64" flag is not specified for the linking >invocation of KCC. Can anyone tell me what the problem is this time? (I >believe what I did before was just create libblitz.a from globals.o by >hand, but it's sort of defies the entire idea of this super fancy build >system... ;-) > >Thanks, > >/Patrik > >At 01:47 PM 8/1/2003 +0200, you wrote: >>It seems to me that aclocal does not find libtool. >>Do you have libtool installed? >> >>If you do, aclocal does not find the file `libtool.m4' which defines >>`AC_PROG_LIBTOOL' in its m4 directory. Try `aclocal --print-ac-dir' >>and symlink or copy `libtool.m4' there or use the -I option of aclocal. >> >>-Frank >>_______________________________________________ >>Blitz-support mailing list >>Blitz-support@... >>http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > > >_______________________________________________ >Blitz-support mailing list >Blitz-support@... >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support |
From: Patrik <patrik@uc...> - 2003-08-04 03:45:42
|
At 10:43 PM 8/1/2003 -0700, you wrote: >Thanks to Julian and Frank who helped me with the autoreconf problem! Now >I have another one. I'm doing > >./configure --with-cxx=KCC --enable-64bit --libdir=/u7/patrik/lib64 >--includedir=/u7/patrik/include > >and the making fails with: > >/usr/common/usg/gnu/bin/nm: .libs/globals.o: File format not recognized >KCC -bM:SRE -o .libs/libblitz.so.0 .libs/globals.o -lm >-lc -bE:.libs/libblitz.exp -bnoentry ${wl}-berok >dump: .libs/globals.o: 0654-108 file is not valid in the current object >file mode. > Use the -X option to specify the desired object mode. >ld: 0711-736 ERROR: Input file .libs/globals.o: > XCOFF64 object files are not allowed in 32-bit mode. > >This is what happens when the "-q64" flag is not specified for the linking >invocation of KCC. Can anyone tell me what the problem is this time? (I >believe what I did before was just create libblitz.a from globals.o by >hand, but it's sort of defies the entire idea of this super fancy build >system... ;-) > >Thanks, > >/Patrik > >At 01:47 PM 8/1/2003 +0200, you wrote: >>It seems to me that aclocal does not find libtool. >>Do you have libtool installed? >> >>If you do, aclocal does not find the file `libtool.m4' which defines >>`AC_PROG_LIBTOOL' in its m4 directory. Try `aclocal --print-ac-dir' >>and symlink or copy `libtool.m4' there or use the -I option of aclocal. >> >>-Frank >>_______________________________________________ >>Blitz-support mailing list >>Blitz-support@... >>http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support > > >_______________________________________________ >Blitz-support mailing list >Blitz-support@... >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support |
From: Rob Lipshutz <rob_lipshutz@mi...> - 2003-08-03 00:21:41
|
I am getting the following error message when compiling in VS 7.0 - = while it is warning and doesn't seem to affect what I am doing - it = would be nice to avoid it. Any help would be appreciated -------------------------------------------------------------------------= -------------------------------------- D:\Documents and Settings\Rob\My Documents\My = Project\blitz-0.6\blitz\vector.h(501) : warning C4521: = 'blitz::Vector<P_numtype>' : multiple copy constructors specified with [ P_numtype=3Dint ] D:\Documents and Settings\Rob\My Documents\My = Project\blitz-0.6\blitz\vecpick.h(314) : see reference to class template = instantiation 'blitz::Vector<P_numtype>' being compiled with [ P_numtype=3Dint ] D:\Documents and Settings\Rob\My Documents\My = Project\blitz-0.6\blitz\vecpick.h(315) : see reference to class template = instantiation 'blitz::VectorPick<P_numtype>' being compiled -------------------------------------------------------------------------= --------------------------------------------------- |
From: Patrik <patrik@uc...> - 2003-08-02 07:44:11
|
Thanks to Julian and Frank who helped me with the autoreconf problem! Now I have another one. I'm doing ./configure --with-cxx=KCC --enable-64bit --libdir=/u7/patrik/lib64 --includedir=/u7/patrik/include and the making fails with: /usr/common/usg/gnu/bin/nm: .libs/globals.o: File format not recognized KCC -bM:SRE -o .libs/libblitz.so.0 .libs/globals.o -lm -lc -bE:.libs/libblitz.exp -bnoentry ${wl}-berok dump: .libs/globals.o: 0654-108 file is not valid in the current object file mode. Use the -X option to specify the desired object mode. ld: 0711-736 ERROR: Input file .libs/globals.o: XCOFF64 object files are not allowed in 32-bit mode. This is what happens when the "-q64" flag is not specified for the linking invocation of KCC. Can anyone tell me what the problem is this time? (I believe what I did before was just create libblitz.a from globals.o by hand, but it's sort of defies the entire idea of this super fancy build system... ;-) Thanks, /Patrik At 01:47 PM 8/1/2003 +0200, you wrote: >It seems to me that aclocal does not find libtool. >Do you have libtool installed? > >If you do, aclocal does not find the file `libtool.m4' which defines >`AC_PROG_LIBTOOL' in its m4 directory. Try `aclocal --print-ac-dir' >and symlink or copy `libtool.m4' there or use the -I option of aclocal. > >-Frank >_______________________________________________ >Blitz-support mailing list >Blitz-support@... >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support |
From: Frank Schimmel <schimmel@dk...> - 2003-08-01 13:47:43
|
It seems to me that aclocal does not find libtool. Do you have libtool installed? If you do, aclocal does not find the file `libtool.m4' which defines `AC_PROG_LIBTOOL' in its m4 directory. Try `aclocal --print-ac-dir' and symlink or copy `libtool.m4' there or use the -I option of aclocal. -Frank |
From: Patrik <patrik@uc...> - 2003-08-01 09:34:36
|
hi Jonathan, I think the way I would do it would be to define the data points as a "class point : private std::pair < double, double >", and define operator< for this class to operate on the x-value. That way, you can sort a vector of these objects the same way as below, like Sort (points .begin (), points.end ()), and your y values will just tag along for the ride. There might be efficiency impacts using this type to do the interpolation, so it's probably best to convert this to 2 blitz arrays before starting to interpolate (if performance is critical). Maybe someone can come up with an even fancier solution? ;-) Good luck, /Patrik At 04:59 PM 7/31/2003 -0700, you wrote: >Hi > >I am relatively new to Blitz++ (and c++ programming in general), but I am >very impressed. I have recently translated a good deal of my own Matlab >code to c++ by using Blitz arrays. > >I would like to interpolate within a set of data points given by >one-dimensional arrays (e.g. x and y for 1D interpolation) to find a value >at an arbitrary point within the range of the data. Not being able to >find an existing function to do this, I planned to write a simple linear >interpolation function. However, I am stuck at sorting the data >points. Essentially, I need to sort x from least to greatest and then >reorder y so that there is 1-1 correspondence with the original data points. > >I can sort x by: > >sort( &x(0), &x(x.size())+1); > >but I am at a loss at how to reorder y accordingly. Other than writing a >sorting function from scratch, the methods I can think of would be >extremely inefficient (O(N^2)). Does anyone have a suggestion? > >Regards, >Jonathan > >_______________________________________________ >Blitz-support mailing list >Blitz-support@... >http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support |
From: Bob Uva <bobu21@co...> - 2003-08-01 05:34:44
|
You can create a Point object that contains both the x and y coordinates, and then have a comparison function in the form of an overloaded less than (<) operator. The sort function will use that 'less-than' operator function to do the comparison. You said that you're new to c++ as well. If you don't know how to write an overloaded operator member function, you can find good tutorials in many elementary c++ texts. I strongly suggest going through an elementary text before attempting any serious c++ programming. -Bob -----Original Message----- From: blitz-support-bounces@... [mailto:blitz-support-bounces@...]On Behalf Of Jonathan Stickel Sent: Thursday, July 31, 2003 5:00 PM To: blitz-support@... Subject: [Blitz-support] interpolation / sorting multidimensional arrays Hi I am relatively new to Blitz++ (and c++ programming in general), but I am very impressed. I have recently translated a good deal of my own Matlab code to c++ by using Blitz arrays. I would like to interpolate within a set of data points given by one-dimensional arrays (e.g. x and y for 1D interpolation) to find a value at an arbitrary point within the range of the data. Not being able to find an existing function to do this, I planned to write a simple linear interpolation function. However, I am stuck at sorting the data points. Essentially, I need to sort x from least to greatest and then reorder y so that there is 1-1 correspondence with the original data points. I can sort x by: sort( &x(0), &x(x.size())+1); but I am at a loss at how to reorder y accordingly. Other than writing a sorting function from scratch, the methods I can think of would be extremely inefficient (O(N^2)). Does anyone have a suggestion? Regards, Jonathan _______________________________________________ Blitz-support mailing list Blitz-support@... http://www.oonumerics.org/mailman/listinfo.cgi/blitz-support |
From: Jonathan Stickel <jjstickel@my...> - 2003-08-01 01:59:46
|
Hi I am relatively new to Blitz++ (and c++ programming in general), but I am very impressed. I have recently translated a good deal of my own Matlab code to c++ by using Blitz arrays. I would like to interpolate within a set of data points given by one-dimensional arrays (e.g. x and y for 1D interpolation) to find a value at an arbitrary point within the range of the data. Not being able to find an existing function to do this, I planned to write a simple linear interpolation function. However, I am stuck at sorting the data points. Essentially, I need to sort x from least to greatest and then reorder y so that there is 1-1 correspondence with the original data points. I can sort x by: sort( &x(0), &x(x.size())+1); but I am at a loss at how to reorder y accordingly. Other than writing a sorting function from scratch, the methods I can think of would be extremely inefficient (O(N^2)). Does anyone have a suggestion? Regards, Jonathan |