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()");
 | |
|     }
 | |
| }
 | 
