[Home] [News] [API] [Example usage] [FAQ] [Roadmap] [Download] [Contact]


 Ver 2.0a

Since the code now compiles to a static library as opposed
to a bunch of object files, and since the data type has been
abstracted to a compile-time parameter, the version number
is bumped up to version 2.

o Library is now a proper "library", i.e. compiled into
  libCMatrix.a (static library for now).

o Added several 'demo' files illustrating usage of class, and re-
  organised the directory structure a bit. There is now a
  CMatrix directory <..root..>/cmatrix/cmatrix/CMatrix that
  contains the library itself. I know that all these "cmatrix"es
  become a bit confusing, but this is more of an artifact of
  "tricking" kdevelop into building the sources as a
  library. The demo files are under <..root..>/cmatrix/cmatrix/demos
  and are *not* managed by kdevelop (or the configure script in

  Run "make clean" and "make" independently in the demos

o The "main" program produced by compiling the system is called
  "cmatrix". This again, is a kdevelop artifact. Running it
  produces nothing useful, it just dumps some text telling you
  to look in the "demos" directory.

o Basic data type is now spec'd by a compile time flag,
	_CMDATA which can be float, double, int, whatever.
	(Note have only really tested for double/float)

o Expanded the following to operate in a row- or column-wise


  Did a consistency check on meaning of row- and column-wise -
  basically, a max(e_row) i.e. row-wise max means that a *column*
  vector is returned, each element of which is the max of the
  corresponding row. Re-read that slowly. Similarly, col-wise
  max, for example, returns a *row* vector. Each element is the
  max of the corresponding column.

o std() was only coded for col-wise. Finished row-wise component.

o Changed print() and sprint() methods to use C++ style I/O (as
  opposed to the C-style they were originally written in).

o Added fprint() as a "new" C++ style method that will ultimately
  replace "write-file()". I left "write-file" in only for
  backwards compatibility. It will be removed soon!

o Added some non-class methods (supplied by Antonio):


o Cleaned some of the code - consistency changes. All "private" methods
  used to be prefixed by "m_". In view of the naming scheme I've come
  to adopt, this prefix has been changed to just "_".

o Operator overload changes.

	The old and misleading "<<" and ">>" operator overloads have been
	replaced with "*=" and "/=". These are element-by-element mult and

	Although there is still scope for confusion, I think the meaning
	is much clearer now.

		A = (B *= C);

	means that corresponding elements of B and C are multiplied together
	and the result assigned to A.

Ver 1.0a_1
o Minor bug fixes:
	- normalisation()

Ver 1.0a
o Initial publish on sourceforge.