83 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			83 lines
		
	
	
		
			3.0 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('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()"); | ||
|  | 	} | ||
|  | } |