]> ruin.nu Git - germs.git/blobdiff - fann/src/include/fann_error.h
Make it possible to build statically against the included fann library.
[germs.git] / fann / src / include / fann_error.h
diff --git a/fann/src/include/fann_error.h b/fann/src/include/fann_error.h
new file mode 100644 (file)
index 0000000..bd007a1
--- /dev/null
@@ -0,0 +1,159 @@
+/*
+Fast Artificial Neural Network Library (fann)
+Copyright (C) 2003 Steffen Nissen (lukesky@diku.dk)
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+#ifndef __fann_error_h__
+#define __fann_error_h__
+
+#include <stdio.h>
+
+#define FANN_ERRSTR_MAX 128
+struct fann_error;
+
+/* Section: FANN Error Handling
+
+   Errors from the fann library are usually reported on stderr. 
+   It is however possible to redirect these error messages to a file, 
+   or completely ignore them by the <fann_set_error_log> function.
+   
+   It is also possible to inspect the last error message by using the
+   <fann_get_errno> and <fann_get_errstr> functions.
+ */
+
+/* Enum: fann_errno_enum
+       Used to define error events on <struct fann> and <struct fann_train_data>. 
+
+       See also:
+               <fann_get_errno>, <fann_reset_errno>, <fann_get_errstr>
+
+       FANN_E_NO_ERROR - No error 
+       FANN_E_CANT_OPEN_CONFIG_R - Unable to open configuration file for reading 
+       FANN_E_CANT_OPEN_CONFIG_W - Unable to open configuration file for writing
+       FANN_E_WRONG_CONFIG_VERSION - Wrong version of configuration file 
+       FANN_E_CANT_READ_CONFIG - Error reading info from configuration file
+       FANN_E_CANT_READ_NEURON - Error reading neuron info from configuration file
+       FANN_E_CANT_READ_CONNECTIONS - Error reading connections from configuration file
+       FANN_E_WRONG_NUM_CONNECTIONS - Number of connections not equal to the number expected
+       FANN_E_CANT_OPEN_TD_W - Unable to open train data file for writing
+       FANN_E_CANT_OPEN_TD_R - Unable to open train data file for reading
+       FANN_E_CANT_READ_TD - Error reading training data from file
+       FANN_E_CANT_ALLOCATE_MEM - Unable to allocate memory
+       FANN_E_CANT_TRAIN_ACTIVATION - Unable to train with the selected activation function
+       FANN_E_CANT_USE_ACTIVATION - Unable to use the selected activation function
+       FANN_E_TRAIN_DATA_MISMATCH - Irreconcilable differences between two <struct fann_train_data> structures
+       FANN_E_CANT_USE_TRAIN_ALG - Unable to use the selected training algorithm
+       FANN_E_TRAIN_DATA_SUBSET - Trying to take subset which is not within the training set
+       FANN_E_INDEX_OUT_OF_BOUND - Index is out of bound
+*/
+enum fann_errno_enum
+{
+       FANN_E_NO_ERROR = 0,
+       FANN_E_CANT_OPEN_CONFIG_R,
+       FANN_E_CANT_OPEN_CONFIG_W,
+       FANN_E_WRONG_CONFIG_VERSION,
+       FANN_E_CANT_READ_CONFIG,
+       FANN_E_CANT_READ_NEURON,
+       FANN_E_CANT_READ_CONNECTIONS,
+       FANN_E_WRONG_NUM_CONNECTIONS,
+       FANN_E_CANT_OPEN_TD_W,
+       FANN_E_CANT_OPEN_TD_R,
+       FANN_E_CANT_READ_TD,
+       FANN_E_CANT_ALLOCATE_MEM,
+       FANN_E_CANT_TRAIN_ACTIVATION,
+       FANN_E_CANT_USE_ACTIVATION,
+       FANN_E_TRAIN_DATA_MISMATCH,
+       FANN_E_CANT_USE_TRAIN_ALG,
+       FANN_E_TRAIN_DATA_SUBSET,
+       FANN_E_INDEX_OUT_OF_BOUND
+};
+
+/* Group: Error Handling */
+       
+/* Function: fann_set_error_log
+
+   Change where errors are logged to. Both <struct fann> and <struct fann_data> can be 
+   casted to <struct fann_error>, so this function can be used to set either of these.
+   
+   If log_file is NULL, no errors will be printed.
+   
+   If errdata is NULL, the default log will be set. The default log is the log used when creating 
+   <struct fann> and <struct fann_data>. This default log will also be the default for all new structs
+   that are created.
+   
+   The default behavior is to log them to stderr.
+   
+   See also:
+    <struct fann_error>
+   
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL void FANN_API fann_set_error_log(struct fann_error *errdat, FILE * log_file);
+
+
+/* Function: fann_get_errno
+
+   Returns the last error number.
+   
+   See also:
+    <fann_errno_enum>, <fann_reset_errno>
+    
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL enum fann_errno_enum FANN_API fann_get_errno(struct fann_error *errdat);
+
+
+/* Function: fann_reset_errno
+
+   Resets the last error number.
+   
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL void FANN_API fann_reset_errno(struct fann_error *errdat);
+
+
+/* Function: fann_reset_errstr
+
+   Resets the last error string.
+
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL void FANN_API fann_reset_errstr(struct fann_error *errdat);
+
+
+/* Function: fann_get_errstr
+
+   Returns the last errstr.
+  
+   This function calls <fann_reset_errno> and <fann_reset_errstr>
+
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL char *FANN_API fann_get_errstr(struct fann_error *errdat);
+
+
+/* Function: fann_print_error
+
+   Prints the last error to stderr.
+
+   This function appears in FANN >= 1.1.0.   
+ */ 
+FANN_EXTERNAL void FANN_API fann_print_error(struct fann_error *errdat);
+
+extern FILE * fann_default_error_log;
+
+#endif