* Ann: Mathpaqs, release Feb. 2011 @ 2011-02-21 18:43 Gautier write-only 2011-02-21 23:59 ` Nasser M. Abbasi 0 siblings, 1 reply; 18+ messages in thread From: Gautier write-only @ 2011-02-21 18:43 UTC (permalink / raw) Hello, There is a new release of Mathpaqs @ http://sf.net/projects/mathpaqs/ . What's new: - *new* Discrete_random_simulation package (this is for simulating any discrete random distribution) - updated the Finite_distributed_random function (this is for simulating a random distribution for an enumerated type) - cleanup of ConjGrad (Conjugate gradient iterative methods for solving the matrix equation Ax=b) ______________________________________________________________ Gautier's Ada programming -- http://gautiersblog.blogspot.com/ NB: follow the above link for a working e-mail address ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-21 18:43 Ann: Mathpaqs, release Feb. 2011 Gautier write-only @ 2011-02-21 23:59 ` Nasser M. Abbasi 2011-02-22 2:34 ` Gautier write-only 0 siblings, 1 reply; 18+ messages in thread From: Nasser M. Abbasi @ 2011-02-21 23:59 UTC (permalink / raw) On 2/21/2011 10:43 AM, Gautier write-only wrote: > Hello, > > There is a new release of Mathpaqs @ http://sf.net/projects/mathpaqs/ > . > > What's new: > > - *new* Discrete_random_simulation package (this is for simulating any > discrete random distribution) > - updated the Finite_distributed_random function (this is for > simulating a random distribution for an enumerated type) > - cleanup of ConjGrad (Conjugate gradient iterative methods for > solving the matrix equation Ax=b) > Thanks Gautier, I do not use Ada now, but I was looking at your ConjGrad solver, and was just wondering, why new Matrix and Vectors are defined in that package, since with Ada now, there exist such types now? For example, in ConjGrad.ads it says type Vector is array(Index range <>) of Real type Any_matrix (<>) is private; -- NB: 2 syntaxes for instanciating that as unconstrained type : -- [Ada 95+] type Any_matrix (<>) is private; -- [Ada 83] type Any_matrix is private; But when I look at Ada 2005, http://www.adaic.org/resources/add_content/standards/05rat/html/Rat-7-6.html "Ada 2005 includes two new packages which are Ada.Numerics.Generic_Real_Arrays and Ada.Numerics.Generic_Complex_Arrays. type Real_Vector is array (Integer range <>) of Real'Base; type Real_Matrix is array (Integer range <>, Integer range <>) of Real'Base; " So, was just wondering the reasoning, to learn something, that's all. I wrote a conjugate gradient solver myself for a HW, with preconditioning in Matlab, and I saw your post, so wanted to see how it would 'look' in Ada. thanks --Nasser ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-21 23:59 ` Nasser M. Abbasi @ 2011-02-22 2:34 ` Gautier write-only 2011-02-22 9:56 ` Nasser M. Abbasi 0 siblings, 1 reply; 18+ messages in thread From: Gautier write-only @ 2011-02-22 2:34 UTC (permalink / raw) On 22 fév, 00:59, "Nasser M. Abbasi" <n...@12000.org> wrote: > I do not use Ada now, but I was looking at your ConjGrad solver, > and was just wondering, why new Matrix and Vectors are > defined in that package, since with Ada now, there exist > such types now? > > For example, in ConjGrad.ads it says > > type Vector is array(Index range <>) of Real > > type Any_matrix (<>) is private; These types are *not* defined in the package (since they appear before the keyword "package" :-) ). They are imported as generic parameters. So you can use whatever vector and matrix types, including Ada 2005's Real_Vector and Real_Matrix. So I guess the next question would be: why not using Real_Vector and Real_Matrix by default ? My answer would be: - you can use the package also with an Ada 95 compiler, even one which doesn't yet has been extended with the new 2005 math packages - more important: you can use non-trivial matrix types, like band matrices or sparse matrices. Consider the example here: http://www.youtube.com/watch?v=_NIZmYd8oUw The mesh is 220x220 points, which is still probably a "toy" size for finite element problems. But you have then 220*220=48,400 dimensions and then 48400*48400=2,342,560,000 cells in a matrix like Real_Matrix, which makes around 16 GB in storage with double precision! Even if you have enough RAM on your computer, the solver might run very slowly because of poor CPU cache-ing (and perhaps also because of the 2 billion multiplications and additions for each iteration!). A sparse matrix storage takes a few MB instead. Regards Gautier ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 2:34 ` Gautier write-only @ 2011-02-22 9:56 ` Nasser M. Abbasi 2011-02-22 10:27 ` Dmitry A. Kazakov 2011-02-22 17:21 ` Gautier write-only 0 siblings, 2 replies; 18+ messages in thread From: Nasser M. Abbasi @ 2011-02-22 9:56 UTC (permalink / raw) On 2/21/2011 6:34 PM, Gautier write-only wrote: > > So I guess the next question would be: why not using Real_Vector and > Real_Matrix by default ? My answer would be: > - you can use the package also with an Ada 95 compiler, even one which > doesn't yet has been extended with the new 2005 math packages OK, makes sense. > - more important: you can use non-trivial matrix types, like band > matrices or sparse matrices. > What packages or binding to which library should one use in Ada to use sparse matrices? In Matlab, almost all build-in functions that work with normal matrices, also work as in with sparse matrices. Makes life very easy. To solve Ax=b, even when A is sparse, one can still write A\b. Is it possible to do something like this in Ada? There are number of sparse libraries out there, but googling around, do not see an Ada binding at this time. I think Ada is much behind when it comes to ready to use functions and libraries for computational science. Too bad, since the language itself is probably the best for this sort of thing. thanks, --Nasser ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 9:56 ` Nasser M. Abbasi @ 2011-02-22 10:27 ` Dmitry A. Kazakov 2011-02-22 10:40 ` Nasser M. Abbasi 2011-02-22 17:21 ` Gautier write-only 1 sibling, 1 reply; 18+ messages in thread From: Dmitry A. Kazakov @ 2011-02-22 10:27 UTC (permalink / raw) On Tue, 22 Feb 2011 01:56:30 -0800, Nasser M. Abbasi wrote: > What packages or binding to which library should one use in Ada > to use sparse matrices? That depends on the type of sparseness, I guess. > In Matlab, almost all build-in functions that work with normal matrices, > also work as in with sparse matrices. Makes life very easy. > > To solve Ax=b, even when A is sparse, one can still write A\b. I don't understand the problem here. You can define a function function "/" (Left : My_Sparse_Matrix; Right : Vector) return Vector; It is not very common because solver usually returns some additional valuable information, which gets lost when the solver is wrapped into a function. > Is it possible to do something like this in Ada? There are number > of sparse libraries out there, but googling around, do not see > an Ada binding at this time. Do you see MATLAB bindings instead? You seem comparing MATLAB libraries with non-Ada ones. BTW, writing MATLAB bindings is much more complicated than doing Ada bindings. -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 10:27 ` Dmitry A. Kazakov @ 2011-02-22 10:40 ` Nasser M. Abbasi 2011-02-22 11:33 ` Dmitry A. Kazakov 2011-02-22 17:35 ` Simon Wright 0 siblings, 2 replies; 18+ messages in thread From: Nasser M. Abbasi @ 2011-02-22 10:40 UTC (permalink / raw) On 2/22/2011 2:27 AM, Dmitry A. Kazakov wrote: > >> Is it possible to do something like this in Ada? There are number >> of sparse libraries out there, but googling around, do not see >> an Ada binding at this time. > > Do you see MATLAB bindings instead? You seem comparing MATLAB libraries > with non-Ada ones. > I was really asking a simple question :) In Ada, how can one work with sparse matrices? Say I want to make Ax=b, where A is sparse, and solve for x. How would you do that in Ada 2005? What libraries/bindings etc... does one need to use. Using Sparse matrices is so common in matlab world, since it is build-in, and I was just giving an example, that is all. thanks, --Nasser ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 10:40 ` Nasser M. Abbasi @ 2011-02-22 11:33 ` Dmitry A. Kazakov 2011-02-22 20:45 ` Nasser M. Abbasi 2011-02-22 17:35 ` Simon Wright 1 sibling, 1 reply; 18+ messages in thread From: Dmitry A. Kazakov @ 2011-02-22 11:33 UTC (permalink / raw) On Tue, 22 Feb 2011 02:40:17 -0800, Nasser M. Abbasi wrote: > On 2/22/2011 2:27 AM, Dmitry A. Kazakov wrote: > >>> Is it possible to do something like this in Ada? There are number >>> of sparse libraries out there, but googling around, do not see >>> an Ada binding at this time. > >> Do you see MATLAB bindings instead? You seem comparing MATLAB libraries >> with non-Ada ones. > > I was really asking a simple question :) It is not a simple question, or I didn't understand you. Sparse matrices is a huge research area with an uncounted number of algorithms and their implementations. > In Ada, how can one work with sparse matrices? Say I want to make Ax=b, > where A is sparse, and solve for x. Ax=b is an equation. Both Ada and MATLAB are imperative languages, you cannot "make" equations there. > How would you do that in Ada 2005? What libraries/bindings etc... does > one need to use. Whatever library that solves the problem of this class with the required size and accuracy. Either you find a library or write it by yourself. That has little to do with the language. Except that it would be difficult to implement anything efficiently in MATLAB. MATLAB plug-ins are normally written not in MATLAB itself. > Using Sparse matrices is so common in matlab world, since it is build-in, > and I was just giving an example, that is all. Sparse matrices are impossible to build in. It is only possible to do certain categories of sparse matrices. I don't know which ones MATLAB has. Are you asking why Ada does not include them in the standard library? -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 11:33 ` Dmitry A. Kazakov @ 2011-02-22 20:45 ` Nasser M. Abbasi 2011-02-22 21:03 ` Dmitry A. Kazakov 2011-02-23 14:38 ` Simon Wright 0 siblings, 2 replies; 18+ messages in thread From: Nasser M. Abbasi @ 2011-02-22 20:45 UTC (permalink / raw) On 2/22/2011 3:33 AM, Dmitry A. Kazakov wrote: > Are you asking why Ada does not include them in the standard library? > My question is the same, a very simple user question, I will repeat it again: What do I need to do to solve Ax=b in Ada, with A being sparse matrix. If no one has done this before in Ada, that is fine. I am just asking. The format of the sparse is not important, the package used is not important. I am just asking if the tools, the bindings, the library, or whatever, is there now, today, to do this in Ada. It is really a simple question :) --Nasser ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 20:45 ` Nasser M. Abbasi @ 2011-02-22 21:03 ` Dmitry A. Kazakov 2011-02-23 14:38 ` Simon Wright 1 sibling, 0 replies; 18+ messages in thread From: Dmitry A. Kazakov @ 2011-02-22 21:03 UTC (permalink / raw) On Tue, 22 Feb 2011 12:45:05 -0800, Nasser M. Abbasi wrote: > On 2/22/2011 3:33 AM, Dmitry A. Kazakov wrote: > >> Are you asking why Ada does not include them in the standard library? > > My question is the same, a very simple user question, I will repeat it again: > > What do I need to do to solve Ax=b in Ada, with A being sparse matrix. > > If no one has done this before in Ada, that is fine. I am just asking. > > The format of the sparse is not important, the package used is not > important. Then I choose diagonal matrices, which is sparse of course. The answer is x(I) = b(I) / A (I ,I) > I am just asking if the tools, the bindings, the > library, or whatever, is there now, today, to do this in Ada. > > It is really a simple question :) Simple question simple answer! (:-)) -- Regards, Dmitry A. Kazakov http://www.dmitry-kazakov.de ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 20:45 ` Nasser M. Abbasi 2011-02-22 21:03 ` Dmitry A. Kazakov @ 2011-02-23 14:38 ` Simon Wright 2011-02-24 9:51 ` comp.lang.php 1 sibling, 1 reply; 18+ messages in thread From: Simon Wright @ 2011-02-23 14:38 UTC (permalink / raw) "Nasser M. Abbasi" <nma@12000.org> writes: > On 2/22/2011 3:33 AM, Dmitry A. Kazakov wrote: > >> Are you asking why Ada does not include them in the standard library? >> > > My question is the same, a very simple user question, I will repeat it again: > > What do I need to do to solve Ax=b in Ada, with A being sparse matrix. > > If no one has done this before in Ada, that is fine. I am just asking. > > The format of the sparse is not important, the package used is not > important. I am just asking if the tools, the bindings, the > library, or whatever, is there now, today, to do this in Ada. > > It is really a simple question :) I'm pretty sure the answer is -- there is no Ada binding to do what you want. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-23 14:38 ` Simon Wright @ 2011-02-24 9:51 ` comp.lang.php 2011-02-25 21:09 ` Simon Wright 0 siblings, 1 reply; 18+ messages in thread From: comp.lang.php @ 2011-02-24 9:51 UTC (permalink / raw) On Feb 23, 2:38 pm, Simon Wright <si...@pushface.org> wrote: > "Nasser M. Abbasi" <n...@12000.org> writes: > > > > > > > > > > > On 2/22/2011 3:33 AM, Dmitry A. Kazakov wrote: > > >> Are you asking why Ada does not include them in the standard library? > > > My question is the same, a very simple user question, I will repeat it again: > > > What do I need to do to solve Ax=b in Ada, with A being sparse matrix. > > > If no one has done this before in Ada, that is fine. I am just asking. > > > The format of the sparse is not important, the package used is not > > important. I am just asking if the tools, the bindings, the > > library, or whatever, is there now, today, to do this in Ada. > > > It is really a simple question :) > > I'm pretty sure the answer is -- there is no Ada binding to do what you > want. A sparse matrix is one whose elements are mostly zero. Hence, the designer of code for such problems needs to avoid the store of zero terms and silly operations such as 0 + 0*0. The matrix can be stored in several ways. We can instantiate the package Ada.Containers.Ordered_Maps with the index as key_type, the chosen real type as element_type or use the compact row storage formula (or variants) of Saad. The first way gives a dynamic data structure the latter a bounded one. To solve linear equations directly by Gaussian elimination the problem is "fill in" where zeros become nonzeros. Reordering the rows and columns can help considerably. Modern methods try to work with blocks of dense matrices in order to exploit level 3 blas operations. A good method is UMFPACK http://www.cise.ufl.edu/research/sparse/umfpack/ , it is written in C and Ada bindings are possible. I have worked with sparse matrices in my finite element codes written in Ada. I have a crude binding to UMFPACK that needs tidying before public release. I have not used the gnat tool to generate automatic bindings yet. It would be very useful if it could be added to GPS and appear in a menu. Ken Thomas ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-24 9:51 ` comp.lang.php @ 2011-02-25 21:09 ` Simon Wright 2011-02-26 0:21 ` Nasser M. Abbasi 0 siblings, 1 reply; 18+ messages in thread From: Simon Wright @ 2011-02-25 21:09 UTC (permalink / raw) "comp.lang.php" <kst@ecs.soton.ac.uk> writes: > A good method is UMFPACK > http://www.cise.ufl.edu/research/sparse/umfpack/ , it is written in C > and Ada bindings are possible. Very interesting. I'm wondering whether -- in the spirit of competition -- to have a go at including a binding in Ada 2005 Math extensions, even though it's somewhat outside the scope as I'd seen it. I can see a problem writing a general binding for code like this (umf_solve.h): GLOBAL Int UMF_solve ( Int sys, const Int Ap [ ], const Int Ai [ ], const double Ax [ ], double Xx [ ], const double Bx [ ], #ifdef COMPLEX const double Az [ ], double Xz [ ], const double Bz [ ], #endif NumericType *Numeric, Int irstep, double Info [UMFPACK_INFO], Int Pattern [ ], double SolveWork [ ] ) ; ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-25 21:09 ` Simon Wright @ 2011-02-26 0:21 ` Nasser M. Abbasi 2011-02-26 7:53 ` Simon Wright 2011-02-26 18:38 ` Gautier write-only 0 siblings, 2 replies; 18+ messages in thread From: Nasser M. Abbasi @ 2011-02-26 0:21 UTC (permalink / raw) On 2/25/2011 1:09 PM, Simon Wright wrote: > "comp.lang.php"<kst@ecs.soton.ac.uk> writes: > >> A good method is UMFPACK >> http://www.cise.ufl.edu/research/sparse/umfpack/ , it is written in C >> and Ada bindings are possible. > > Very interesting. > > I'm wondering whether -- in the spirit of competition -- to have a go at > including a binding in Ada 2005 Math extensions, even though it's > somewhat outside the scope as I'd seen it. > > I can see a problem writing a general binding for code like this > (umf_solve.h): > > GLOBAL Int UMF_solve > ( > Int sys, > const Int Ap [ ], > const Int Ai [ ], > const double Ax [ ], > double Xx [ ], > const double Bx [ ], > #ifdef COMPLEX > const double Az [ ], > double Xz [ ], > const double Bz [ ], > #endif > NumericType *Numeric, > Int irstep, > double Info [UMFPACK_INFO], > Int Pattern [ ], > double SolveWork [ ] > ) ; Someone more skilled than me, and with time, can probably implement the whole thing in just Ada (the matrix storage, and the solver). There are few standard formats for sparse storage that are known, wiki describes them, here I found an intel page which also describes storage in more details http://software.intel.com/sites/products/documentation/hpc/mkl/webhelp/appendices/mkl_appA_SMSF.html <RANT/> Ada is good language, but what is important, is not how good the language is, but what you can do with it. I'd love to use Ada for my numerical projects at school, but every time I try, I find it is missing things I need, so I give up, and go back to using other systems, even though those do not produce robust software as would be with Ada, but at least, I can get the HW done with them, even if it takes longer to debug things. Looking at many languages out there, they all now have huge amount of numerical libraries now, all written in that language: Java, Python, C/C++, Fortran, etc... I am actually now thinking of using Java for numerical work. At least Java is closer to Ada in terms of having a better typing system than say C/C++ family. The New modern Fortran looks to me so messed up and convoluted. They threw so many things to it, they broke it. When it comes to Ada, which is probably the best language to write large numerical software in due to its strong typing and robustness, there is so little numerical software and libraries for it. </END RANT> --Nasser ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-26 0:21 ` Nasser M. Abbasi @ 2011-02-26 7:53 ` Simon Wright 2011-02-26 18:38 ` Gautier write-only 1 sibling, 0 replies; 18+ messages in thread From: Simon Wright @ 2011-02-26 7:53 UTC (permalink / raw) "Nasser M. Abbasi" <nma@12000.org> writes: > Someone more skilled than me, and with time, can probably implement > the whole thing in just Ada (the matrix storage, and the solver). They also have to have a reason to do it. Sometimes that's the need to pay the rent, sometimes the need to get a problem solved, sometimes the technical challenge. For you it would be the second, for me it would have to be the third. > <RANT/> > </END RANT> That should have been <RANT> </RANT> ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-26 0:21 ` Nasser M. Abbasi 2011-02-26 7:53 ` Simon Wright @ 2011-02-26 18:38 ` Gautier write-only 2011-02-26 20:59 ` Simon Wright 1 sibling, 1 reply; 18+ messages in thread From: Gautier write-only @ 2011-02-26 18:38 UTC (permalink / raw) On 26 fév, 01:21, "Nasser M. Abbasi" <n...@12000.org> wrote: > Someone more skilled than me, and with time, can probably implement > the whole thing in just Ada (the matrix storage, and the solver). Sure, and with probability 1, since it's already done in Mathpaqs! G. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-26 18:38 ` Gautier write-only @ 2011-02-26 20:59 ` Simon Wright 0 siblings, 0 replies; 18+ messages in thread From: Simon Wright @ 2011-02-26 20:59 UTC (permalink / raw) Gautier write-only <gautier_niouzes@hotmail.com> writes: > On 26 fév, 01:21, "Nasser M. Abbasi" <n...@12000.org> wrote: > >> Someone more skilled than me, and with time, can probably implement >> the whole thing in just Ada (the matrix storage, and the solver). > > Sure, and with probability 1, since it's already done in Mathpaqs! Apologies. I hadn't realised that Mathpaqs already includes sparse matrix facilities. Only excuse is that 'sparse' doesn't appear in the announcement. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 10:40 ` Nasser M. Abbasi 2011-02-22 11:33 ` Dmitry A. Kazakov @ 2011-02-22 17:35 ` Simon Wright 1 sibling, 0 replies; 18+ messages in thread From: Simon Wright @ 2011-02-22 17:35 UTC (permalink / raw) "Nasser M. Abbasi" <nma@12000.org> writes: > In Ada, how can one work with sparse matrices? Say I want to make > Ax=b, where A is sparse, and solve for x. > > How would you do that in Ada 2005? What libraries/bindings etc... does > one need to use. During conversations about my Ada 2005 Math Extensions project (https://sourceforge.net/projects/gnat-math-extn/), someone pointed me at http://www-users.cs.umn.edu/~saad/software/SPARSKIT/index.html I don't think there's an Ada binding to this. ^ permalink raw reply [flat|nested] 18+ messages in thread
* Re: Ann: Mathpaqs, release Feb. 2011 2011-02-22 9:56 ` Nasser M. Abbasi 2011-02-22 10:27 ` Dmitry A. Kazakov @ 2011-02-22 17:21 ` Gautier write-only 1 sibling, 0 replies; 18+ messages in thread From: Gautier write-only @ 2011-02-22 17:21 UTC (permalink / raw) On 22 fév, 10:56, "Nasser M. Abbasi" <n...@12000.org> wrote: > What packages or binding to which library should one use in Ada > to use sparse matrices? For instance the package Sparse in Mathpaqs :-) . NB: that package doesn't claim to be especially user-friendly. But it's there. ______________________________________________________________ Gautier's Ada programming -- http://gautiersblog.blogspot.com/ NB: follow the above link for a working e-mail address ^ permalink raw reply [flat|nested] 18+ messages in thread
end of thread, other threads:[~2011-02-26 20:59 UTC | newest] Thread overview: 18+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2011-02-21 18:43 Ann: Mathpaqs, release Feb. 2011 Gautier write-only 2011-02-21 23:59 ` Nasser M. Abbasi 2011-02-22 2:34 ` Gautier write-only 2011-02-22 9:56 ` Nasser M. Abbasi 2011-02-22 10:27 ` Dmitry A. Kazakov 2011-02-22 10:40 ` Nasser M. Abbasi 2011-02-22 11:33 ` Dmitry A. Kazakov 2011-02-22 20:45 ` Nasser M. Abbasi 2011-02-22 21:03 ` Dmitry A. Kazakov 2011-02-23 14:38 ` Simon Wright 2011-02-24 9:51 ` comp.lang.php 2011-02-25 21:09 ` Simon Wright 2011-02-26 0:21 ` Nasser M. Abbasi 2011-02-26 7:53 ` Simon Wright 2011-02-26 18:38 ` Gautier write-only 2011-02-26 20:59 ` Simon Wright 2011-02-22 17:35 ` Simon Wright 2011-02-22 17:21 ` Gautier write-only
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox