<?php 
/** 
 *    @package JAMA 
 * 
 *    Error handling 
 *    @author Michael Bommarito 
 *    @version 01292005 
 */ 
 
//Language constant 
define('JAMALANG', 'EN'); 
 
 
//All errors may be defined by the following format: 
//define('ExceptionName', N); 
//$error['lang'][ExceptionName] = 'Error message'; 
$error = array(); 
 
/* 
I've used Babelfish and a little poor knowledge of Romance/Germanic languages for the translations here. 
Feel free to correct anything that looks amiss to you. 
*/ 
 
define('PolymorphicArgumentException', -1); 
$error['EN'][PolymorphicArgumentException] = "Invalid argument pattern for polymorphic function."; 
$error['FR'][PolymorphicArgumentException] = "Modèle inadmissible d'argument pour la fonction polymorphe.". 
$error['DE'][PolymorphicArgumentException] = "Unzulässiges Argumentmuster für polymorphe Funktion."; 
 
define('ArgumentTypeException', -2); 
$error['EN'][ArgumentTypeException] = "Invalid argument type."; 
$error['FR'][ArgumentTypeException] = "Type inadmissible d'argument."; 
$error['DE'][ArgumentTypeException] = "Unzulässige Argumentart."; 
 
define('ArgumentBoundsException', -3); 
$error['EN'][ArgumentBoundsException] = "Invalid argument range."; 
$error['FR'][ArgumentBoundsException] = "Gamme inadmissible d'argument."; 
$error['DE'][ArgumentBoundsException] = "Unzulässige Argumentstrecke."; 
 
define('MatrixDimensionException', -4); 
$error['EN'][MatrixDimensionException] = "Matrix dimensions are not equal."; 
$error['FR'][MatrixDimensionException] = "Les dimensions de Matrix ne sont pas égales."; 
$error['DE'][MatrixDimensionException] = "Matrixmaße sind nicht gleich."; 
 
define('PrecisionLossException', -5); 
$error['EN'][PrecisionLossException] = "Significant precision loss detected."; 
$error['FR'][PrecisionLossException] = "Perte significative de précision détectée."; 
$error['DE'][PrecisionLossException] = "Bedeutender Präzision Verlust ermittelte."; 
 
define('MatrixSPDException', -6); 
$error['EN'][MatrixSPDException] = "Can only perform operation on symmetric positive definite matrix."; 
$error['FR'][MatrixSPDException] = "Perte significative de précision détectée."; 
$error['DE'][MatrixSPDException] = "Bedeutender Präzision Verlust ermittelte."; 
 
define('MatrixSingularException', -7); 
$error['EN'][MatrixSingularException] = "Can only perform operation on singular matrix."; 
 
define('MatrixRankException', -8); 
$error['EN'][MatrixRankException] = "Can only perform operation on full-rank matrix."; 
 
define('ArrayLengthException', -9); 
$error['EN'][ArrayLengthException] = "Array length must be a multiple of m."; 
 
define('RowLengthException', -10); 
$error['EN'][RowLengthException] = "All rows must have the same length."; 
 
/** 
 *    Custom error handler 
 *    @param int $num Error number 
 */ 
function JAMAError($errorNumber = null) { 
    global $error; 
 
    if (isset($errorNumber)) { 
        if (isset($error[JAMALANG][$errorNumber])) { 
            return $error[JAMALANG][$errorNumber]; 
        } else { 
            return $error['EN'][$errorNumber]; 
        } 
    } else { 
        return ("Invalid argument to JAMAError()"); 
    } 
} 
 
 |