mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 13:29:14 +02:00
* Slightly modified patch from WP mantis #23816
git-svn-id: trunk@38357 -
This commit is contained in:
parent
c4f66a2492
commit
b94d64449a
@ -53,9 +53,7 @@ uses
|
|||||||
|
|
||||||
CONST numlib_version=2; {used to detect version conflicts between
|
CONST numlib_version=2; {used to detect version conflicts between
|
||||||
header unit and dll}
|
header unit and dll}
|
||||||
highestelement=20000; {Maximal n x m dimensions of matrix.
|
|
||||||
+/- highestelement*SIZEOF(arbfloat) is
|
|
||||||
minimal size of matrix.}
|
|
||||||
type {Definition of base types}
|
type {Definition of base types}
|
||||||
{$IFDEF ArbExtended}
|
{$IFDEF ArbExtended}
|
||||||
ArbFloat = extended;
|
ArbFloat = extended;
|
||||||
@ -181,8 +179,6 @@ type
|
|||||||
offsetx, offsety, scalex, scaley: ArbFloat
|
offsetx, offsety, scalex, scaley: ArbFloat
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{Standard Functions used in NumLib}
|
{Standard Functions used in NumLib}
|
||||||
rfunc1r = Function(x : ArbFloat): ArbFloat;
|
rfunc1r = Function(x : ArbFloat): ArbFloat;
|
||||||
rfunc1rn = Function(x : ArbFloat): ArbFloat is nested;
|
rfunc1rn = Function(x : ArbFloat): ArbFloat is nested;
|
||||||
@ -195,33 +191,47 @@ type
|
|||||||
oderk1n = procedure(x: ArbFloat; var y, f: ArbFloat);
|
oderk1n = procedure(x: ArbFloat; var y, f: ArbFloat);
|
||||||
roofnrfunc = procedure(var x, fx: ArbFloat; var deff: boolean);
|
roofnrfunc = procedure(var x, fx: ArbFloat; var deff: boolean);
|
||||||
|
|
||||||
|
|
||||||
|
{Maximal n x m dimensions of matrix.
|
||||||
|
+/- highestelement*SIZEOF(elementtype) is
|
||||||
|
minimal size of matrix.}
|
||||||
|
const
|
||||||
|
highestfloatelement = High(ArbInt) div SizeOf(ArbFloat);
|
||||||
|
highestptrelement = High(ArbInt) div SizeOf(Pointer);
|
||||||
|
highestintelement = High(ArbInt) div SizeOf(ArbInt);
|
||||||
|
highestboolelement = High(ArbInt) div SizeOf(boolean);
|
||||||
|
highestcomplexelement = High(ArbInt) div SizeOf(complex);
|
||||||
|
highestvectorelement = High(ArbInt) div SizeOf(vector);
|
||||||
|
|
||||||
|
|
||||||
|
type
|
||||||
{Definition of matrix types in NumLib. First some vectors.
|
{Definition of matrix types in NumLib. First some vectors.
|
||||||
The high boundery is a maximal number only. Vectors can be smaller, but
|
The high boundery is a maximal number only. Vectors can be smaller, but
|
||||||
not bigger. The difference is the starting number}
|
not bigger. The difference is the starting number}
|
||||||
arfloat0 = array[0..highestelement] of ArbFloat;
|
arfloat0 = array[0..highestfloatelement-1] of ArbFloat;
|
||||||
arfloat1 = array[1..highestelement] of ArbFloat;
|
arfloat1 = array[1..highestfloatelement] of ArbFloat;
|
||||||
arfloat2 = array[2..highestelement] of ArbFloat;
|
arfloat2 = array[2..highestfloatelement+1] of ArbFloat;
|
||||||
arfloat_1 = array[-1..highestelement] of ArbFloat;
|
arfloat_1 = array[-1..highestfloatelement-2] of ArbFloat;
|
||||||
|
|
||||||
{A matrix is an array of floats}
|
{A matrix is an array of floats}
|
||||||
ar2dr = array[0..highestelement] of ^arfloat0;
|
ar2dr = array[0..highestptrelement-1] of ^arfloat0;
|
||||||
ar2dr1 = array[1..highestelement] of ^arfloat1;
|
ar2dr1 = array[1..highestptrelement] of ^arfloat1;
|
||||||
|
|
||||||
{Matrices can get big, so we mosttimes allocate them on the heap.}
|
{Matrices can get big, so we mosttimes allocate them on the heap.}
|
||||||
par2dr1 = ^ar2dr1;
|
par2dr1 = ^ar2dr1;
|
||||||
|
|
||||||
{Integer vectors}
|
{Integer vectors}
|
||||||
arint0 = array[0..highestelement] of ArbInt;
|
arint0 = array[0..highestintelement-1] of ArbInt;
|
||||||
arint1 = array[1..highestelement] of ArbInt;
|
arint1 = array[1..highestintelement] of ArbInt;
|
||||||
|
|
||||||
{Boolean (true/false) vectors}
|
{Boolean (true/false) vectors}
|
||||||
arbool1 = array[1..highestelement] of boolean;
|
arbool1 = array[1..highestboolelement] of boolean;
|
||||||
|
|
||||||
{Complex vectors}
|
{Complex vectors}
|
||||||
arcomp0 = array[0..highestelement] of complex;
|
arcomp0 = array[0..highestcomplexelement-1] of complex;
|
||||||
arcomp1 = array[1..highestelement] of complex;
|
arcomp1 = array[1..highestcomplexelement] of complex;
|
||||||
arvect0 = array[0..highestelement] of vector;
|
arvect0 = array[0..highestvectorelement-1] of vector;
|
||||||
vectors = array[1..highestelement] of vector;
|
vectors = array[1..highestvectorelement] of vector;
|
||||||
|
|
||||||
parcomp = ^arcomp1;
|
parcomp = ^arcomp1;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user