mikerabat / mrmath Goto Github PK
View Code? Open in Web Editor NEWDelphi matrix library
Home Page: http://mrsoft.org
License: Apache License 2.0
Delphi matrix library
Home Page: http://mrsoft.org
License: Apache License 2.0
It misses the "x" of x64.
Fatal source bugs on compiling
==========
Windows 10
Clean new install of Lazarus 32 bit Latest version (v2.2.0)
What I had to do to get a compile
============
File mrmath_pkg.lpk
Remove
Item 75 - file BufferedStream.pas
Looks like file does not exist
===========
File SimpleWinThreadPool.pas
comment out line 226, viz
SetThreadPoolProvider( {$IFDEF FPD}@{$ENDIF}SimpleWinThreadPoolProvdier );
reason: Identifier not found
==================
File eigensystems.pas
comment out line 3051
if abs( e^[m] ) <= eps2*abs( d^[m]*d[m + 1] ) then
Reason: Eigensystems.pas(3052,36) Error: Operator is not overloaded: "Double" * "TConstDoubleArr"
============
CONSEQUENCES in test of UNIT:
Test failed
TestEigValfromTridiagMtx
Exception: EAssertionFailedError
at $0067B388
==========
What is the fix?
If you make .lpk Lazarus package file, them mrMath can be added to Lazarus OnlinePackageManager (seems).
you can create new package in Lazarus IDE, then add all pas files, then add description, save.
Hello mikerabat,
I've downloaded mrmath and tried to compile the "mrmath.dpk" as described.
It gives the following message
[error] ASMMatricMeanOperations.pas: undeclared identifier: 'movddup'
I'm using Delphi 7 on a windows 10 machine, and have zero experience with inline assembly code.
any suggestions? thanks
hi
how can i use this library?
in readme file you said compile!
i compiled the code with out error but how can use in my code ?!
hi,mike,
why is the update time so long?
why stop submitting new projects?
are you busy with your work?
Best Regards
by.qq600585
hi,mikerabat
I plan to use mrmath (aiot / nb-iot) in Jetson for my project.
Assembly / AVX / SSE code cannot support armv7 / arm64 / MIPs
Please keep Pascal source code. thank you!
Best Regards
by.qq600585
Hi, Mr Mikerabat
Really, Really, Really thank you for your useful publification of this libray.
I am a delphi developer.
Currently I am making small image processing program ( in my personal purpose).
In this process I should use matrix cacluation.
Thus I selected your library for my project.
But I faced below problem like below.
And I can't find the reason.
please give me advice.
It was occured on matrix multiply function.
And my code block is like below.
function getABC(srcBmp:TBitmap): TBitmap;
var
matA, matZ: TDoubleMatrix;
w, h: Cardinal;
count: Cardinal;
x, y: Integer;
mean, sum: Double;
_rVal: Cardinal;
aVal, bVal, cVal: Double;
matT, _matM1, _matM2, _matM3, matIv: TDoubleMatrix;
matX: TDoubleMatrix;
begin
w := srcBmp.Width;
h := srcBmp.Height;
matA := TDoubleMatrix.Create(w*h, 3, 0);
matZ := TDoubleMatrix.Create(w*h, 1, 0);
count := 0;
for x := 0 to w - 1 do
begin
for y := 0 to h - 1 do
begin
matA[count, 0] := x;
matA[count, 1] := y;
matA[count, 2] := 1;
_rVal := GetRValue(srcBmp.Canvas.Pixels[x, y]);
matZ[count, 0] := _rVal;
Inc(count);
end;
end;
/// How to Save to File
/// matA.SaveToFile('test.csv', TBinaryReaderWriter );
count := 0;
sum := 0;
for x := 0 to w - 1 do
begin
for y := 0 to h - 1 do
begin
_rVal := GetRValue(srcBmp.Canvas.Pixels[x, y]);
sum := sum + _rVal;
end;
end;
mean := sum / (w * h);
matT := matA.Transpose;
_matM1 := matT.Mult(matA); //current error line
matIv := _matM1.Invert;
_matM2 := matIv.Mult(matT);
matX := _matM2.Mult(matZ);
//matX := ((matT.Mult()).Invert).Mult(matA.Transpose).Mult(matZ);
// aVal := matX[0];
// bVal := matX[1];
// cVal := matX[2];
end;
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.