84 lines
3.1 KiB
PHP
84 lines
3.1 KiB
PHP
|
<?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('POLYMORPHIC_ARGUMENT_EXCEPTION', -1);
|
||
|
$error['EN'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Invalid argument pattern for polymorphic function.";
|
||
|
$error['FR'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Modèle inadmissible d'argument pour la fonction polymorphe.".
|
||
|
$error['DE'][POLYMORPHIC_ARGUMENT_EXCEPTION] = "Unzulässiges Argumentmuster für polymorphe Funktion.";
|
||
|
|
||
|
define('ARGUMENT_TYPE_EXCEPTION', -2);
|
||
|
$error['EN'][ARGUMENT_TYPE_EXCEPTION] = "Invalid argument type.";
|
||
|
$error['FR'][ARGUMENT_TYPE_EXCEPTION] = "Type inadmissible d'argument.";
|
||
|
$error['DE'][ARGUMENT_TYPE_EXCEPTION] = "Unzulässige Argumentart.";
|
||
|
|
||
|
define('ARGUMENT_BOUNDS_EXCEPTION', -3);
|
||
|
$error['EN'][ARGUMENT_BOUNDS_EXCEPTION] = "Invalid argument range.";
|
||
|
$error['FR'][ARGUMENT_BOUNDS_EXCEPTION] = "Gamme inadmissible d'argument.";
|
||
|
$error['DE'][ARGUMENT_BOUNDS_EXCEPTION] = "Unzulässige Argumentstrecke.";
|
||
|
|
||
|
define('MATRIX_DIMENSION_EXCEPTION', -4);
|
||
|
$error['EN'][MATRIX_DIMENSION_EXCEPTION] = "Matrix dimensions are not equal.";
|
||
|
$error['FR'][MATRIX_DIMENSION_EXCEPTION] = "Les dimensions de Matrix ne sont pas égales.";
|
||
|
$error['DE'][MATRIX_DIMENSION_EXCEPTION] = "Matrixmaße sind nicht gleich.";
|
||
|
|
||
|
define('PRECISION_LOSS_EXCEPTION', -5);
|
||
|
$error['EN'][PRECISION_LOSS_EXCEPTION] = "Significant precision loss detected.";
|
||
|
$error['FR'][PRECISION_LOSS_EXCEPTION] = "Perte significative de précision détectée.";
|
||
|
$error['DE'][PRECISION_LOSS_EXCEPTION] = "Bedeutender Präzision Verlust ermittelte.";
|
||
|
|
||
|
define('MATRIX_SPD_EXCEPTION', -6);
|
||
|
$error['EN'][MATRIX_SPD_EXCEPTION] = "Can only perform operation on symmetric positive definite matrix.";
|
||
|
$error['FR'][MATRIX_SPD_EXCEPTION] = "Perte significative de précision détectée.";
|
||
|
$error['DE'][MATRIX_SPD_EXCEPTION] = "Bedeutender Präzision Verlust ermittelte.";
|
||
|
|
||
|
define('MATRIX_SINGULAR_EXCEPTION', -7);
|
||
|
$error['EN'][MATRIX_SINGULAR_EXCEPTION] = "Can only perform operation on singular matrix.";
|
||
|
|
||
|
define('MATRIX_RANK_EXCEPTION', -8);
|
||
|
$error['EN'][MATRIX_RANK_EXCEPTION] = "Can only perform operation on full-rank matrix.";
|
||
|
|
||
|
define('ARRAY_LENGTH_EXCEPTION', -9);
|
||
|
$error['EN'][ARRAY_LENGTH_EXCEPTION] = "Array length must be a multiple of m.";
|
||
|
|
||
|
define('ROW_LENGTH_EXCEPTION', -10);
|
||
|
$error['EN'][ROW_LENGTH_EXCEPTION] = "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()");
|
||
|
}
|
||
|
}
|