/* -*-c-*-
*
- * $Id: matrix.c,v 1.1 2000/05/21 11:28:30 mdw Exp $
+ * $Id: matrix.c,v 1.3 2000/08/05 11:27:56 mdw Exp $
*
* Matrix arithmetic mod %$2^{24}$%
*
* THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
- * NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
+ * NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
/*----- Revision history --------------------------------------------------*
*
* $Log: matrix.c,v $
+ * Revision 1.3 2000/08/05 11:27:56 mdw
+ * (matinv): Fix type error.
+ *
+ * Revision 1.2 2000/07/02 15:22:07 mdw
+ * Fix licence text. Change to matinv to mark inputs as constants.
+ *
* Revision 1.1 2000/05/21 11:28:30 mdw
* Initial check-in.
*
/* --- @matinv@ --- *
*
* Arguments: @uint24 *d@ = pointer to destination matrix
- * @uint24 *a@ = pointer to operand matrix
+ * @const uint24 *a@ = pointer to operand matrix
* @unsigned x, y@ = dimensions of operand matrix
*
* Returns: Zero if the matrix was successfully inverted, %$-1$% if the
* Use: Computes the mod %$2^{24}$% inverse of a square matrix.
*/
-int matinv(uint24 *d, uint24 *a, unsigned x, unsigned y)
+int matinv(uint24 *d, const uint24 *a, unsigned x, unsigned y)
{
unsigned i, j, k;
uint24 *aa;
- uint32 *p, *q, *r, *s;
+ uint24 *p, *q, *r, *s;
assert(x == y);