I am writing a unit for dealing with matrix algebra with arbitrary sized

matrices (as opposed to the FPC unit that deals with a few fixed size

ones).

I declare the matrix type

type

Matrix = array of array of Real;

By using Length or High, I can loop through the array as I please, and I

can make operator overloading and functions for most operations I need.

There is just one thing that I can't do: I can't initialize a matrix in

any elegant way! I would like to do like this:

m1: Matrix = ((1, 2, 3), (2, 3, 4));

and get a properly sized dynamic array matching the matrix given.

This is obviously not supported, but what can I do? I can build an

infinite number of functions, taking fixed-sized arrays as input and

returning a dynamic array, but then I need one function for each

combination of height and width! That is OK for sizes up to 3 or 4 but

then it becomes ridiculous.

Is there a better way to solve this problem?

/Ingemar

_______________________________________________

fpc-pascal maillist -

[hidden email]
http://lists.freepascal.org/mailman/listinfo/fpc-pascal