"no matching function for call to" HAS ME BAFFLED
<p>I'm back again with this PCNN code from a text book.<br>
I'm getting the "no matching function call for"  error in pcn2d.cc in lines associated<br>
with variables F, L, U, T, and Y. Here are the class files, the code file, and the compiler log:</p>

<p>rimage.h</p>

<pre><code>    //
    // rimage.h  
    //  
    //  
    // Jason M. Kinser  
    // 15 October 1995  
    // rimage.h  
    // an image of real elements  
    // 1 April 1996 - added histogram  
    // 15 April 1996 - addeed hgradientbox  
    // 27 June 1996 - a dded /= rimage  
    // 7 July 1996 - added / rimage, Smooth  
    //  
        #include "matrix.h"  
        #ifndef RIMAGE    
        #define RIMAGE  
        typedef unsigned short word;    
        typedef unsigned long dword;  

        class rimage : public matrix {  
    public:  
        rimage( void );  
        rimage( int, int );  
        rimage( rimage &amp; );  
        rimage &amp; operator=( const matrix &amp; A );  
        rimage &amp; operator=( const rimage &amp; A );  
        rimage &amp; operator/=( int );  
    // Math  
        rimage operator+( float );  
        rimage operator+( const rimage &amp; );  
        rimage operator*( const rimage &amp; ); // element  
        rimage operator*( float );  
        friend rimage operator+( float, const rimage &amp; );  
        friend rimage operator*( float, const rimage &amp; );  
        rimage Convolve( rimage &amp; );  
    // Image conversions  
        void UpsideDown( void );  
    // Input / Output  
        void SaveTarga( char * );  
    } ;  
    #endif  
</code></pre>

<p>pcnn2d.h</p>

<pre><code>    //  
    // pcnn2d.h  
    // A 2D Pulse-Coupled Neural Network  
    // Jason Kinser  
    // 15 April 1996  
    //  
    #include "rimage.h "  
    class PCNN {  
    int vert, horz;  
    rimage Quantized ( void );  
    public:  
         rimage F, L, U, T, Y, K;  
         float af, al, at, beta, vf, vl, vt;  
         PCNN( int, int);       // The two dimensions  
         PCNN( const PCNN &amp; );  // copy  
         ~PCNN( void );  
    int KernVert( void) const;   
    int KernHorz( void) const;  
    void StdK( void );  
    int Iterate ( rimage &amp; );  
    int FastIterate( rimage &amp; ); // uses fast linking   
    void Clear( void );  
    void Save( char * );  
    void Load( char * );  
    };  
</code></pre>

<p>pcnn2d.cc</p>

