summaryrefslogtreecommitdiff
path: root/dmagick/c/matrix.d
blob: bfc666fd39e7cf900bea2e85e1c639ac6b47e9dc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
module dmagick.c.matrix;

import dmagick.c.exception;
import dmagick.c.image;
import dmagick.c.magickType;
import dmagick.c.magickVersion;

alias ptrdiff_t ssize_t;

extern(C)
{
	struct MatrixInfo;

	double** AcquireMagickMatrix(const size_t, const size_t);
	double** RelinquishMagickMatrix(double**, const size_t);

	static if ( MagickLibVersion >= 0x690 )
	{
		Image* MatrixToImage(const(MatrixInfo)*, ExceptionInfo*);
	}

	MagickBooleanType GaussJordanElimination(double**, double**, const size_t, const size_t);

	static if ( MagickLibVersion >= 0x669 )
	{
		MagickBooleanType GetMatrixElement(const(MatrixInfo)*, const ssize_t, const ssize_t, void*);
		MagickBooleanType NullMatrix(MatrixInfo*);
		MagickBooleanType SetMatrixElement(const(MatrixInfo)*, const ssize_t, const ssize_t, const(void)*);

		MatrixInfo* AcquireMatrixInfo(const size_t, const size_t, const size_t, ExceptionInfo*);
		MatrixInfo* DestroyMatrixInfo(MatrixInfo*);

		size_t GetMatrixColumns(const(MatrixInfo)*);
		size_t GetMatrixRows(const(MatrixInfo)*);
	}

	void LeastSquaresAddTerms(double**, double**, const(double)*, const(double)*, const size_t, const size_t);
}