annotate carfac/carfac_output.h @ 610:01986636257a

Second check-in of Alex Brandmeyer's C++ implementation of CARFAC. Addressed style issues and completed implementation of remaining functions. Still needs proper testing of the output stages against the MATLAB version, and runtime functions need improvements in efficiency.
author alexbrandmeyer
date Thu, 16 May 2013 17:33:23 +0000
parents aefe2ca0674f
children 0fbaf443ec82
rev   line source
alexbrandmeyer@609 1 //
alexbrandmeyer@609 2 // carfac_output.h
alexbrandmeyer@609 3 // CARFAC Open Source C++ Library
alexbrandmeyer@609 4 //
alexbrandmeyer@609 5 // Created by Alex Brandmeyer on 5/10/13.
alexbrandmeyer@609 6 //
alexbrandmeyer@609 7 // This C++ file is part of an implementation of Lyon's cochlear model:
alexbrandmeyer@609 8 // "Cascade of Asymmetric Resonators with Fast-Acting Compression"
alexbrandmeyer@609 9 // to supplement Lyon's upcoming book "Human and Machine Hearing"
alexbrandmeyer@609 10 //
alexbrandmeyer@609 11 // Licensed under the Apache License, Version 2.0 (the "License");
alexbrandmeyer@609 12 // you may not use this file except in compliance with the License.
alexbrandmeyer@609 13 // You may obtain a copy of the License at
alexbrandmeyer@609 14 //
alexbrandmeyer@609 15 // http://www.apache.org/licenses/LICENSE-2.0
alexbrandmeyer@609 16 //
alexbrandmeyer@609 17 // Unless required by applicable law or agreed to in writing, software
alexbrandmeyer@609 18 // distributed under the License is distributed on an "AS IS" BASIS,
alexbrandmeyer@609 19 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
alexbrandmeyer@609 20 // See the License for the specific language governing permissions and
alexbrandmeyer@609 21 // limitations under the License.
alexbrandmeyer@609 22 //
alexbrandmeyer@609 23 // *****************************************************************************
alexbrandmeyer@609 24 // Class: CARFACOutput
alexbrandmeyer@609 25 // *****************************************************************************
alexbrandmeyer@609 26 // The CARFACOutput object stores an array of EarOuput objects. It is meant as a
alexbrandmeyer@609 27 // container for the output generated by the CARFAC object's 'Run' and
alexbrandmeyer@609 28 // 'RunSegment' methods. Depending on the number of audio channels in the input
alexbrandmeyer@609 29 // data, the CARFACOutput will have 1 or more EarOutput obects, each of which
alexbrandmeyer@609 30 // contains a set of two dimensional float arrays (FloatArray2d) representing
alexbrandmeyer@609 31 // the neural activation patterns (NAPs) generated by the CARFAC model.
alexbrandmeyer@609 32 //
alexbrandmeyer@609 33 // The 'InitOutput' method is used to initialize the arrays in each of the
alexbrandmeyer@609 34 // EarOutput sub-objects once the target data dimensions ears (n_ears), channels
alexbrandmeyer@609 35 // (n_ch) and timepoints (n_tp) are known.
alexbrandmeyer@609 36 //
alexbrandmeyer@609 37 // The 'MergeOutput' method is for integrating a smaller CARFACOutput into a
alexbrandmeyer@609 38 // larger CARFACOutput object. This is intended to be used in the context of
alexbrandmeyer@609 39 // the CARFAC class's 'Run' and 'RunSegments' methods.
alexbrandmeyer@609 40
alexbrandmeyer@609 41 #ifndef CARFAC_Open_Source_C__Library_carfac_output_h
alexbrandmeyer@609 42 #define CARFAC_Open_Source_C__Library_carfac_output_h
alexbrandmeyer@609 43
alexbrandmeyer@609 44 #include "ear_output.h"
alexbrandmeyer@609 45
alexbrandmeyer@610 46 struct CARFACOutput {
alexbrandmeyer@610 47 void InitOutput(int n_ears, int n_ch, long n_tp);
alexbrandmeyer@610 48 void MergeOutput(CARFACOutput output, long start, long length);
alexbrandmeyer@609 49 int n_ears_;
alexbrandmeyer@609 50 EarOutput *ears_;
alexbrandmeyer@609 51 };
alexbrandmeyer@609 52
alexbrandmeyer@610 53 #endif