<pre><code>    //  
    // pcnn2d.cc  
    // The Pulse-Coupled Neural Network  
    //  
    // Jason Kinser  
    // 15 April 1996  

    #include &lt;math.h&gt;  
    #include &lt;stdlib.h&gt;  
    #include "pcnn2d.h"  

    PCNN::PCNN( int V, int H )  
    {  
        vert = V;   horz = H;  
        F.New( V, H );  
        L.New( V, H );  
        U.New( V, H );  
        T.New( V, H );  
        Y.New( V, H );  
        K.New( 5, 5 );  
        af = 10.0; al = 1.0; at = 5.0;  
        beta = 0.1;  
        vf = 0.5;   vl = 0.5;   vt = 20.0;  
        StdK();  
    }  

    PCNN::PCNN( const PCNN &amp; P )
    {
        vert = P.vert; horz = P.horz;
        F.New( vert, horz );
        L.New( vert, horz );
        U.New( vert, horz );
        T.New( vert, horz );
        Y.New( vert, horz );
        K.New( P.KernVert ( ), P.KernHorz( ) );
        F = P.F;    L = P.L;        U = P.U;
        T = P.T;    Y = P.Y;        K = P.K;
        af = P.af; al = P.al;   at = P.at;
        beta = P.beta;
        vf = P.vf; vl = P.vl; vt = P.vt;
    }
    PCNN::~PCNN( void )
    {
        F.Dispose();    L.Dispose();    U.Dispose();
        T.Dispose();    Y.Dispose();    K.Dispose();
    }

    int PCNN::KernVert( void ) const
    // returns the vertical dimension of the kernel
    {   return K.Vert( ); }

    int PCNN::KernHorz( void ) const
    {   return K.Horz( ); }

    void PCNN::StdK( void )
    {   int i, j, kv, kh; float val;
        kv = K.Vert(); kh = K.Horz();
        for ( i=0; i&lt;kv; i++ ) for ( j=0; j&lt;kh; j++ ) 
        {
            val = hypot( i-kv/2, j-kh/2 );
            if( val != 0.0 ) val = 1.0/val;
            else val = 1.0;
            K[i][j] = val;
        }
    }
    rimage PCNN::Quantized ( void )
    {
        int i,j; rimage ans( vert, horz );
        rimage work( vert, horz ), k( 3,3 );
        k.Clear( 1.0 ); 
        work = Y.Convolve( k );     //ERROR LINE 74
    for ( i=0; i&lt;work.Vert(); i++ ) for ( j=0; j&lt;work.Horz(); j++ )
        if( work[i][j] &gt; 1.0 ) ans[i][j] = 1.0;
        else ans [i][j] = 0.0;
    return ans;
    }
    int PCNN::Iterate( rimage &amp; A )
    {
        rimage work( F.Vert() , F.Horz() );
        work = Y.Convolve( K );              //ERROR LINE 83
        F = exp( -1.0/af ) * F + vf * work + A; //ERROR LINE 84
        L = exp( -1.0/al ) * L + vl* work;  //ERROR LINE 85
        U = F * (1.0 + beta * L);           //ERROR LINE 86
        for( int i=0; i&lt;vert; i++ ) for ( int j = 0; j&lt;horz; j++ )
            if( U[i][j] &gt; T[i][j] )
            Y[i][j] = 1.0;
            else
            Y[i][j] = 0.0;
        T = exp ( -1.0/at ) * T + vt * Y;   //ERROR LINE 92
        return int( Y.Sum( ) );
    }
    int PCNN::FastIterate( rimage &amp; A )
    {
        rimage work ( F.Vert(), F.Horz()), Q ( F. Vert () , F.Horz ());
        int n=0;
        if( vf != 0 ) work = Y.Convolve( K );   //ERROR LINE 99
        F = exp( - 1.0/af ) * F + vf * work + A;    //ERROR LINE 100
        Y.Clear();
        do {
            Q = Y; n++;
            L = Quantized( );       //ERROR LINE 104
            U = F * (1.0 + beta * L);   //ERROR LINE 105
            for( int i=0; i&lt;vert; i++ ) for( int j=0; j&lt;horz; j++ )                 
            if( U[i][j] &gt; T[i][j] )
            Y[i][j] = 1.0;
        } 
        while( (Q + Y).Sum() &gt; 1 &amp;&amp; n &lt; 5);
        T = exp( -1.0/at ) * T + vt * Y;    //ERROR LINE 111
        return int ( Y.Sum( ) );
    }
</code></pre>

<p>The compiler log:</p>

<pre><code>g++.exe -c "PCNN Code/pcnn2d.c" -o   
"PCNN Code/pcnn2d.o" -I"C:/Dev-Cpp/lib/gcc/mingw32/3.4.2/include"    
-I"C:/Dev-Cpp/include/c++/3.4.2/backward"    
-I"C:/Dev-Cpp/include/c++/3.4.2/mingw32"    
-I"C:/Dev-Cpp/include/c++/3.4.2"  
-I"C:/Dev-Cpp/include"     


In file included from C:/Dev-Cpp/include/c++/3.4.2/backward/iostream.h:31,  
                 from PCNN Code/vector.h:9,  
                 from PCNN Code/matrix.h:10,  
                 from PCNN Code/rimage.h :15,  
                 from PCNN Code/pcnn2d.h:8,  
                 from PCNN Code/pcnn2d.c:12:  
C:/Dev-Cpp/include/c++/3.4.2/backward/backward_warning.h:32:2:   
warning: #warning This file includes at least one deprecated or antiquated header.   
Please consider using one of the 32 headers found in section 17.4.1.2 of the C++ standard.   Examples include substituting the &lt;X&gt; header for the &lt;X.h&gt; header for C++ includes, or &lt;iostream&gt; instead of the deprecated header &lt;iostream.h&gt;. To disable this warning use -Wno-deprecated.  
PCNN Code/pcnn2d.c: In member function `rimage PCNN::Quantized()':  
PCNN Code/pcnn2d.c:74: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  

PCNN Code/pcnn2d.c: In member function `int PCNN::Iterate(rimage&amp;)':  
PCNN Code/pcnn2d.c:83: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:84: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:84: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:85: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:85: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:86: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:92: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:92: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c: In member function `int PCNN::FastIterate(rimage&amp;)':  
PCNN Code/pcnn2d.c:99: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:100: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:100: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:104: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:105: error: no matching function for call to `rimage::rimage(rimage)'  

PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:111: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  
PCNN Code/pcnn2d.c:111: error: no matching function for call to `rimage::rimage(rimage)'  
PCNN Code/rimage.h :27: note: candidates are: rimage::rimage(rimage&amp;)  

make.exe: *** ["PCNN Code/pcnn2d.o"] Error 1  
Execution terminated
</code></pre>
