71 if ( x > this->
par[ 1 ] )
74 double k = (double)this->
par[ 0 ];
76 double a = (double)this->
par[ 2 ];
78 double tta = (double)( x - this->
par[ 1 ] );
80 double ltta = log( tta );
82 double ttab = tta / this->
par[ 3 ];
85 double expf = exp( a * ltta - ttab );
91 this->
der[ 0 ] = (T)expf;
94 this->
der[ 1 ] = (T)( k * ( ttab - a ) * exp( ( a - 1 ) * ltta - ttab ) );
97 this->
der[ 2 ] = (T)( k * ltta * expf );
100 double b2 = (double)( this->
par[ 3 ] * this->
par[ 3 ] );
101 this->
der[ 3 ] = (T)( k * exp( ( a + 1 ) * ltta - ttab ) / b2 );
107 this->
der[ 0 ] = this->
der[ 1 ] = this->
der[ 2 ] = this->
der[ 3 ] = (T)0;