Changeset 81


Ignore:
Timestamp:
Feb 16, 2010 4:57:12 PM (9 years ago)
Author:
utke
Message:

fix for problem with convolutions in operations div_d_a and eq_min_prod.
The fixes restore logic using in ADOL-C version 2.0.0

Location:
trunk/ADOL-C/src
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/ADOL-C/src/convolut.c

    r42 r81  
    7878/*--------------------------------------------------------------------------*/
    7979/* olvo 980616 nf */
    80 /* Increments truncated convolution of a and b to c and sets a to zero */
     80/* Increments truncated convolution of a and b to c */
    8181void inconv1( int dim, revreal *a, revreal *b, revreal *c ) {
    8282    revreal tmpVal;
     
    8484    for (i=dim-1; i>=0; i--) {
    8585        tmpVal = a[i]*b[0];
    86         a[i] = 0;
    8786        for (j=1; j<=i; j++)
    8887            tmpVal += a[i-j]*b[j];
     
    129128    for (i=dim-1; i>=0; i--) {
    130129        tmpVal = a[i]*b[0];
     130        for (j=1; j<=i; j++)
     131            tmpVal += a[i-j]*b[j];
     132        c[i] -= tmpVal;
     133    }
     134}
     135
     136/*--------------------------------------------------------------------------*/
     137/* Decrements truncated convolution of a and b to c and sets a to zero */
     138void deconvZeroR( int dim, revreal *a, revreal *b, revreal *c ) {
     139    double tmpVal;
     140    int i,j;
     141    for (i=dim-1; i>=0; i--) {
     142        tmpVal = a[i]*b[0];
     143        a[i] = 0;
    131144        for (j=1; j<=i; j++)
    132145            tmpVal += a[i-j]*b[j];
  • trunk/ADOL-C/src/convolut.h

    r42 r81  
    5353void deconv0( int dim, double* a, revreal *b, double* c );
    5454void deconv1( int dim, revreal* a, revreal *b, revreal* c );
     55void deconvZeroR( int dim, revreal *a, revreal *b, revreal *c );
    5556
    5657
  • trunk/ADOL-C/src/ho_rev.c

    r51 r81  
    10921092                    AARG2_INC_O;
    10931093
    1094                     deconv0(k,Ares,Targ1,Aarg2);
    1095                     deconv0(k,Ares,Targ2,Aarg1);
     1094                    deconv1(k,Ares,Targ1,Aarg2);
     1095                    deconv1(k,Ares,Targ2,Aarg1);
    10961096
    10971097                    HOV_INC(Ares,  k)
     
    12281228                           Tres, dp_Atemp);
    12291229                      VEC_COMPUTED_END
    1230                       deconv(k,Ares,dp_Atemp,Aarg);
     1230                      deconvZeroR(k,Ares,dp_Atemp,Aarg);
    12311231
    12321232                      HOV_INC(Ares, k)
     
    20602060        } /* endswitch */
    20612061
    2062         /* Get the next operation */
     2062        /* Get the next operation */   
    20632063        operation=get_op_r();
    20642064#if defined(ADOLC_DEBUG)
Note: See TracChangeset for help on using the changeset viewer.