# FANN (Fast Artificial Neural Network)

- Introduction
- Installing/Configuring
  - Requirements
  - Installation
  - Runtime Configuration
  - Resource Types
- Predefined Constants
- Examples
  - XOR training
- Fann Functions
  - fann_cascadetrain_on_data — Trains on an entire dataset, for a period of time using the Cascade2 training algorithm
  - fann_cascadetrain_on_file — Trains on an entire dataset read from file, for a period of time using the Cascade2 training algorithm
  - fann_clear_scaling_params — Clears scaling parameters
  - fann_copy — Creates a copy of a fann structure
  - fann_create_from_file — Constructs a backpropagation neural network from a configuration file
  - fann_create_shortcut_array — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  - fann_create_shortcut — Creates a standard backpropagation neural network which is not fully connectected and has shortcut connections
  - fann_create_sparse_array — Creates a standard backpropagation neural network, which is not fully connected using an array of layer sizes
  - fann_create_sparse — Creates a standard backpropagation neural network, which is not fully connected
  - fann_create_standard_array — Creates a standard fully connected backpropagation neural network using an array of layer sizes
  - fann_create_standard — Creates a standard fully connected backpropagation neural network
  - fann_create_train_from_callback — Creates the training data struct from a user supplied function
  - fann_create_train — Creates an empty training data struct
  - fann_descale_input — Scale data in input vector after get it from ann based on previously calculated parameters
  - fann_descale_output — Scale data in output vector after get it from ann based on previously calculated parameters
  - fann_descale_train — Descale input and output data based on previously calculated parameters
  - fann_destroy_train — Destructs the training data
  - fann_destroy — Destroys the entire network and properly freeing all the associated memory
  - fann_duplicate_train_data — Returns an exact copy of a fann train data
  - fann_get_activation_function — Returns the activation function
  - fann_get_activation_steepness — Returns the activation steepness for supplied neuron and layer number
  - fann_get_bias_array — Get the number of bias in each layer in the network
  - fann_get_bit_fail_limit — Returns the bit fail limit used during training
  - fann_get_bit_fail — The number of fail bits
  - fann_get_cascade_activation_functions_count — Returns the number of cascade activation functions
  - fann_get_cascade_activation_functions — Returns the cascade activation functions
  - fann_get_cascade_activation_steepnesses_count — The number of activation steepnesses
  - fann_get_cascade_activation_steepnesses — Returns the cascade activation steepnesses
  - fann_get_cascade_candidate_change_fraction — Returns the cascade candidate change fraction
  - fann_get_cascade_candidate_limit — Return the candidate limit
  - fann_get_cascade_candidate_stagnation_epochs — Returns the number of cascade candidate stagnation epochs
  - fann_get_cascade_max_cand_epochs — Returns the maximum candidate epochs
  - fann_get_cascade_max_out_epochs — Returns the maximum out epochs
  - fann_get_cascade_min_cand_epochs — Returns the minimum candidate epochs
  - fann_get_cascade_min_out_epochs — Returns the minimum out epochs
  - fann_get_cascade_num_candidate_groups — Returns the number of candidate groups
  - fann_get_cascade_num_candidates — Returns the number of candidates used during training
  - fann_get_cascade_output_change_fraction — Returns the cascade output change fraction
  - fann_get_cascade_output_stagnation_epochs — Returns the number of cascade output stagnation epochs
  - fann_get_cascade_weight_multiplier — Returns the weight multiplier
  - fann_get_connection_array — Get connections in the network
  - fann_get_connection_rate — Get the connection rate used when the network was created
  - fann_get_errno — Returns the last error number
  - fann_get_errstr — Returns the last errstr
  - fann_get_layer_array — Get the number of neurons in each layer in the network
  - fann_get_learning_momentum — Returns the learning momentum
  - fann_get_learning_rate — Returns the learning rate
  - fann_get_MSE — Reads the mean square error from the network
  - fann_get_network_type — Get the type of neural network it was created as
  - fann_get_num_input — Get the number of input neurons
  - fann_get_num_layers — Get the number of layers in the neural network
  - fann_get_num_output — Get the number of output neurons
  - fann_get_quickprop_decay — Returns the decay which is a factor that weights should decrease in each iteration during quickprop training
  - fann_get_quickprop_mu — Returns the mu factor
  - fann_get_rprop_decrease_factor — Returns the increase factor used during RPROP training
  - fann_get_rprop_delta_max — Returns the maximum step-size
  - fann_get_rprop_delta_min — Returns the minimum step-size
  - fann_get_rprop_delta_zero — Returns the initial step-size
  - fann_get_rprop_increase_factor — Returns the increase factor used during RPROP training
  - fann_get_sarprop_step_error_shift — Returns the sarprop step error shift
  - fann_get_sarprop_step_error_threshold_factor — Returns the sarprop step error threshold factor
  - fann_get_sarprop_temperature — Returns the sarprop temperature
  - fann_get_sarprop_weight_decay_shift — Returns the sarprop weight decay shift
  - fann_get_total_connections — Get the total number of connections in the entire network
  - fann_get_total_neurons — Get the total number of neurons in the entire network
  - fann_get_train_error_function — Returns the error function used during training
  - fann_get_train_stop_function — Returns the stop function used during training
  - fann_get_training_algorithm — Returns the training algorithm
  - fann_init_weights — Initialize the weights using Widrow + Nguyen’s algorithm
  - fann_length_train_data — Returns the number of training patterns in the train data
  - fann_merge_train_data — Merges the train data
  - fann_num_input_train_data — Returns the number of inputs in each of the training patterns in the train data
  - fann_num_output_train_data — Returns the number of outputs in each of the training patterns in the train data
  - fann_print_error — Prints the error string
  - fann_randomize_weights — Give each connection a random weight between min_weight and max_weight
  - fann_read_train_from_file — Reads a file that stores training data
  - fann_reset_errno — Resets the last error number
  - fann_reset_errstr — Resets the last error string
  - fann_reset_MSE — Resets the mean square error from the network
  - fann_run — Will run input through the neural network
  - fann_save_train — Save the training structure to a file
  - fann_save — Saves the entire network to a configuration file
  - fann_scale_input_train_data — Scales the inputs in the training data to the specified range
  - fann_scale_input — Scale data in input vector before feed it to ann based on previously calculated parameters
  - fann_scale_output_train_data — Scales the outputs in the training data to the specified range
  - fann_scale_output — Scale data in output vector before feed it to ann based on previously calculated parameters
  - fann_scale_train_data — Scales the inputs and outputs in the training data to the specified range
  - fann_scale_train — Scale input and output data based on previously calculated parameters
  - fann_set_activation_function_hidden — Sets the activation function for all of the hidden layers
  - fann_set_activation_function_layer — Sets the activation function for all the neurons in the supplied layer
  - fann_set_activation_function_output — Sets the activation function for the output layer
  - fann_set_activation_function — Sets the activation function for supplied neuron and layer
  - fann_set_activation_steepness_hidden — Sets the steepness of the activation steepness for all neurons in the all hidden layers
  - fann_set_activation_steepness_layer — Sets the activation steepness for all of the neurons in the supplied layer number
  - fann_set_activation_steepness_output — Sets the steepness of the activation steepness in the output layer
  - fann_set_activation_steepness — Sets the activation steepness for supplied neuron and layer number
  - fann_set_bit_fail_limit — Set the bit fail limit used during training
  - fann_set_callback — Sets the callback function for use during training
  - fann_set_cascade_activation_functions — Sets the array of cascade candidate activation functions
  - fann_set_cascade_activation_steepnesses — Sets the array of cascade candidate activation steepnesses
  - fann_set_cascade_candidate_change_fraction — Sets the cascade candidate change fraction
  - fann_set_cascade_candidate_limit — Sets the candidate limit
  - fann_set_cascade_candidate_stagnation_epochs — Sets the number of cascade candidate stagnation epochs
  - fann_set_cascade_max_cand_epochs — Sets the max candidate epochs
  - fann_set_cascade_max_out_epochs — Sets the maximum out epochs
  - fann_set_cascade_min_cand_epochs — Sets the min candidate epochs
  - fann_set_cascade_min_out_epochs — Sets the minimum out epochs
  - fann_set_cascade_num_candidate_groups — Sets the number of candidate groups
  - fann_set_cascade_output_change_fraction — Sets the cascade output change fraction
  - fann_set_cascade_output_stagnation_epochs — Sets the number of cascade output stagnation epochs
  - fann_set_cascade_weight_multiplier — Sets the weight multiplier
  - fann_set_error_log — Sets where the errors are logged to
  - fann_set_input_scaling_params — Calculate input scaling parameters for future use based on training data
  - fann_set_learning_momentum — Sets the learning momentum
  - fann_set_learning_rate — Sets the learning rate
  - fann_set_output_scaling_params — Calculate output scaling parameters for future use based on training data
  - fann_set_quickprop_decay — Sets the quickprop decay factor
  - fann_set_quickprop_mu — Sets the quickprop mu factor
  - fann_set_rprop_decrease_factor — Sets the decrease factor used during RPROP training
  - fann_set_rprop_delta_max — Sets the maximum step-size
  - fann_set_rprop_delta_min — Sets the minimum step-size
  - fann_set_rprop_delta_zero — Sets the initial step-size
  - fann_set_rprop_increase_factor — Sets the increase factor used during RPROP training
  - fann_set_sarprop_step_error_shift — Sets the sarprop step error shift
  - fann_set_sarprop_step_error_threshold_factor — Sets the sarprop step error threshold factor
  - fann_set_sarprop_temperature — Sets the sarprop temperature
  - fann_set_sarprop_weight_decay_shift — Sets the sarprop weight decay shift
  - fann_set_scaling_params — Calculate input and output scaling parameters for future use based on training data
  - fann_set_train_error_function — Sets the error function used during training
  - fann_set_train_stop_function — Sets the stop function used during training
  - fann_set_training_algorithm — Sets the training algorithm
  - fann_set_weight_array — Set connections in the network
  - fann_set_weight — Set a connection in the network
  - fann_shuffle_train_data — Shuffles training data, randomizing the order
  - fann_subset_train_data — Returns an copy of a subset of the train data
  - fann_test_data — Test a set of training data and calculates the MSE for the training data
  - fann_test — Test with a set of inputs, and a set of desired outputs
  - fann_train_epoch — Train one epoch with a set of training data
  - fann_train_on_data — Trains on an entire dataset for a period of time
  - fann_train_on_file — Trains on an entire dataset, which is read from file, for a period of time
  - fann_train — Train one iteration with a set of inputs, and a set of desired outputs
- FANNConnection — The FANNConnection class
  - FANNConnection::__construct — The connection constructor
  - FANNConnection::getFromNeuron — Returns the postions of starting neuron
  - FANNConnection::getToNeuron — Returns the postions of terminating neuron
  - FANNConnection::getWeight — Returns the connection weight
  - FANNConnection::setWeight — Sets the connections weight