Changeset 989

Show
Ignore:
Timestamp:
10/28/08 11:41:09 (2 months ago)
Author:
dutfoy
Message:

Fixed bugs in computeConditionalQuantile() and computeCinditionalCDF() methods of ComposedCopula class.
Minor enhancement of DistFunc class.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/dutfoy/devel/lib/src/Uncertainty/Distribution/ComposedCopula.cxx

    r960 r989  
    328328        if (conditioningDimension >= getDimension()) throw InvalidArgumentException(HERE) << "Error: cannot compute a conditional PDF with a conditioning point of dimension greater or equal to the distribution dimension."; 
    329329        // Special case for no conditioning or independent copula 
    330         if ((conditioningDimension == 0) || (hasIndependentCopula())) return getMarginal(conditioningDimension)->computePDF(x); 
     330        if ((conditioningDimension == 0) || (hasIndependentCopula())) return getMarginal(conditioningDimension)->computeCDF(x); 
    331331        // General case 
    332332        UnsignedLong copulaIndex(0); 
     
    352352        const UnsignedLong conditioningDimension(y.getDimension()); 
    353353        if (conditioningDimension >= getDimension()) throw InvalidArgumentException(HERE) << "Error: cannot compute a conditional quantile with a conditioning point of dimension greater or equal to the distribution dimension."; 
     354        if (conditioningDimension == 0) return q; 
    354355        if ((q <= 0.0) || (q >= 1.0)) throw InvalidArgumentException(HERE) << "Error: cannot compute a conditional quantile for a probability level outside of ]0, 1["; 
    355356        // General case 
     
    423424      } 
    424425 
    425       /* Get the isoprobabilist transformation */ 
    426       ComposedCopula::IsoProbabilisticTransformation ComposedCopula::getIsoProbabilisticTransformation() const 
    427       { 
    428         throw NotYetImplementedException(HERE); 
    429       } 
    430  
    431       /* Get the inverse isoprobabilist transformation */ 
    432       ComposedCopula::InverseIsoProbabilisticTransformation ComposedCopula::getInverseIsoProbabilisticTransformation() const 
    433       { 
    434         throw NotYetImplementedException(HERE); 
    435       } 
    436  
    437426      /* Get the standard distribution */ 
    438427      ComposedCopula::Implementation ComposedCopula::getStandardDistribution() const 
  • branches/dutfoy/devel/lib/src/Uncertainty/Distribution/ComposedCopula.hxx

    r960 r989  
    129129        virtual NumericalScalar computeConditionalQuantile(const NumericalScalar q, const NumericalPoint & y) const; 
    130130 
    131         /** Get the isoprobabilist transformation */ 
    132         IsoProbabilisticTransformation getIsoProbabilisticTransformation() const; 
    133  
    134         /** Get the inverse isoprobabilist transformation */ 
    135         InverseIsoProbabilisticTransformation getInverseIsoProbabilisticTransformation() const; 
    136  
    137131        /** Get the standard distribution */ 
    138132        Implementation getStandardDistribution() const; 
  • branches/dutfoy/devel/lib/src/Uncertainty/Distribution/ExtraFunc/DistFunc.cxx

    r960 r989  
    415415      NumericalScalar DistFunc::qNormal(const NumericalScalar x, const Bool tail) 
    416416      { 
     417        if (x == 0.0) return -0.5 * sqrt(4.0 * (log(SpecFunc::ISQRT2PI) - SpecFunc::LogMinNumericalScalar)); 
     418        if (x == 1.0) return  0.5 * sqrt(4.0 * (log(SpecFunc::ISQRT2PI) - SpecFunc::LogMinNumericalScalar)); 
    417419#ifdef USE_DCDFLIB 
    418420        NumericalScalar p(x); 
  • branches/dutfoy/devel/lib/src/Uncertainty/Model/CopulaImplementation.cxx

    r960 r989  
    215215        IndependentCopula result(1); 
    216216        result.setWeight(getWeight()); 
    217         return new IndependentCopula(result); 
     217        return result.clone(); 
    218218      } 
    219219