Ignore:
Timestamp:
Aug 31, 2009 10:37:29 AM (10 years ago)
Author:
awalther
Message:

bug in taylor.c for computation of derivatives of inverse functions fixed

File:
1 edited

Legend:

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

    r42 r48  
    582582                    bi = w[i]-Y[i][0];
    583583                else
    584                     bi = W[i][l-1]-Y[i][l];
     584                    bi = W[i][l-1]-Y[i][l];
    585585                for (j=0; j<n; j++)
    586586                    if (nonzero[i][j]>1) {
    587587                        Aij = A[i][j];
    588                         indexA = 1;
     588                        int indj = j;
     589                        indexA = l-1;
    589590                        Xj = X[j]+l;
    590                         indexX = l-1;
     591                        int indX = l;
     592                        indexX = 1;
    591593                        if (da == l-1)
    592594                          {
     
    599601                                bi += (*(++Aij))*(*(--Xj));
    600602                                bi += A[i][j][indexA]*X[j][indexX];
    601                                 indexA++;
    602                                 indexX--;
     603                                indexA--;
     604                                indexX++;
    603605                              }
    604606                          }
     
    607609            }
    608610            MINDEC(rc,jac_solv(tag,n,xold,b,2));
    609             if (rc == -3)
     611           if (rc == -3)
    610612                return -3;
    611613            for (i=0; i<n; i++) {
    612                 X[i][l] += b[i];
    613                 /* 981214 new nl */
    614                 Xhelp[i][l-1] += b[i];
     614              X[i][l] += b[i];
     615              Xhelp[i][l-1] += b[i];
    615616            }
    616617        }
     
    699700                do {
    700701                    for(j=0;j<n;j++)
     702                      {
    701703                        tensor[j][ptr->a] += X[j][ptr->b]*ptr->c;
     704                      }
    702705                    ptr = ptr->next;
    703706                } while (ptr != NULL);
     
    887890
    888891
    889 
Note: See TracChangeset for help on using the changeset viewer.