DynMatrixDynMatrix.DynMatrix HistoryHide minor edits - Show changes to output Changed lines 5-6 from:
Many years ago I wrote a [[http://en.wikipedia.org/wiki/Zortech | C++ ]] matrix class. It used the operator overloading and a few tricks, like a manual implementation of reference counting, to enable us to write things like: to:
Many years ago I wrote a [[http://en.wikipedia.org/wiki/Zortech | C++ ]] matrix class. It used the operator overloading and a few tricks, like having a manual implementation of reference counting, to enable us to write things like: Changed lines 24-25 from:
The important file is dynmatrix.pas to:
The important file is dynmatrix.pas but now there is a package to install so that any project can use it to locate the units, Deleted lines 28-30:
* Proper documentation * Systematic tests Changed line 26 from:
It is released under the Modified LGPL version to:
It is released under the Modified LGPL version like the one that is used for the FCL/LCL. Changed lines 9-10 from:
Later, when I started using Delphi, missed the joys and dangers of operator overloading to:
Later, when I started using Delphi, missed the joys and dangers of operator overloading, so I implemented a version using strings to store the matrix and take advantage of its automatic reference counting. Of course, the same expression would become: Added lines 29-31:
Missing things: * Proper documentation * Systematic tests Changed lines 23-24 from:
The latest version is here: ([[(Attach:) to:
The latest version is here: ([[(Attach:)dynmatrix.zip]]). The important file is dynmatrix.pas. Changed lines 23-24 from:
The latest version is here: ([[(Attach:)DynMatrix.zip]]. to:
The latest version is here: ([[(Attach:)DynMatrix.zip]]). Changed lines 23-24 from:
The latest version is here. to:
The latest version is here: ([[(Attach:)DynMatrix.zip]]. Changed lines 25-26 from:
to:
It is released under the Modified LGPL version common to the FCL/LCL. Inside the zip is a test program and an additional matrix utils unit. Added line 6:
Added line 10:
Added line 12:
Added line 16:
Added line 18:
Added line 20:
Added lines 1-20:
(:notitle:) !! %blue% DynMatrix - A matrix implementation for FPC/Lazarus Many years ago I wrote a [[http://en.wikipedia.org/wiki/Zortech | C++ ]] matrix class. It used the operator overloading and a few tricks, like a manual implementation of reference counting, to enable us to write things like: matrix A = A + B * inv(C); Later, when I started using Delphi, missed the joys and dangers of operator overloading and implemented a version using strings to store the matrix and take advantage of its automatic reference counting. Of course, the same expression would become: A := Madd(A, MMul(B, inv(C))); Not as pretty and not as easy... When I started using FPC/Lazarus the presence of operator overloading lead to another attempt with a matrix implementation. By using a mix of objects and dynamic arrays here is a version that allows us to write: A := A + B * inv(C); or even A := A + B * C**-1; The latest version is here. |