Index: trunk/npstat/stat/Distributions1D.hh =================================================================== --- trunk/npstat/stat/Distributions1D.hh (revision 682) +++ trunk/npstat/stat/Distributions1D.hh (revision 683) @@ -1,1066 +1,1065 @@ #ifndef NPSTAT_DISTRIBUTIONS1D_HH_ #define NPSTAT_DISTRIBUTIONS1D_HH_ /*! // \file Distributions1D.hh // // \brief A number of useful 1-d continuous statistical distributions // // Author: I. Volobouev // // November 2009 */ #include "npstat/stat/Distribution1DFactory.hh" namespace npstat { /** // The uniform distribution is defined here by a constant density // equal to 1 between 0 and 1 and equal to 0 everywhere else */ class Uniform1D : public AbsScalableDistribution1D { public: inline Uniform1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale) {} inline virtual Uniform1D* clone() const {return new Uniform1D(*this);} inline virtual ~Uniform1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Uniform1D";} static inline unsigned version() {return 1;} static Uniform1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; inline Uniform1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale) {} inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return 1.0 - unscaledCdf(x);} }; /** Isosceles triangle distribution: 1 - |x| supported on [-1, 1] */ class IsoscelesTriangle1D : public AbsScalableDistribution1D { public: inline IsoscelesTriangle1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale) {} inline virtual IsoscelesTriangle1D* clone() const {return new IsoscelesTriangle1D(*this);} inline virtual ~IsoscelesTriangle1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::IsoscelesTriangle1D";} static inline unsigned version() {return 1;} static IsoscelesTriangle1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; inline IsoscelesTriangle1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale) {} inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return 1.0 - unscaledCdf(x);} }; /** Exponential distribution. "scale" is the decay time. */ class Exponential1D : public AbsScalableDistribution1D { public: inline Exponential1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale) {} inline virtual Exponential1D* clone() const {return new Exponential1D(*this);} inline virtual ~Exponential1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Exponential1D";} static inline unsigned version() {return 1;} static Exponential1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; inline Exponential1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale) {} inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; }; /** Logistic distribution */ class Logistic1D : public AbsScalableDistribution1D { public: inline Logistic1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale) {} inline virtual Logistic1D* clone() const {return new Logistic1D(*this);} inline virtual ~Logistic1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Logistic1D";} static inline unsigned version() {return 1;} static Logistic1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; inline Logistic1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale) {} inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; }; /** // A distribution whose density has a simple quadratic shape. // The support is from 0 to 1, and the coefficients "a" and "b" // are the coefficients for the Legendre polynomials of 1st // and 2nd degree translated to the support region. Note that // only those values of "a" and "b" that guarantee non-negativity // of the density are allowed, otherwise the code will generate // a run-time error. */ class Quadratic1D : public AbsScalableDistribution1D { public: Quadratic1D(double location, double scale, double a, double b); inline virtual Quadratic1D* clone() const {return new Quadratic1D(*this);} inline virtual ~Quadratic1D() {} inline double a() const {return a_;} inline double b() const {return b_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Quadratic1D";} static inline unsigned version() {return 2;} static Quadratic1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; Quadratic1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 2;} void verifyNonNegative(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return 1.0 - unscaledCdf(x);} double a_; double b_; }; /** // A distribution whose density logarithm has a simple quadratic // shape. The support is from 0 to 1, and the coefficients "a" and "b" // are the coefficients for the Legendre polynomials of 1st and 2nd // degree translated to the support region. */ class LogQuadratic1D : public AbsScalableDistribution1D { public: LogQuadratic1D(double location, double scale, double a, double b); inline virtual LogQuadratic1D* clone() const {return new LogQuadratic1D(*this);} inline virtual ~LogQuadratic1D() {} inline double a() const {return a_;} inline double b() const {return b_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::LogQuadratic1D";} static inline unsigned version() {return 2;} static LogQuadratic1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; LogQuadratic1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 2;} void normalize(); long double quadInteg(long double x) const; double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return 1.0 - unscaledCdf(x);} long double ref_; long double range_; double a_; double b_; double k_; double s_; double norm_; }; /** The Gaussian (or Normal) distribution */ class Gauss1D : public AbsScalableDistribution1D { public: Gauss1D(double location, double scale); inline virtual Gauss1D* clone() const {return new Gauss1D(*this);} inline virtual ~Gauss1D() {} // Higher quality generator than the one provided by // the quantile function virtual unsigned random(AbsRandomGenerator& g, double* generatedRandom) const; // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Gauss1D";} static inline unsigned version() {return 1;} static Gauss1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; - inline Gauss1D(const double location, const double scale, - const std::vector& /* params */) - : AbsScalableDistribution1D(location, scale) {} + Gauss1D(const double location, const double scale, + const std::vector& params); inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; double xmin_; double xmax_; }; /** Gaussian distribution truncated at some number of sigmas */ class TruncatedGauss1D : public AbsScalableDistribution1D { public: TruncatedGauss1D(double location, double scale, double nsigma); inline virtual TruncatedGauss1D* clone() const {return new TruncatedGauss1D(*this);} inline virtual ~TruncatedGauss1D() {} inline double nsigma() const {return nsigma_;} // Higher quality generator than the one provided by // the quantile function virtual unsigned random(AbsRandomGenerator& g, double* generatedRandom) const; // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::TruncatedGauss1D";} static inline unsigned version() {return 1;} static TruncatedGauss1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; TruncatedGauss1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return unscaledCdf(-x);} double nsigma_; double norm_; double cdf0_; }; /** // Gaussian distribution on the [0, 1] interval, mirrored at the boundaries. // This is the Green's function of the diffusion equation on [0, 1]. The // interval can be shifted and scaled as for the uniform distribution. */ class MirroredGauss1D : public AbsScalableDistribution1D { public: MirroredGauss1D(double location, double scale, double meanOn0_1, double sigmaOn0_1); inline virtual MirroredGauss1D* clone() const {return new MirroredGauss1D(*this);} inline virtual ~MirroredGauss1D() {} inline double meanOn0_1() const {return mu0_;} inline double sigmaOn0_1() const {return sigma0_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::MirroredGauss1D";} static inline unsigned version() {return 1;} static MirroredGauss1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; MirroredGauss1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 2;} void validate(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; long double ldCdf(double x) const; double mu0_; double sigma0_; }; /** // Bifurcated Gaussian distribution. Different sigmas // can be used on the left and on the right, with constructor // parameter "leftSigmaFraction" specifying the ratio of // the left sigma to the sum of sigmas (this ratio must be // between 0 and 1). Different truncations in terms of the // number of sigmas can be used as well. */ class BifurcatedGauss1D : public AbsScalableDistribution1D { public: BifurcatedGauss1D(double location, double scale, double leftSigmaFraction, double nSigmasLeft, double nSigmasRight); inline virtual BifurcatedGauss1D* clone() const {return new BifurcatedGauss1D(*this);} inline virtual ~BifurcatedGauss1D() {} inline double leftSigmaFraction() const {return leftSigma_/(leftSigma_ + rightSigma_);} inline double nSigmasLeft() const {return nSigmasLeft_;} inline double nSigmasRight() const {return nSigmasRight_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::BifurcatedGauss1D";} static inline unsigned version() {return 1;} static BifurcatedGauss1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: BifurcatedGauss1D(double location, double scale); friend class ScalableDistribution1DFactory; BifurcatedGauss1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 3;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; double leftSigma_; double rightSigma_; double nSigmasLeft_; double nSigmasRight_; double norm_; double leftCdfFrac_; double cdf0Left_; double cdf0Right_; }; /** Symmetric beta distribution */ class SymmetricBeta1D : public AbsScalableDistribution1D { public: SymmetricBeta1D(double location, double scale, double power); inline virtual SymmetricBeta1D* clone() const {return new SymmetricBeta1D(*this);} inline virtual ~SymmetricBeta1D() {} inline double power() const {return n_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::SymmetricBeta1D";} static inline unsigned version() {return 1;} static SymmetricBeta1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; SymmetricBeta1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return unscaledCdf(-x);} double calculateNorm() const; double n_; double norm_; }; /** Beta1D density is proportional to x^(apha-1) * (1-x)^(beta-1) */ class Beta1D : public AbsScalableDistribution1D { public: Beta1D(double location, double scale, double alpha, double beta); inline virtual Beta1D* clone() const {return new Beta1D(*this);} inline virtual ~Beta1D() {} inline double alpha() const {return alpha_;} inline double beta() const {return beta_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Beta1D";} static inline unsigned version() {return 1;} static Beta1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; Beta1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 2;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledExceedance(double x) const; double unscaledQuantile(double x) const; double calculateNorm() const; double alpha_; double beta_; double norm_; }; /** Shiftable gamma distribution */ class Gamma1D : public AbsScalableDistribution1D { public: Gamma1D(double location, double scale, double alpha); inline virtual Gamma1D* clone() const {return new Gamma1D(*this);} inline virtual ~Gamma1D() {} inline double alpha() const {return alpha_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Gamma1D";} static inline unsigned version() {return 1;} static Gamma1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; Gamma1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledExceedance(double x) const; double unscaledQuantile(double x) const; void initialize(); double alpha_; double norm_; }; /** // Pareto distribution. Location parameter is location of 0, scale // parameter is the distance between 0 and the start of the density // (like the normal Pareto distribution location parameter). */ class Pareto1D : public AbsScalableDistribution1D { public: Pareto1D(double location, double scale, double powerParameter); inline virtual Pareto1D* clone() const {return new Pareto1D(*this);} inline virtual ~Pareto1D() {} inline double powerParameter() const {return c_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Pareto1D";} static inline unsigned version() {return 1;} static Pareto1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; Pareto1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; double c_; double support_; }; /** // Uniform distribution with Pareto tail attached to the right, where // the support of the uniform would normally end. Location parameter // is location of 0, scale parameter is the width of the uniform part // (like the normal Pareto distribution location parameter). */ class UniPareto1D : public AbsScalableDistribution1D { public: UniPareto1D(double location, double scale, double powerParameter); inline virtual UniPareto1D* clone() const {return new UniPareto1D(*this);} inline virtual ~UniPareto1D() {} inline double powerParameter() const {return c_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::UniPareto1D";} static inline unsigned version() {return 1;} static UniPareto1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; UniPareto1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; double c_; double support_; double amplitude_; }; /** "Huber" distribution */ class Huber1D : public AbsScalableDistribution1D { public: Huber1D(double location, double scale, double tailWeight); inline virtual Huber1D* clone() const {return new Huber1D(*this);} inline virtual ~Huber1D() {} inline double tailWeight() const {return tailWeight_;} inline double tailStart() const {return a_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Huber1D";} static inline unsigned version() {return 1;} static Huber1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; Huber1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return unscaledCdf(-x);} double weight(double a) const; double tailWeight_; double a_; double normfactor_; double support_; double cdf0_; }; /** Cauchy (or Breit-Wigner) distribution */ class Cauchy1D : public AbsScalableDistribution1D { public: Cauchy1D(double location, double scale); inline virtual Cauchy1D* clone() const {return new Cauchy1D(*this);} inline virtual ~Cauchy1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Cauchy1D";} static inline unsigned version() {return 1;} static Cauchy1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; Cauchy1D(const double location, const double scale, const std::vector& params); inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return unscaledCdf(-x);} double support_; }; /** // Log-normal distribution represented by its mean, standard // deviation, and skewness. This representation is more useful // than other representations encountered in statistical literature. */ class LogNormal : public AbsScalableDistribution1D { public: LogNormal(double mean, double stdev, double skewness); inline virtual LogNormal* clone() const {return new LogNormal(*this);} inline virtual ~LogNormal() {} inline double skewness() const {return skew_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::LogNormal";} static inline unsigned version() {return 1;} static LogNormal* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; LogNormal(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledExceedance(double x) const; double unscaledQuantile(double x) const; double skew_; double logw_; double s_; double xi_; double emgamovd_; }; /** // Moyal Distribution (originally derived by Moyal as an approximation // to the Landau distribution) */ class Moyal1D : public AbsScalableDistribution1D { public: Moyal1D(double location, double scale); inline virtual Moyal1D* clone() const {return new Moyal1D(*this);} inline virtual ~Moyal1D() {} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Moyal1D";} static inline unsigned version() {return 1;} static Moyal1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D& r) const {return AbsScalableDistribution1D::isEqual(r);} private: friend class ScalableDistribution1DFactory; Moyal1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 0;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; double xmax_; double xmin_; }; /** Student's t-distribution */ class StudentsT1D : public AbsScalableDistribution1D { public: StudentsT1D(double location, double scale, double nDegreesOfFreedom); inline virtual StudentsT1D* clone() const {return new StudentsT1D(*this);} inline virtual ~StudentsT1D() {} inline double nDegreesOfFreedom() const {return nDoF_;} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::StudentsT1D";} static inline unsigned version() {return 1;} static StudentsT1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; StudentsT1D(double location, double scale, const std::vector& params); inline static int nParameters() {return 1;} void initialize(); double effectiveSupport() const; double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledExceedance(double x) const; double unscaledQuantile(double x) const; double nDoF_; double normfactor_; double power_; double bignum_; }; /** Distribution defined by an interpolation table */ class Tabulated1D : public AbsScalableDistribution1D { public: // The "data" array gives (unnormalized) density values at // equidistant intervals. data[0] is density at 0.0, and // data[dataLen-1] is density at 1.0. If "dataLen" is less // than 2, uniform distribution will be created. Internally, // the data is kept in double precision. // // "interpolationDegree" must be less than 4 and less than "dataLen". // template Tabulated1D(double location, double scale, const Real* data, unsigned dataLen, unsigned interpolationDegree); inline Tabulated1D(const double location, const double scale, const std::vector& table, const unsigned interpolationDegree) : AbsScalableDistribution1D(location, scale) { const unsigned long sz = table.size(); initialize(sz ? &table[0] : (double*)0, sz, interpolationDegree); } inline virtual Tabulated1D* clone() const {return new Tabulated1D(*this);} inline virtual ~Tabulated1D() {} inline unsigned interpolationDegree() const {return deg_;} inline unsigned tableLength() const {return len_;} inline const double* tableData() const {return &table_[0];} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::Tabulated1D";} static inline unsigned version() {return 1;} static Tabulated1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; // The following constructor creates interpolator // of maximum degree possible Tabulated1D(double location, double scale, const std::vector& params); inline static int nParameters() {return -1;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; double unscaledExceedance(double x) const; template void initialize( const Real* data, unsigned dataLen, unsigned interpolationDegree); void normalize(); double interpolate(double x) const; double intervalInteg(unsigned intervalNumber) const; double interpIntegral(double x0, double x1) const; std::vector table_; std::vector cdf_; std::vector exceed_; double step_; unsigned len_; unsigned deg_; }; /** // Another interpolated distribution. For this one, we will assume // that the coordinates correspond to 1-d histogram bin centers. */ class BinnedDensity1D : public AbsScalableDistribution1D { public: // The "data" array gives density values at equidistant intervals. // data[0] is density at 0.5/dataLen, and data[dataLen-1] is density // at 1.0 - 0.5/dataLen. // // "interpolationDegree" must be less than 2. // template BinnedDensity1D(double location, double scale, const Real* data, unsigned dataLen, unsigned interpolationDegree); inline BinnedDensity1D(const double location, const double scale, const std::vector& table, const unsigned interpolationDegree) : AbsScalableDistribution1D(location, scale) { const unsigned long sz = table.size(); initialize(sz ? &table[0] : (double*)0, sz, interpolationDegree); } inline virtual BinnedDensity1D* clone() const {return new BinnedDensity1D(*this);} inline virtual ~BinnedDensity1D() {} inline unsigned interpolationDegree() const {return deg_;} inline unsigned tableLength() const {return len_;} inline const double* tableData() const {return &table_[0];} // Methods needed for I/O virtual gs::ClassId classId() const {return gs::ClassId(*this);} virtual bool write(std::ostream& os) const; static inline const char* classname() {return "npstat::BinnedDensity1D";} static inline unsigned version() {return 1;} static BinnedDensity1D* read(const gs::ClassId& id, std::istream& in); protected: virtual bool isEqual(const AbsDistribution1D&) const; private: friend class ScalableDistribution1DFactory; // The following constructor creates interpolator // of maximum degree possible BinnedDensity1D(double location, double scale, const std::vector& params); inline static int nParameters() {return -1;} double unscaledDensity(double x) const; double unscaledCdf(double x) const; double unscaledQuantile(double x) const; inline double unscaledExceedance(const double x) const {return 1.0 - unscaledCdf(x);} template void initialize( const Real* data, unsigned dataLen, unsigned interpolationDegree); void normalize(); double interpolate(double x) const; std::vector table_; std::vector cdf_; double step_; unsigned len_; unsigned deg_; unsigned firstNonZeroBin_; unsigned lastNonZeroBin_; }; } #include "npstat/stat/Distributions1D.icc" #endif // NPSTAT_DISTRIBUTIONS1D_HH_ Index: trunk/npstat/stat/Distributions1D.cc =================================================================== --- trunk/npstat/stat/Distributions1D.cc (revision 682) +++ trunk/npstat/stat/Distributions1D.cc (revision 683) @@ -1,2771 +1,2778 @@ #include #include #include #include #include "geners/binaryIO.hh" #include "npstat/nm/MathUtils.hh" #include "npstat/nm/SpecialFunctions.hh" #include "npstat/nm/interpolate.hh" #include "npstat/stat/Distributions1D.hh" #include "npstat/stat/StatUtils.hh" #include "npstat/stat/distributionReadError.hh" #define SQR2PI 2.5066282746310005 #define SQRT2 1.41421356237309505 #define SQRPI 1.77245385090551603 #define SQRT2L 1.414213562373095048801689L #define SQRPIL 1.77245385090551602729816748L #define TWOPIL 6.28318530717958647692528676656L static long double inverseErf(const long double fval) { long double x = npstat::inverseGaussCdf((fval + 1.0L)/2.0L)/SQRT2L; for (unsigned i=0; i<2; ++i) { const long double guessed = erfl(x); const long double deri = 2.0L/SQRPIL*expl(-x*x); x += (fval - guessed)/deri; } return x; } static unsigned improved_random(npstat::AbsRandomGenerator& g, long double* generatedRandom) { const long double extra = sqrt(DBL_EPSILON); long double u = 0.0L; unsigned callcount = 0; while (u <= 0.0L || u >= 1.0L) { u = g()*(1.0L + extra) - extra/2.0L; u += (g() - 0.5L)*extra; callcount += 2U; } *generatedRandom = u; return callcount; } static unsigned gauss_random(const double mean, const double sigma, npstat::AbsRandomGenerator& g, double* generatedRandom) { assert(generatedRandom); long double r1 = 0.0L, r2 = 0.0L; const unsigned calls = improved_random(g, &r1) + improved_random(g, &r2); *generatedRandom = mean + sigma*sqrtl(-2.0L*logl(r1))*sinl(TWOPIL*(r2-0.5L)); return calls; } // static unsigned gauss_random(const double mean, const double sigma, // npstat::AbsRandomGenerator& g, // double* generatedRandom) // { // assert(generatedRandom); // long double r1 = 0.0L; // const unsigned count = improved_random(g, &r1); // *generatedRandom = mean + sigma*SQRT2*inverseErf(2.0L*r1 - 1.0L); // return count; // } namespace npstat { bool SymmetricBeta1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, n_); return !os.fail(); } SymmetricBeta1D* SymmetricBeta1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { double n; gs::read_pod(in, &n); if (!in.fail()) return new SymmetricBeta1D(location, scale, n); } distributionReadError(in, classname()); return 0; } bool SymmetricBeta1D::isEqual(const AbsDistribution1D& otherBase) const { const SymmetricBeta1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && n_ == r.n_; } SymmetricBeta1D::SymmetricBeta1D(const double location, const double scale, const double power) : AbsScalableDistribution1D(location, scale), n_(power) { norm_ = calculateNorm(); } SymmetricBeta1D::SymmetricBeta1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), n_(params[0]) { norm_ = calculateNorm(); } double SymmetricBeta1D::calculateNorm() const { static const double normcoeffs[11] = { 0.5, 0.75, 0.9375, 1.09375, 1.23046875, 1.353515625, 1.46630859375, 1.571044921875, 1.6692352294921875, 1.76197052001953125, 1.85006904602050781}; if (n_ <= -1.0) throw std::invalid_argument( "In npstat::SymmetricBeta1D::calculateNorm: " "invalid power parameter"); const int intpow = static_cast(floor(n_)); if (static_cast(intpow) == n_ && intpow >= 0 && intpow <= 10) return normcoeffs[intpow]; else return Gamma(1.5 + n_)/sqrt(M_PI)/Gamma(1.0 + n_); } double SymmetricBeta1D::unscaledDensity(const double x) const { const double oneminusrsq = 1.0 - x*x; if (oneminusrsq <= 0.0) return 0.0; else return norm_*pow(oneminusrsq, n_); } double SymmetricBeta1D::unscaledCdf(const double x) const { if (x >= 1.0) return 1.0; else if (x <= -1.0) return 0.0; else if (n_ == 0.0) return (x + 1.0)/2.0; else return incompleteBeta(n_+1.0, n_+1.0, (x + 1.0)/2.0); } double SymmetricBeta1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::SymmetricBeta1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return -1.0; else if (r1 == 1.0) return 1.0; else { double r; if (n_ == 0.0) r = r1*2.0 - 1.0; else r = 2.0*inverseIncompleteBeta(n_+1.0, n_+1.0, r1) - 1.0; if (r < -1.0) r = -1.0; else if (r > 1.0) r = 1.0; return r; } } bool Beta1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, alpha_); gs::write_pod(os, beta_); return !os.fail(); } Beta1D* Beta1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, a, b; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &a); gs::read_pod(in, &b); if (!in.fail()) return new Beta1D(location, scale, a, b); } distributionReadError(in, classname()); return 0; } bool Beta1D::isEqual(const AbsDistribution1D& otherBase) const { const Beta1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && alpha_ == r.alpha_ && beta_ == r.beta_; } Beta1D::Beta1D(const double location, const double scale, const double pa, const double pb) : AbsScalableDistribution1D(location, scale), alpha_(pa), beta_(pb) { norm_ = calculateNorm(); } Beta1D::Beta1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), alpha_(params[0]), beta_(params[1]) { norm_ = calculateNorm(); } double Beta1D::calculateNorm() const { if (!(alpha_ > 0.0 && beta_ > 0.0)) throw std::invalid_argument( "In npstat::Beta1D::calculateNorm: invalid power parameters"); return Gamma(alpha_ + beta_)/Gamma(alpha_)/Gamma(beta_); } double Beta1D::unscaledDensity(const double x) const { if (x <= 0.0 || x >= 1.0) return 0.0; else if (alpha_ == 1.0 && beta_ == 1.0) return 1.0; else return norm_*pow(x, alpha_-1.0)*pow(1.0-x, beta_-1.0); } double Beta1D::unscaledCdf(const double x) const { if (x >= 1.0) return 1.0; else if (x <= 0.0) return 0.0; else if (alpha_ == 1.0 && beta_ == 1.0) return x; else return incompleteBeta(alpha_, beta_, x); } double Beta1D::unscaledExceedance(const double x) const { return 1.0 - unscaledCdf(x); } double Beta1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Beta1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 0.0; else if (r1 == 1.0) return 1.0; else if (alpha_ == 1.0 && beta_ == 1.0) return r1; else return inverseIncompleteBeta(alpha_, beta_, r1); } Gamma1D::Gamma1D(const double location, const double scale, const double a) : AbsScalableDistribution1D(location, scale), alpha_(a) { initialize(); } Gamma1D::Gamma1D(double location, double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), alpha_(params[0]) { initialize(); } void Gamma1D::initialize() { if (!(alpha_ > 0.0)) throw std::invalid_argument( "In npstat::Gamma1D::initialize: invalid power parameter"); norm_ = 1.0/Gamma(alpha_); } bool Gamma1D::isEqual(const AbsDistribution1D& otherBase) const { const Gamma1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && alpha_ == r.alpha_; } double Gamma1D::unscaledDensity(const double x) const { if (x > 0.0) return norm_*pow(x, alpha_-1.0)*exp(-x); else return 0.0; } double Gamma1D::unscaledCdf(const double x) const { if (x > 0.0) return incompleteGamma(alpha_, x); else return 0.0; } double Gamma1D::unscaledExceedance(const double x) const { if (x > 0.0) return incompleteGammaC(alpha_, x); else return 1.0; } double Gamma1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Gamma1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); return inverseIncompleteGamma(alpha_, r1); } bool Gamma1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, alpha_); return !os.fail(); } Gamma1D* Gamma1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, a; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &a); if (!in.fail()) return new Gamma1D(location, scale, a); } distributionReadError(in, classname()); return 0; } Gauss1D::Gauss1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale), xmin_(inverseGaussCdf(0.0)), xmax_(inverseGaussCdf(1.0)) { } + Gauss1D::Gauss1D(const double location, const double scale, + const std::vector& /* params */) + : AbsScalableDistribution1D(location, scale), + xmin_(inverseGaussCdf(0.0)), xmax_(inverseGaussCdf(1.0)) + { + } + double Gauss1D::unscaledDensity(const double x) const { if (x < xmin_ || x > xmax_) return 0.0; else return exp(-x*x/2.0)/SQR2PI; } unsigned Gauss1D::random(AbsRandomGenerator& g, double* generatedRandom) const { return gauss_random(location(), scale(), g, generatedRandom); } bool Gauss1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Gauss1D* Gauss1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Gauss1D(location, scale); } double Gauss1D::unscaledCdf(const double x) const { if (x <= xmin_) return 0.0; if (x >= xmax_) return 1.0; if (x < 0.0) return erfc(-x/SQRT2)/2.0; else return (1.0 + erf(x/SQRT2))/2.0; } double Gauss1D::unscaledExceedance(const double x) const { if (x <= xmin_) return 1.0; if (x >= xmax_) return 0.0; if (x > 0.0) return erfc(x/SQRT2)/2.0; else return (1.0 - erf(x/SQRT2))/2.0; } double Gauss1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Gauss1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); return inverseGaussCdf(r1); } double Uniform1D::unscaledDensity(const double x) const { if (x >= 0.0 && x <= 1.0) return 1.0; else return 0.0; } bool Uniform1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Uniform1D* Uniform1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Uniform1D(location, scale); } double Uniform1D::unscaledCdf(const double x) const { if (x <= 0.0) return 0.0; else if (x >= 1.0) return 1.0; else return x; } double Uniform1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Uniform1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); return r1; } double IsoscelesTriangle1D::unscaledDensity(const double x) const { if (x > -1.0 && x < 1.0) return 1.0 - fabs(x); else return 0.0; } bool IsoscelesTriangle1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } IsoscelesTriangle1D* IsoscelesTriangle1D::read( const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new IsoscelesTriangle1D(location, scale); } double IsoscelesTriangle1D::unscaledCdf(const double x) const { if (x <= -1.0) return 0.0; else if (x >= 1.0) return 1.0; else if (x <= 0.0) { const double tmp = 1.0 + x; return 0.5*tmp*tmp; } else { const double tmp = 1.0 - x; return 1.0 - 0.5*tmp*tmp; } } double IsoscelesTriangle1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::IsoscelesTriangle1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return -1.0; else if (r1 == 1.0) return 1.0; else if (r1 <= 0.5) return sqrt(2.0*r1) - 1.0; else return 1.0 - sqrt((1.0 - r1)*2.0); } bool Exponential1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Exponential1D* Exponential1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Exponential1D(location, scale); } double Exponential1D::unscaledDensity(const double x) const { if (x < 0.0) return 0.0; const double eval = exp(-x); return eval < DBL_MIN ? 0.0 : eval; } double Exponential1D::unscaledCdf(const double x) const { return x > 0.0 ? 1.0 - exp(-x) : 0.0; } double Exponential1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Exponential1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 1.0) return -log(DBL_MIN); else return -log(1.0 - r1); } double Exponential1D::unscaledExceedance(const double x) const { if (x < 0.0) return 1.0; const double eval = exp(-x); return eval < DBL_MIN ? 0.0 : eval; } bool Logistic1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Logistic1D* Logistic1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Logistic1D(location, scale); } double Logistic1D::unscaledDensity(const double x) const { const double eval = exp(-x); if (eval < DBL_MIN) return 0.0; else { const double tmp = 1.0 + eval; return eval/tmp/tmp; } } double Logistic1D::unscaledCdf(const double x) const { const double lmax = -log(DBL_MIN); if (x <= -lmax) return 0.0; else if (x >= lmax) return 1.0; else return 1.0/(1.0 + exp(-x)); } double Logistic1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Logistic1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); const double lmax = -log(DBL_MIN); if (r1 == 0.0) return -lmax; else if (r1 == 1.0) return lmax; else return log(r1/(1.0 - r1)); } double Logistic1D::unscaledExceedance(const double x) const { const double lmax = -log(DBL_MIN); if (x >= lmax) return 0.0; else if (x <= -lmax) return 1.0; else { const double eval = exp(-x); return eval/(1.0 + eval); } } bool Quadratic1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, a_); gs::write_pod(os, b_); return !os.fail(); } Quadratic1D* Quadratic1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { double a, b; gs::read_pod(in, &a); gs::read_pod(in, &b); if (!in.fail()) return new Quadratic1D(location, scale, a, b); } distributionReadError(in, classname()); return 0; } bool Quadratic1D::isEqual(const AbsDistribution1D& otherBase) const { const Quadratic1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && a_ == r.a_ && b_ == r.b_; } Quadratic1D::Quadratic1D(const double location, const double scale, const double a, const double b) : AbsScalableDistribution1D(location, scale), a_(a), b_(b) { verifyNonNegative(); } Quadratic1D::Quadratic1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), a_(params[0]), b_(params[1]) { verifyNonNegative(); } void Quadratic1D::verifyNonNegative() { const double a = 2.0*a_; const double b = 2.0*b_; if (b == 0.0) { if (fabs(a) > 1.0) throw std::invalid_argument( "In npstat::Quadratic1D::verifyNonNegative:" " invalid distribution parameters"); } else { double x1 = 0.0, x2 = 0.0; const double sixb = 6*b; if (solveQuadratic((2*a-sixb)/sixb, (1-a+b)/sixb, &x1, &x2)) { if (!(fabs(x1 - 0.5) >= 0.5 && fabs(x2 - 0.5) >= 0.5)) throw std::invalid_argument( "In npstat::Quadratic1D::verifyNonNegative:" " invalid distribution parameters"); } } } double Quadratic1D::unscaledDensity(const double x) const { if (x < 0.0 || x > 1.0) return 0.0; else return 1.0 + 2.0*(b_ - a_ + x*(2.0*a_ + 6.0*b_*(x - 1.0))); } double Quadratic1D::unscaledCdf(const double x) const { if (x <= 0.0) return 0.0; else if (x >= 1.0) return 1.0; else return x*(1.0 + 2.0*(b_ - a_ + x*(a_ - 3.0*b_ + 2.0*b_*x))); } double Quadratic1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Quadratic1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 0.0; else if (r1 == 1.0) return 1.0; else { const double a = 2.0*a_; const double b = 2.0*b_; if (b == 0.0) { if (a == 0.0) return r1; else { double x0 = 0.0, x1 = 0.0; const unsigned n = solveQuadratic( (1.0 - a)/a, -r1/a, &x0, &x1); if (!n) throw std::runtime_error( "In npstat::Quadratic1D::unscaledQuantile: " "no solutions"); if (fabs(x0 - 0.5) < fabs(x1 - 0.5)) return x0; else return x1; } } else { const double twob = 2*b; double x[3] = {0.0}; const unsigned n = solveCubic( (a - 3*b)/twob, (1 - a + b)/twob, -r1/twob, x); if (n == 1U) return x[0]; else { unsigned ibest = 0; double dbest = fabs(x[0] - 0.5); for (unsigned i=1; i()); current.ensureSameId(id); double location, scale, a, b; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &a); gs::read_pod(in, &b); if (!in.fail()) return new LogQuadratic1D(location, scale, a, b); } distributionReadError(in, classname()); return 0; } bool LogQuadratic1D::isEqual(const AbsDistribution1D& otherBase) const { const LogQuadratic1D& r = static_cast( otherBase); return AbsScalableDistribution1D::isEqual(r) && a_ == r.a_ && b_ == r.b_; } LogQuadratic1D::LogQuadratic1D(const double location, const double scale, const double a, const double b) : AbsScalableDistribution1D(location, scale), a_(a), b_(b) { normalize(); } LogQuadratic1D::LogQuadratic1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), a_(params[0]), b_(params[1]) { normalize(); } inline long double LogQuadratic1D::quadInteg(const long double x) const { return dawsonIntegral(x)*expl(x*x); } void LogQuadratic1D::normalize() { ref_ = 0.0L; range_ = 1.0L; k_ = 0.0; s_ = 0.0; norm_ = 1.0; const double b = 2.0*b_; const double a = 2.0*a_; if (b > DBL_EPSILON) { k_ = sqrt(6.0*b); s_ = 0.5 - a/(6.0*b); ref_ = quadInteg(k_*s_); range_ = ref_ - quadInteg(k_*(s_ - 1.0)); norm_ = k_/range_; } else if (b < -DBL_EPSILON) { k_ = sqrt(-6.0*b); s_ = 0.5 - a/(6.0*b); ref_ = erfl(k_*s_); range_ = ref_ - erfl(k_*(s_ - 1.0)); norm_ = 2.0*k_/SQRPI/range_; } else if (fabs(a) > DBL_EPSILON) { range_ = expl(2.0L*a) - 1.0L; if (fabs(a) > 1.e-10) norm_ = a/sinh(a); } } double LogQuadratic1D::unscaledDensity(const double x) const { if (x < 0.0 || x > 1.0) return 0.0; const double b = 2.0*b_; if (fabs(b) > DBL_EPSILON) { const double delta = x - s_; return norm_*exp(6.0*b*delta*delta); } const double a = 2.0*a_; if (fabs(a) > DBL_EPSILON) return norm_*exp((2.0*x - 1.0)*a); else return 1.0; } double LogQuadratic1D::unscaledCdf(const double x) const { if (x <= 0.0) return 0.0; else if (x >= 1.0) return 1.0; else { const double b = 2.0*b_; const double a = 2.0*a_; if (b > DBL_EPSILON) return (ref_ - quadInteg(k_*(s_ - x)))/range_; else if (b < -DBL_EPSILON) return (ref_ - erfl(k_*(s_ - x)))/range_; else if (fabs(a) > DBL_EPSILON) return (expl(2.0L*a*x) - 1.0L)/range_; else return x; } } double LogQuadratic1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::LogQuadratic1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 0.0; else if (r1 == 1.0) return 1.0; else { const double b = 2.0*b_; const double a = 2.0*a_; double q = 0.0; if (b > DBL_EPSILON) q = s_ - inverseExpsqIntegral(ref_ - r1*range_)/k_; else if (b < -DBL_EPSILON) q = s_ - inverseErf(ref_ - r1*range_)/k_; else if (fabs(a) > DBL_EPSILON) q = logl(r1*range_ + 1.0L)/2.0/a; else q = r1; if (q < 0.0) q = 0.0; else if (q > 1.0) q = 1.0; return q; } } bool TruncatedGauss1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, nsigma_); return !os.fail(); } TruncatedGauss1D* TruncatedGauss1D::read( const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, nsig; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &nsig); if (!in.fail()) return new TruncatedGauss1D(location, scale, nsig); } distributionReadError(in, classname()); return 0; } bool TruncatedGauss1D::isEqual(const AbsDistribution1D& otherBase) const { const TruncatedGauss1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && nsigma_ == r.nsigma_; } void TruncatedGauss1D::initialize() { if (nsigma_ <= 0.0) throw std::invalid_argument( "In npstat::TruncatedGauss1D::initialize: " "invalid truncation parameter"); const double maxSig = inverseGaussCdf(1.0); if (nsigma_ >= maxSig) { nsigma_ = maxSig; cdf0_ = 0.0; norm_ = 1.0; } else { cdf0_ = erfc(nsigma_/SQRT2)/2.0; const double u = (1.0 + erf(nsigma_/SQRT2))/2.0; norm_ = 1.0/(u - cdf0_); } } TruncatedGauss1D::TruncatedGauss1D(const double location, const double scale, const double i_nsigma) : AbsScalableDistribution1D(location, scale), nsigma_(i_nsigma) { initialize(); } TruncatedGauss1D::TruncatedGauss1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), nsigma_(params[0]) { initialize(); } double TruncatedGauss1D::unscaledDensity(const double x) const { if (fabs(x) > nsigma_) return 0.0; else return norm_*exp(-x*x/2.0)/SQR2PI; } unsigned TruncatedGauss1D::random(AbsRandomGenerator& g, double* generatedRandom) const { const double m = location(); const double s = scale(); unsigned cnt = gauss_random(m, s, g, generatedRandom); while (fabs(*generatedRandom - m) > nsigma_*s) cnt += gauss_random(m, s, g, generatedRandom); return cnt; } double TruncatedGauss1D::unscaledCdf(const double x) const { if (x <= -nsigma_) return 0.0; else if (x >= nsigma_) return 1.0; else if (x < 0.0) return (erfc(-x/SQRT2)/2.0 - cdf0_)*norm_; else return ((1.0 + erf(x/SQRT2))/2.0 - cdf0_)*norm_; } double TruncatedGauss1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::TruncatedGauss1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return -nsigma_; else if (r1 == 1.0) return nsigma_; else return inverseGaussCdf(r1/norm_ + cdf0_); } bool MirroredGauss1D::isEqual(const AbsDistribution1D& otherBase) const { const MirroredGauss1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && mu0_ == r.mu0_ && sigma0_ == r.sigma0_; } MirroredGauss1D::MirroredGauss1D(const double location, const double scale, const double mean, double const sigma) : AbsScalableDistribution1D(location, scale), mu0_(mean), sigma0_(sigma) { validate(); } MirroredGauss1D::MirroredGauss1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), mu0_(params[0]), sigma0_(params[1]) { validate(); } bool MirroredGauss1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, mu0_); gs::write_pod(os, sigma0_); return !os.fail(); } MirroredGauss1D* MirroredGauss1D::read( const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, mu, sig; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &mu); gs::read_pod(in, &sig); if (!in.fail()) return new MirroredGauss1D(location, scale, mu, sig); } distributionReadError(in, classname()); return 0; } double MirroredGauss1D::unscaledDensity(const double x) const { if (x < 0.0 || x > 1.0) return 0.0; Gauss1D g(x, sigma0_); long double acc = g.density(mu0_)*1.0L + g.density(-mu0_); for (unsigned k=1; ; ++k) { const long double old = acc; acc += g.density(2.0*k + mu0_); acc += g.density(2.0*k - mu0_); acc += g.density(-2.0*k + mu0_); acc += g.density(-2.0*k - mu0_); if (old == acc) break; } return acc; } long double MirroredGauss1D::ldCdf(const double x) const { if (x <= 0.0) return 0.0L; else if (x >= 1.0) return 1.0L; else { long double acc = 0.0L; { Gauss1D g(mu0_, sigma0_); acc += (g.cdf(x) - g.cdf(0.0)); } { Gauss1D g(-mu0_, sigma0_); acc += (g.cdf(x) - g.cdf(0.0)); } for (unsigned k=1; ; ++k) { const long double old = acc; { Gauss1D g(2.0*k + mu0_, sigma0_); acc += (g.cdf(x) - g.cdf(0.0)); } { Gauss1D g(2.0*k - mu0_, sigma0_); acc += (g.cdf(x) - g.cdf(0.0)); } { Gauss1D g(-2.0*k + mu0_, sigma0_); acc -= (g.exceedance(x) - g.exceedance(0.0)); } { Gauss1D g(-2.0*k - mu0_, sigma0_); acc -= (g.exceedance(x) - g.exceedance(0.0)); } if (old == acc) break; } return acc; } } double MirroredGauss1D::unscaledCdf(const double x) const { return ldCdf(x); } double MirroredGauss1D::unscaledExceedance(const double x) const { return 1.0L - ldCdf(x); } double MirroredGauss1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::MirroredGauss1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 0.0; else if (r1 == 1.0) return 1.0; else { const long double ldr1 = r1; double xmin = 0.0; double xmax = 1.0; for (unsigned i=0; i<1000; ++i) { if ((xmax - xmin)/xmax <= 2.0*DBL_EPSILON) break; const double xtry = (xmin + xmax)/2.0; const long double ld = ldCdf(xtry); if (ld == ldr1) return xtry; else if (ld > ldr1) xmax = xtry; else xmin = xtry; } return (xmin + xmax)/2.0; } } void MirroredGauss1D::validate() { if (mu0_ < 0.0 || mu0_ > 1.0) throw std::invalid_argument( "In MirroredGauss1D::validate: interval mean must be within [0, 1]"); if (sigma0_ <= 0.0) throw std::invalid_argument( "In MirroredGauss1D::validate: interval sigma must be positive"); } BifurcatedGauss1D::BifurcatedGauss1D( const double location, const double scale, const double i_leftSigmaFraction, const double i_nSigmasLeft, const double i_nSigmasRight) : AbsScalableDistribution1D(location, scale), leftSigma_(i_leftSigmaFraction*2.0), rightSigma_(2.0 - leftSigma_), nSigmasLeft_(i_nSigmasLeft), nSigmasRight_(i_nSigmasRight) { initialize(); } BifurcatedGauss1D::BifurcatedGauss1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), leftSigma_(params[0]*2.0), rightSigma_(2.0 - leftSigma_), nSigmasLeft_(params[1]), nSigmasRight_(params[2]) { initialize(); } void BifurcatedGauss1D::initialize() { if (leftSigma_ < 0.0 || rightSigma_ < 0.0) throw std::invalid_argument( "In npstat::BifurcatedGauss1D::initialize: " "invalid left sigma fraction"); if (nSigmasLeft_ < 0.0) throw std::invalid_argument( "In npstat::BifurcatedGauss1D::initialize: " "invalid left truncation parameter"); if (nSigmasRight_ < 0.0) throw std::invalid_argument( "In npstat::BifurcatedGauss1D::initialize: " "invalid right truncation parameter"); if (nSigmasLeft_ + nSigmasRight_ == 0.0) throw std::invalid_argument( "In npstat::BifurcatedGauss1D::initialize: " "both truncation parameters can not be 0"); const double maxNSigma = inverseGaussCdf(1.0); if (nSigmasRight_ > maxNSigma) nSigmasRight_ = maxNSigma; if (nSigmasLeft_ > maxNSigma) nSigmasLeft_ = maxNSigma; cdf0Left_ = erfc(nSigmasLeft_/SQRT2)/2.0; cdf0Right_ = (1.0 + erf(nSigmasRight_/SQRT2))/2.0; assert(cdf0Right_ > cdf0Left_); const double leftArea = (0.5 - cdf0Left_)*leftSigma_; const double rightArea = (cdf0Right_ - 0.5)*rightSigma_; norm_ = 1.0/(leftArea + rightArea); leftCdfFrac_ = leftArea/(leftArea + rightArea); } double BifurcatedGauss1D::unscaledDensity(const double x) const { if (x == 0.0) return norm_/SQR2PI; else if (x > 0.0) { if (x > rightSigma_*nSigmasRight_) return 0.0; else { const double dx = x/rightSigma_; return norm_*exp(-dx*dx/2.0)/SQR2PI; } } else { if (x < -leftSigma_*nSigmasLeft_) return 0.0; else { const double dx = x/leftSigma_; return norm_*exp(-dx*dx/2.0)/SQR2PI; } } } double BifurcatedGauss1D::unscaledCdf(const double x) const { if (x == 0.0) return leftCdfFrac_; else if (x > 0.0) { if (x > rightSigma_*nSigmasRight_) return 1.0; else { const double dx = x/rightSigma_; const double cdfDelta = (1.0 + erf(dx/SQRT2))/2.0 - cdf0Right_; return 1.0 + cdfDelta*(1.0 - leftCdfFrac_)/(cdf0Right_ - 0.5); } } else { if (x < -leftSigma_*nSigmasLeft_) return 0.0; else { const double dx = x/leftSigma_; const double cdfDelta = erfc(-dx/SQRT2)/2.0 - cdf0Left_; return cdfDelta*leftCdfFrac_/(0.5 - cdf0Left_); } } } double BifurcatedGauss1D::unscaledExceedance(const double x) const { return 1.0 - unscaledCdf(x); } double BifurcatedGauss1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::BifurcatedGauss1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return -nSigmasLeft_*leftSigma_; else if (r1 == 1.0) return nSigmasRight_*rightSigma_; else { if (r1 == leftCdfFrac_) return 0.0; else if (r1 < leftCdfFrac_) { // Map 0 into cdf0Left_ and leftCdfFrac_ into 0.5 const double arg = r1/leftCdfFrac_*(0.5-cdf0Left_) + cdf0Left_; return leftSigma_*inverseGaussCdf(arg); } else { // Map leftCdfFrac_ into 0.5 and 1.0 into cdf0Right_ const double d = (r1 - leftCdfFrac_)/(1.0 - leftCdfFrac_); const double arg = 0.5 + d*(cdf0Right_ - 0.5); return rightSigma_*inverseGaussCdf(arg); } } } bool BifurcatedGauss1D::isEqual(const AbsDistribution1D& otherBase) const { const BifurcatedGauss1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && leftSigma_ == r.leftSigma_ && rightSigma_ == r.rightSigma_ && nSigmasLeft_ == r.nSigmasLeft_ && nSigmasRight_ == r.nSigmasRight_ && norm_ == r.norm_ && leftCdfFrac_ == r.leftCdfFrac_ && cdf0Left_ == r.cdf0Left_ && cdf0Right_ == r.cdf0Right_; } bool BifurcatedGauss1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, leftSigma_); gs::write_pod(os, rightSigma_); gs::write_pod(os, nSigmasLeft_); gs::write_pod(os, nSigmasRight_); gs::write_pod(os, norm_); gs::write_pod(os, leftCdfFrac_); gs::write_pod(os, cdf0Left_); gs::write_pod(os, cdf0Right_); return !os.fail(); } BifurcatedGauss1D::BifurcatedGauss1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale) { } BifurcatedGauss1D* BifurcatedGauss1D::read( const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { BifurcatedGauss1D* ptr = new BifurcatedGauss1D(location, scale); gs::read_pod(in, &ptr->leftSigma_); gs::read_pod(in, &ptr->rightSigma_); gs::read_pod(in, &ptr->nSigmasLeft_); gs::read_pod(in, &ptr->nSigmasRight_); gs::read_pod(in, &ptr->norm_); gs::read_pod(in, &ptr->leftCdfFrac_); gs::read_pod(in, &ptr->cdf0Left_); gs::read_pod(in, &ptr->cdf0Right_); if (!in.fail() && ptr->leftSigma_ >= 0.0 && ptr->rightSigma_ >= 0.0 && ptr->leftSigma_ + ptr->rightSigma_ > 0.0 && ptr->nSigmasLeft_ >= 0.0 && ptr->nSigmasRight_ >= 0.0 && ptr->nSigmasLeft_ + ptr->nSigmasRight_ > 0.0 && ptr->norm_ > 0.0 && ptr->leftCdfFrac_ >= 0.0 && ptr->cdf0Left_ >= 0.0 && ptr->cdf0Right_ > ptr->cdf0Left_) return ptr; else delete ptr; } distributionReadError(in, classname()); return 0; } Cauchy1D::Cauchy1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale), support_(sqrt(DBL_MAX/M_PI)) { } Cauchy1D::Cauchy1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale), support_(sqrt(DBL_MAX/M_PI)) { } bool Cauchy1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Cauchy1D* Cauchy1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Cauchy1D(location, scale); } double Cauchy1D::unscaledDensity(const double x) const { if (fabs(x) < support_) return 1.0/M_PI/(1.0 + x*x); else return 0.0; } double Cauchy1D::unscaledCdf(const double x) const { if (x < -support_) return 0.0; else if (x > support_) return 1.0; else return atan(x)/M_PI + 0.5; } double Cauchy1D::unscaledQuantile(const double x) const { if (!(x >= 0.0 && x <= 1.0)) throw std::domain_error( "In npstat::Cauchy1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (x == 0.0) return -support_; else if (x == 1.0) return support_; else return tan(M_PI*(x - 0.5)); } bool LogNormal::isEqual(const AbsDistribution1D& otherBase) const { const LogNormal& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && skew_ == r.skew_; } bool LogNormal::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, skew_); return !os.fail(); } LogNormal* LogNormal::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, skew; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &skew); if (!in.fail()) return new LogNormal(location, scale, skew); } distributionReadError(in, classname()); return 0; } void LogNormal::initialize() { logw_ = 0.0; s_ = 0.0; xi_ = 0.0; emgamovd_ = 0.0; if (skew_) { const double b1 = skew_*skew_; const double tmp = pow((2.0+b1+sqrt(b1*(4.0+b1)))/2.0, 1.0/3.0); const double w = tmp + 1.0/tmp - 1.0; logw_ = log(w); if (logw_ > 0.0) { s_ = sqrt(logw_); emgamovd_ = 1.0/sqrt(w*(w-1.0)); xi_ = -emgamovd_*sqrt(w); } else { // This is not different from a Gaussian within // the numerical precision of our calculations logw_ = 0.0; skew_ = 0.0; } } } LogNormal::LogNormal(const double mean, const double stdev, const double skewness) : AbsScalableDistribution1D(mean, stdev), skew_(skewness) { initialize(); } LogNormal::LogNormal(const double mean, const double stdev, const std::vector& params) : AbsScalableDistribution1D(mean, stdev), skew_(params[0]) { initialize(); } double LogNormal::unscaledDensity(const double x) const { if (skew_) { const double diff = skew_ > 0.0 ? x - xi_ : -x - xi_; if (diff <= 0.0) return 0.0; else { const double lg = log(diff/emgamovd_); return exp(-lg*lg/2.0/logw_)/s_/SQR2PI/diff; } } else { // This is a Gaussian return exp(-x*x/2.0)/SQR2PI; } } double LogNormal::unscaledCdf(const double x) const { if (skew_) { const double diff = skew_ > 0.0 ? x - xi_ : -x - xi_; double posCdf = 0.0; if (diff > 0.0) posCdf = (1.0 + erf(log(diff/emgamovd_)/s_/SQRT2))/2.0; return skew_ > 0.0 ? posCdf : 1.0 - posCdf; } else return (1.0 + erf(x/SQRT2))/2.0; } double LogNormal::unscaledExceedance(const double x) const { return 1.0 - unscaledCdf(x); } double LogNormal::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::LogNormal::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); const double g = inverseGaussCdf(skew_ >= 0.0 ? r1 : 1.0 - r1); if (skew_) { const double v = emgamovd_*exp(s_*g) + xi_; return skew_ > 0.0 ? v : -v; } else return g; } Moyal1D::Moyal1D(const double location, const double scale) : AbsScalableDistribution1D(location, scale), xmax_(-2.0*log(DBL_MIN*SQR2PI)), xmin_(-log(xmax_)) { } Moyal1D::Moyal1D(const double location, const double scale, const std::vector& /* params */) : AbsScalableDistribution1D(location, scale), xmax_(-2.0*log(DBL_MIN*SQR2PI)), xmin_(-log(xmax_)) { } double Moyal1D::unscaledDensity(const double x) const { if (x <= xmin_ || x >= xmax_) return 0.0; else return exp(-0.5*(x + exp(-x)))/SQR2PI; } double Moyal1D::unscaledCdf(const double x) const { if (x <= xmin_) return 0.0; else if (x >= xmax_) return 1.0; else return incompleteGammaC(0.5, 0.5*exp(-x)); } double Moyal1D::unscaledExceedance(const double x) const { if (x <= xmin_) return 1.0; else if (x >= xmax_) return 0.0; else return incompleteGamma(0.5, 0.5*exp(-x)); } double Moyal1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Moyal1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return xmin_; else if (r1 == 1.0) return xmax_; else { const double d = inverseIncompleteGammaC(0.5, r1); return -log(2.0*d); } } bool Moyal1D::write(std::ostream& os) const { return AbsScalableDistribution1D::write(os); } Moyal1D* Moyal1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (!AbsScalableDistribution1D::read(in, &location, &scale)) { distributionReadError(in, classname()); return 0; } return new Moyal1D(location, scale); } bool Pareto1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, c_); return !os.fail(); } Pareto1D* Pareto1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, c; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &c); if (!in.fail()) return new Pareto1D(location, scale, c); } distributionReadError(in, classname()); return 0; } bool Pareto1D::isEqual(const AbsDistribution1D& otherBase) const { const Pareto1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && c_ == r.c_; } void Pareto1D::initialize() { if (c_ <= 0.0) throw std::invalid_argument( "In npstat::Pareto1D::initialize: power parameter must be positive"); if (c_ > 1.0) support_ = pow(1.0/DBL_MIN, 1.0/c_); else support_ = 1.0/DBL_MIN; } Pareto1D::Pareto1D(const double location, const double scale, const double powerParam) : AbsScalableDistribution1D(location, scale), c_(powerParam) { initialize(); } Pareto1D::Pareto1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), c_(params[0]) { initialize(); } double Pareto1D::unscaledDensity(const double x) const { if (x < 1.0 || x > support_) return 0.0; else return c_/pow(x, c_ + 1.0); } double Pareto1D::unscaledCdf(const double x) const { if (x <= 1.0) return 0.0; else if (x >= support_) return 1.0; else return 1.0 - 1.0/pow(x, c_); } double Pareto1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Pareto1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 1.0; else if (r1 == 1.0) return support_; else return pow(1.0 - r1, -1.0/c_); } double Pareto1D::unscaledExceedance(const double x) const { if (x <= 1.0) return 1.0; else if (x >= support_) return 0.0; else return 1.0/pow(x, c_); } bool UniPareto1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, c_); return !os.fail(); } UniPareto1D* UniPareto1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, c; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &c); if (!in.fail()) return new UniPareto1D(location, scale, c); } distributionReadError(in, classname()); return 0; } bool UniPareto1D::isEqual(const AbsDistribution1D& otherBase) const { const UniPareto1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && c_ == r.c_; } void UniPareto1D::initialize() { if (c_ <= 0.0) throw std::invalid_argument( "In npstat::UniPareto1D::initialize: power parameter must be positive"); if (c_ > 1.0) support_ = pow(1.0/DBL_MIN, 1.0/c_); else support_ = 1.0/DBL_MIN; amplitude_ = c_/(c_ + 1.0); } UniPareto1D::UniPareto1D(const double location, const double scale, const double powerParam) : AbsScalableDistribution1D(location, scale), c_(powerParam) { initialize(); } UniPareto1D::UniPareto1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), c_(params[0]) { initialize(); } double UniPareto1D::unscaledDensity(const double x) const { if (x < 0.0 || x > support_) return 0.0; else if (x <= 1.0) return amplitude_; else return amplitude_/pow(x, c_ + 1.0); } double UniPareto1D::unscaledCdf(const double x) const { if (x <= 0.0) return 0.0; else if (x >= support_) return 1.0; else if (x <= 1.0) return x*amplitude_; else return amplitude_ + (1.0 - amplitude_)*(1.0 - 1.0/pow(x, c_)); } double UniPareto1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::UniPareto1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 <= amplitude_) return r1/amplitude_; else if (r1 == 1.0) return support_; else return pow(1.0 - (r1 - amplitude_)/(1.0 - amplitude_), -1.0/c_); } double UniPareto1D::unscaledExceedance(const double x) const { if (x > 1.0) return (1.0 - amplitude_)/pow(x, c_); else return 1.0 - unscaledCdf(x); } bool Huber1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, tailWeight_); return !os.fail(); } Huber1D* Huber1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale, tailWeight; if (AbsScalableDistribution1D::read(in, &location, &scale)) { gs::read_pod(in, &tailWeight); if (!in.fail()) return new Huber1D(location, scale, tailWeight); } distributionReadError(in, classname()); return 0; } bool Huber1D::isEqual(const AbsDistribution1D& otherBase) const { const Huber1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && tailWeight_ == r.tailWeight_; } void Huber1D::initialize() { if (!(tailWeight_ >= 0.0 && tailWeight_ < 1.0)) throw std::invalid_argument( "In npstat::Huber1D::initialize: " "tail weight not inside [0, 1) interval"); if (tailWeight_ == 0.0) { // Pure Gaussian a_ = DBL_MAX; normfactor_ = 1.0/sqrt(2.0*M_PI); support_ = inverseGaussCdf(1.0); cdf0_ = 0.0; } else { // Solve the equation for "a" by bisection const double eps = 2.0*DBL_EPSILON; double c = -2.0*log(tailWeight_); assert(c > 0.0); assert(weight(c) <= tailWeight_); double b = 0.0; while ((c - b)/(c + b) > eps) { const double half = (c + b)/2.0; if (weight(half) >= tailWeight_) b = half; else c = half; } a_ = (c + b)/2.0; normfactor_ = 0.5/(exp(-a_*a_/2.0)/a_ + sqrt(M_PI/2.0)*erf(a_/SQRT2)); support_ = a_/2.0 - log(DBL_MIN)/a_; cdf0_ = (1.0 + erf(-a_/SQRT2))/2.0; } } Huber1D::Huber1D(const double location, const double scale, const double tailWeight) : AbsScalableDistribution1D(location, scale), tailWeight_(tailWeight) { initialize(); } Huber1D::Huber1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), tailWeight_(params[0]) { initialize(); } double Huber1D::unscaledDensity(const double x) const { const double absx = fabs(x); if (absx <= a_) return normfactor_*exp(-x*x/2.0); else return normfactor_*exp(a_*(a_/2.0 - absx)); } double Huber1D::unscaledCdf(const double x) const { if (tailWeight_ == 0.0) return (1.0 + erf(x/SQRT2))/2.0; if (x < -a_) return normfactor_*exp((a_*(a_ + 2*x))/2.0)/a_; else if (x <= a_) { static const double sq1 = sqrt(M_PI/2.0); static const double sq2 = sqrt(2.0); return normfactor_*sq1*(erf(a_/sq2) + erf(x/sq2)) + tailWeight_/2; } else return 1.0 - normfactor_*exp((a_*(a_ - 2*x))/2.0)/a_; } double Huber1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Huber1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (tailWeight_ == 0.0) return inverseGaussCdf(r1); if (r1 == 0.0) return -support_; else if (r1 == 1.0) return support_; else if (r1 <= tailWeight_/2.0) return log(r1*a_/normfactor_)/a_ - 0.5*a_; else if (r1 < 1.0 - tailWeight_/2.0) { const double t = (r1 - tailWeight_/2.0)/normfactor_/SQR2PI + cdf0_; return inverseGaussCdf(t); } else return 0.5*a_ - log((1.0 - r1)*a_/normfactor_)/a_; } double Huber1D::weight(const double a) const { static const double sq1 = sqrt(M_PI/2.0); return 1.0/(1.0 + a*exp(a*a/2.0)*sq1*erf(a/SQRT2)); } bool Tabulated1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, deg_); gs::write_pod_vector(os, table_); return !os.fail(); } Tabulated1D* Tabulated1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { unsigned deg = 0; gs::read_pod(in, °); std::vector table; gs::read_pod_vector(in, &table); if (!in.fail() && table.size()) return new Tabulated1D(location, scale, &table[0], table.size(), deg); } distributionReadError(in, classname()); return 0; } bool Tabulated1D::isEqual(const AbsDistribution1D& otherBase) const { const Tabulated1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && table_ == r.table_ && deg_ == r.deg_; } Tabulated1D::Tabulated1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale) { const unsigned npara = params.size(); if (npara) initialize(¶ms[0], npara, std::min(3U, npara-1U)); else initialize(static_cast(0), 0U, 0U); } void Tabulated1D::normalize() { cdf_.clear(); cdf_.reserve(len_); cdf_.push_back(0.0); long double sum = 0.0L; for (unsigned i=0; i(sum)); } double norm = cdf_[len_ - 1]; assert(norm > 0.0); for (unsigned i=0; i0; --i) { sum += intervalInteg(i-1); exceed_[i-1] = static_cast(sum); } norm = exceed_[0]; for (unsigned i=0; i 1.0) return 0.0; if (x == 0.0) return table_[0]; if (x == 1.0) return table_[len_ - 1]; unsigned idx = static_cast(x/step_); if (idx >= len_ - 1) idx = len_ - 2; const double dx = x/step_ - idx; switch (deg_) { case 0: if (dx < 0.5) return table_[idx]; else return table_[idx + 1]; case 1: return interpolate_linear(dx, table_[idx], table_[idx + 1]); case 2: if (idx == 0) return interpolate_quadratic(dx, table_[idx], table_[idx + 1], table_[idx + 2]); else if (idx == len_ - 2) return interpolate_quadratic(dx+1.0, table_[idx - 1], table_[idx], table_[idx + 1]); else { const double v0 = interpolate_quadratic( dx, table_[idx], table_[idx + 1], table_[idx + 2]); const double v1 = interpolate_quadratic( dx+1.0, table_[idx - 1], table_[idx], table_[idx + 1]); return (v0 + v1)/2.0; } case 3: if (idx == 0) return interpolate_cubic(dx, table_[idx], table_[idx + 1], table_[idx + 2], table_[idx + 3]); else if (idx == len_ - 2) return interpolate_cubic(dx+2.0, table_[idx-2], table_[idx-1], table_[idx], table_[idx + 1]); else return interpolate_cubic(dx+1.0, table_[idx - 1], table_[idx], table_[idx + 1], table_[idx + 2]); default: assert(0); return 0.0; } } double Tabulated1D::unscaledDensity(const double x) const { const double v = this->interpolate(x); if (v >= 0.0) return v; else return 0.0; } double Tabulated1D::unscaledCdf(double x) const { if (x <= 0.0) return 0.0; if (x >= 1.0) return 1.0; unsigned idx = static_cast(x/step_); if (idx >= len_ - 1) idx = len_ - 2; double v; switch (deg_) { case 0: { const double dx = x/step_ - idx; if (dx < 0.5) v = table_[idx]*dx*step_; else v = (table_[idx]*0.5 + table_[idx + 1]*(dx - 0.5))*step_; } break; default: v = interpIntegral(step_*idx, x); } return cdf_[idx] + v; } double Tabulated1D::unscaledExceedance(double x) const { if (x <= 0.0) return 1.0; if (x >= 1.0) return 0.0; unsigned idx = static_cast(x/step_); if (idx >= len_ - 1) idx = len_ - 2; double v; switch (deg_) { case 0: { const double dx = x/step_ - idx; if (dx < 0.5) v = table_[idx]*dx*step_; else v = (table_[idx]*0.5 + table_[idx + 1]*(dx - 0.5))*step_; } break; default: v = interpIntegral(step_*idx, x); } return exceed_[idx] - v; } double Tabulated1D::interpIntegral(const double a, const double b) const { static const double legendreRootOver2 = 0.5/sqrt(3.0); const double x0 = (b + a)/2.0; const double step = b - a; const double v0 = unscaledDensity(x0 - legendreRootOver2*step); const double v1 = unscaledDensity(x0 + legendreRootOver2*step); return step*(v0 + v1)/2.0; } double Tabulated1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::Tabulated1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0) return 0.0; if (r1 == 1.0) return 1.0; unsigned idx = std::lower_bound(cdf_.begin(), cdf_.end(), r1) - cdf_.begin() - 1U; double xlo = step_*idx; const double dcdf = r1 - cdf_[idx]; assert(dcdf > 0.0); switch (deg_) { case 0: { const double c1 = table_[idx]*0.5*step_; if (dcdf <= c1) { assert(table_[idx] > 0.0); return xlo + dcdf/table_[idx]; } else { assert(table_[idx+1] > 0.0); return xlo + 0.5*step_ + (dcdf - c1)/table_[idx+1]; } } case 1: { const double a = (table_[idx+1] - table_[idx])/step_/2.0; if (a == 0.0) { assert(table_[idx] > 0.0); return xlo + dcdf/table_[idx]; } else { double x1, x2; const unsigned nroots = solveQuadratic( table_[idx]/a, -dcdf/a, &x1, &x2); if (nroots != 2U) throw std::runtime_error( "In npstat::Tabulated1D::unscaledQuantile: " "unexpected number of solutions"); if (fabs(x1 - 0.5*step_) < fabs(x2 - 0.5*step_)) return xlo + x1; else return xlo + x2; } } default: { double xhi = xlo + step_; const double eps = 2.0*DBL_EPSILON; while ((xhi - xlo)/(xhi + xlo) > eps) { const double med = (xhi + xlo)/2.0; if (unscaledCdf(med) >= r1) xhi = med; else xlo = med; } return (xhi + xlo)/2.0; } } } bool BinnedDensity1D::isEqual(const AbsDistribution1D& otherBase) const { const double eps = 1.0e-12; const BinnedDensity1D& r = static_cast(otherBase); if (!AbsScalableDistribution1D::isEqual(r)) return false; if (!(deg_ == r.deg_)) return false; const unsigned long n = table_.size(); if (!(n == r.table_.size())) return false; for (unsigned long i=0; i eps) return false; return true; } BinnedDensity1D::BinnedDensity1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale) { const unsigned npara = params.size(); if (npara) initialize(¶ms[0], npara, std::min(1U, npara-1U)); else initialize(static_cast(0), 0U, 0U); } void BinnedDensity1D::normalize() { cdf_.clear(); cdf_.reserve(len_); long double sum = 0.0L; switch (deg_) { case 0U: for (unsigned i=0; i(sum)); } break; case 1U: { double oldval = 0.0; double* data = &table_[0]; for (unsigned i=0; i(sum)); } sum += oldval*0.5; } break; default: assert(0); } const double norm = static_cast(sum); assert(norm > 0.0); const double integ = norm*step_; for (unsigned i=0; i 1.0) return 0.0; switch (deg_) { case 0: { unsigned idx = static_cast(x/step_); if (idx > len_ - 1) idx = len_ - 1; return table_[idx]; } case 1: { const double xs = x - step_/2.0; if (xs <= 0.0) return table_[0]; const unsigned idx = static_cast(xs/step_); if (idx > len_ - 2) return table_[len_ - 1]; const double dx = xs/step_ - idx; return interpolate_linear(dx, table_[idx], table_[idx + 1]); } default: assert(0); return 0.0; } } double BinnedDensity1D::unscaledCdf(double x) const { if (x <= 0.0) return 0.0; if (x >= 1.0) return 1.0; double v = 0.0; switch (deg_) { case 0: { unsigned idx = static_cast(x/step_); if (idx > len_ - 1) idx = len_ - 1; v = (idx ? cdf_[idx - 1] : 0.0) + table_[idx]*(x - idx*step_); } break; case 1: { const double xs = x - step_/2.0; if (xs <= 0.0) v = table_[0]*x; else { const unsigned idx = static_cast(xs/step_); if (idx > len_ - 2) v = 1.0 - table_[len_ - 1]*(1.0 - x); else { const double dx = xs - idx*step_; const double slope = (table_[idx+1] - table_[idx])/step_; v = cdf_[idx] + table_[idx]*dx + slope*dx*dx/2.0; } } } break; default: assert(0); break; } if (v < 0.0) v = 0.0; else if (v > 1.0) v = 1.0; return v; } double BinnedDensity1D::unscaledQuantile(const double r1) const { if (!(r1 >= 0.0 && r1 <= 1.0)) throw std::domain_error( "In npstat::BinnedDensity1D::unscaledQuantile: " "cdf argument outside of [0, 1] interval"); if (r1 == 0.0 && deg_) return 0.0; if (r1 == 1.0 && deg_) return 1.0; double v = 0.0; switch (deg_) { case 0: { if (r1 == 0) v = firstNonZeroBin_; else if (r1 == 1.0) v = lastNonZeroBin_ + 1U; else if (r1 <= cdf_[0]) v = r1/cdf_[0]; else { double rem; const unsigned bin = quantileBinFromCdf(&cdf_[0],len_,r1,&rem) + 1U; assert(bin < len_); v = bin + rem; } } break; case 1: { if (r1 <= cdf_[0]) v = 0.5*r1/cdf_[0]; else if (r1 >= cdf_[len_ - 1]) v = (len_-0.5+0.5*(r1-cdf_[len_-1])/(1.0-cdf_[len_-1])); else { const unsigned idx = std::lower_bound(cdf_.begin(),cdf_.end(),r1) - cdf_.begin() - 1U; assert(idx < len_ - 1); const double k = (table_[idx+1] - table_[idx])/step_; const double y = r1 - cdf_[idx]; double x; if (fabs(k) < 1.e-10*table_[idx]) x = y/table_[idx]; else { const double b = 2.0*table_[idx]/k; const double c = -2.0*y/k; double x1, x2; if (solveQuadratic(b, c, &x1, &x2)) { if (fabs(x1 - step_*0.5) < fabs(x2 - step_*0.5)) x = x1; else x = x2; } else { // This can happen due to various round-off problems. // Assume that the quadratic equation determinant // should have been 0 instead of negative. x = -b/2.0; } } if (x < 0.0) x = 0.0; else if (x > step_) x = step_; v = x/step_ + idx + 0.5; } } break; default: assert(0); return 0.0; } v *= step_; if (v < 0.0) v = 0.0; else if (v > 1.0) v = 1.0; return v; } bool BinnedDensity1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, deg_); gs::write_pod_vector(os, table_); return !os.fail(); } BinnedDensity1D* BinnedDensity1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current( gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { unsigned deg = 0; gs::read_pod(in, °); std::vector table; gs::read_pod_vector(in, &table); if (!in.fail() && table.size()) return new BinnedDensity1D(location, scale, &table[0], table.size(), deg); } distributionReadError(in, classname()); return 0; } bool StudentsT1D::write(std::ostream& os) const { AbsScalableDistribution1D::write(os); gs::write_pod(os, nDoF_); return !os.fail(); } StudentsT1D* StudentsT1D::read(const gs::ClassId& id, std::istream& in) { static const gs::ClassId current(gs::ClassId::makeId()); current.ensureSameId(id); double location, scale; if (AbsScalableDistribution1D::read(in, &location, &scale)) { double nDoF; gs::read_pod(in, &nDoF); if (!in.fail()) return new StudentsT1D(location, scale, nDoF); } distributionReadError(in, classname()); return 0; } bool StudentsT1D::isEqual(const AbsDistribution1D& otherBase) const { const StudentsT1D& r = static_cast(otherBase); return AbsScalableDistribution1D::isEqual(r) && nDoF_ == r.nDoF_; } StudentsT1D::StudentsT1D(const double location, const double scale, const double degreesOfFreedom) : AbsScalableDistribution1D(location, scale), nDoF_(degreesOfFreedom) { initialize(); } StudentsT1D::StudentsT1D(const double location, const double scale, const std::vector& params) : AbsScalableDistribution1D(location, scale), nDoF_(params[0]) { initialize(); } void StudentsT1D::initialize() { if (nDoF_ <= 0.0) throw std::invalid_argument( "In npstat::StudentsT1D::initialize: invalid number " "of degrees of freedom"); power_ = (nDoF_ + 1.0)/2.0; bignum_ = 0.0; normfactor_ = Gamma(power_)/Gamma(nDoF_/2.0)/sqrt(nDoF_)/SQRPI; } double StudentsT1D::unscaledDensity(const double x) const { return normfactor_*pow(1.0 + x*x/nDoF_, -power_); } double StudentsT1D::unscaledCdf(const double t) const { const double s = sqrt(t*t + nDoF_); return incompleteBeta(nDoF_/2.0, nDoF_/2.0, (t + s)/(2.0*s)); } double StudentsT1D::unscaledExceedance(const double x) const { return 1.0 - unscaledCdf(x); } double StudentsT1D::unscaledQuantile(const double r1) const { if (r1 == 0.5) return 0.0; const double c = inverseIncompleteBeta(nDoF_/2.0, nDoF_/2.0, r1); const double tmp = 2.0*c - 1.0; const double a = tmp*tmp; const double denom = 1.0 - a; if (denom > 0.0) { const double sqroot = sqrt(nDoF_*a/denom); return r1 > 0.5 ? sqroot : -sqroot; } else { if (bignum_ == 0.0) (const_cast(this))->bignum_ = effectiveSupport(); return r1 > 0.5 ? bignum_ : -bignum_; } } double StudentsT1D::effectiveSupport() const { // Figure out at which (positive) values of the argument // the density becomes effectively indistinguishable from 0 const double biglog = (log(normfactor_) - log(DBL_MIN) + power_*log(nDoF_))/(2.0*power_); if (biglog >= log(DBL_MAX)) return DBL_MAX; else return exp(biglog); } } Index: trunk/config.log =================================================================== --- trunk/config.log (revision 682) +++ trunk/config.log (revision 683) @@ -1,943 +1,943 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. It was created by npstat configure 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was $ ./configure --disable-static --with-pic ## --------- ## ## Platform. ## ## --------- ## hostname = dawn uname -m = x86_64 uname -r = 4.15.0-72-generic uname -s = Linux uname -v = #81-Ubuntu SMP Tue Nov 26 12:20:02 UTC 2019 /usr/bin/uname -p = unknown /bin/uname -X = unknown /bin/arch = unknown /usr/bin/arch -k = unknown /usr/convex/getsysinfo = unknown /usr/bin/hostinfo = unknown /bin/machine = unknown /usr/bin/oslevel = unknown /bin/universe = unknown PATH: /home/igv/bin PATH: /home/igv/local/bin PATH: /usr/local/anaconda3/bin PATH: /usr/local/bin PATH: /usr/local/root/bin PATH: /usr/local/bin PATH: /bin PATH: /usr/bin PATH: /sbin PATH: /usr/sbin PATH: . ## ----------- ## ## Core tests. ## ## ----------- ## configure:2421: checking for a BSD-compatible install configure:2489: result: /usr/bin/install -c configure:2500: checking whether build environment is sane configure:2555: result: yes configure:2706: checking for a thread-safe mkdir -p configure:2745: result: /bin/mkdir -p configure:2752: checking for gawk configure:2768: found /usr/bin/gawk configure:2779: result: gawk configure:2790: checking whether make sets $(MAKE) configure:2812: result: yes configure:2841: checking whether make supports nested variables configure:2858: result: yes configure:3042: checking for pkg-config configure:3060: found /usr/bin/pkg-config configure:3072: result: /usr/bin/pkg-config configure:3097: checking pkg-config is at least version 0.9.0 configure:3100: result: yes configure:3110: checking for DEPS configure:3117: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3120: $? = 0 configure:3134: $PKG_CONFIG --exists --print-errors "fftw3 >= 3.1.2 geners >= 1.3.0 kstest >= 2.0.0" configure:3137: $? = 0 configure:3195: result: yes configure:3258: checking for g++ configure:3274: found /usr/bin/g++ configure:3285: result: g++ configure:3312: checking for C++ compiler version configure:3321: g++ --version >&5 g++ (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:3332: $? = 0 configure:3321: g++ -v >&5 Using built-in specs. COLLECT_GCC=g++ COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configure:3332: $? = 0 configure:3321: g++ -V >&5 g++: error: unrecognized command line option '-V' g++: fatal error: no input files compilation terminated. configure:3332: $? = 1 configure:3321: g++ -qversion >&5 g++: error: unrecognized command line option '-qversion'; did you mean '--version'? g++: fatal error: no input files compilation terminated. configure:3332: $? = 1 configure:3352: checking whether the C++ compiler works configure:3374: g++ -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3378: $? = 0 configure:3426: result: yes configure:3429: checking for C++ compiler default output file name configure:3431: result: a.out configure:3437: checking for suffix of executables configure:3444: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3448: $? = 0 configure:3470: result: configure:3492: checking whether we are cross compiling configure:3500: g++ -o conftest -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3504: $? = 0 configure:3511: ./conftest configure:3515: $? = 0 configure:3530: result: no configure:3535: checking for suffix of object files configure:3557: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3561: $? = 0 configure:3582: result: o configure:3586: checking whether we are using the GNU C++ compiler configure:3605: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:3605: $? = 0 configure:3614: result: yes configure:3623: checking whether g++ accepts -g configure:3643: g++ -c -g conftest.cpp >&5 configure:3643: $? = 0 configure:3684: result: yes configure:3718: checking for style of include used by make configure:3746: result: GNU configure:3772: checking dependency style of g++ configure:3883: result: gcc3 configure:3952: checking for g77 configure:3968: found /home/igv/bin/g77 configure:3979: result: g77 configure:4005: checking for Fortran 77 compiler version configure:4014: g77 --version >&5 GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4025: $? = 0 configure:4014: g77 -v >&5 Using built-in specs. COLLECT_GCC=g77 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configure:4025: $? = 0 configure:4014: g77 -V >&5 g77: error: unrecognized command line option '-V' g77: fatal error: no input files compilation terminated. configure:4025: $? = 1 configure:4014: g77 -qversion >&5 g77: error: unrecognized command line option '-qversion'; did you mean '--version'? g77: fatal error: no input files compilation terminated. configure:4025: $? = 1 configure:4034: checking whether we are using the GNU Fortran 77 compiler configure:4047: g77 -c conftest.F >&5 configure:4047: $? = 0 configure:4056: result: yes configure:4062: checking whether g77 accepts -g configure:4073: g77 -c -g conftest.f >&5 configure:4073: $? = 0 configure:4081: result: yes configure:4114: checking build system type configure:4128: result: x86_64-pc-linux-gnu configure:4148: checking host system type configure:4161: result: x86_64-pc-linux-gnu configure:4186: checking how to get verbose linking output from g77 configure:4196: g77 -c -g -O2 conftest.f >&5 configure:4196: $? = 0 configure:4214: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) - /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccqGrBsw.s + /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/cc2ilFM8.s GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu) compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu) compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/ccQZ0fOL.o /tmp/ccqGrBsw.s + as -v --64 -o /tmp/cc5gAblW.o /tmp/cc2ilFM8.s GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccPQXGa1.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccQZ0fOL.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/cceCptUJ.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/cc5gAblW.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o configure:4297: result: -v configure:4299: checking for Fortran 77 libraries of g77 configure:4322: g77 -o conftest -g -O2 -v conftest.f Using built-in specs. Target: x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) - /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccUCdJ1w.s + /usr/lib/gcc/x86_64-linux-gnu/7/f951 conftest.f -ffixed-form -quiet -dumpbase conftest.f -mtune=generic -march=x86-64 -auxbase conftest -g -O2 -version -fintrinsic-modules-path /usr/lib/gcc/x86_64-linux-gnu/7/finclude -o /tmp/ccvi7nCb.s GNU Fortran (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu) compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 GNU Fortran2008 (Ubuntu 7.4.0-1ubuntu1~18.04.1) version 7.4.0 (x86_64-linux-gnu) compiled by GNU C version 7.4.0, GMP version 6.1.2, MPFR version 4.0.1, MPC version 1.1.0, isl version isl-0.19-GMP GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 - as -v --64 -o /tmp/ccLb74vM.o /tmp/ccUCdJ1w.s + as -v --64 -o /tmp/ccol5xjZ.o /tmp/ccvi7nCb.s GNU assembler version 2.30 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.30 Reading specs from /usr/lib/gcc/x86_64-linux-gnu/7/libgfortran.spec rename spec lib to liborig - /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccX89c11.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccLb74vM.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o + /usr/lib/gcc/x86_64-linux-gnu/7/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/7/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper -plugin-opt=-fresolution=/tmp/ccQcss1M.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lquadmath -plugin-opt=-pass-through=-lm -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o conftest /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/7/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. /tmp/ccol5xjZ.o -lgfortran -lm -lgcc_s -lgcc -lquadmath -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/7/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu/crtn.o configure:4518: result: -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath configure:4580: checking how to print strings configure:4607: result: printf configure:4676: checking for gcc configure:4692: found /usr/bin/gcc configure:4703: result: gcc configure:4932: checking for C compiler version configure:4941: gcc --version >&5 gcc (Ubuntu 7.4.0-1ubuntu1~18.04.1) 7.4.0 Copyright (C) 2017 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. configure:4952: $? = 0 configure:4941: gcc -v >&5 Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.4.0-1ubuntu1~18.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1) configure:4952: $? = 0 configure:4941: gcc -V >&5 gcc: error: unrecognized command line option '-V' gcc: fatal error: no input files compilation terminated. configure:4952: $? = 1 configure:4941: gcc -qversion >&5 gcc: error: unrecognized command line option '-qversion'; did you mean '--version'? gcc: fatal error: no input files compilation terminated. configure:4952: $? = 1 configure:4956: checking whether we are using the GNU C compiler configure:4975: gcc -c conftest.c >&5 configure:4975: $? = 0 configure:4984: result: yes configure:4993: checking whether gcc accepts -g configure:5013: gcc -c -g conftest.c >&5 configure:5013: $? = 0 configure:5054: result: yes configure:5071: checking for gcc option to accept ISO C89 configure:5134: gcc -c -g -O2 conftest.c >&5 configure:5134: $? = 0 configure:5147: result: none needed configure:5172: checking whether gcc understands -c and -o together configure:5194: gcc -c conftest.c -o conftest2.o configure:5197: $? = 0 configure:5194: gcc -c conftest.c -o conftest2.o configure:5197: $? = 0 configure:5209: result: yes configure:5228: checking dependency style of gcc configure:5339: result: gcc3 configure:5354: checking for a sed that does not truncate output configure:5418: result: /bin/sed configure:5436: checking for grep that handles long lines and -e configure:5494: result: /bin/grep configure:5499: checking for egrep configure:5561: result: /bin/grep -E configure:5566: checking for fgrep configure:5628: result: /bin/grep -F configure:5663: checking for ld used by gcc configure:5730: result: /usr/bin/ld configure:5737: checking if the linker (/usr/bin/ld) is GNU ld configure:5752: result: yes configure:5764: checking for BSD- or MS-compatible name lister (nm) configure:5818: result: /usr/bin/nm -B configure:5948: checking the name lister (/usr/bin/nm -B) interface configure:5955: gcc -c -g -O2 conftest.c >&5 configure:5958: /usr/bin/nm -B "conftest.o" configure:5961: output 0000000000000000 B some_variable configure:5968: result: BSD nm configure:5971: checking whether ln -s works configure:5975: result: yes configure:5983: checking the maximum length of command line arguments configure:6114: result: 1572864 configure:6162: checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format configure:6202: result: func_convert_file_noop configure:6209: checking how to convert x86_64-pc-linux-gnu file names to toolchain format configure:6229: result: func_convert_file_noop configure:6236: checking for /usr/bin/ld option to reload object files configure:6243: result: -r configure:6317: checking for objdump configure:6333: found /usr/bin/objdump configure:6344: result: objdump configure:6376: checking how to recognize dependent libraries configure:6576: result: pass_all configure:6661: checking for dlltool configure:6691: result: no configure:6721: checking how to associate runtime and link libraries configure:6748: result: printf %s\n configure:6809: checking for ar configure:6825: found /usr/bin/ar configure:6836: result: ar configure:6873: checking for archiver @FILE support configure:6890: gcc -c -g -O2 conftest.c >&5 configure:6890: $? = 0 configure:6893: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') configure:6896: $? = 0 configure:6901: ar cru libconftest.a @conftest.lst >&5 ar: `u' modifier ignored since `D' is the default (see `U') ar: conftest.o: No such file or directory configure:6904: $? = 1 configure:6916: result: @ configure:6974: checking for strip configure:6990: found /usr/bin/strip configure:7001: result: strip configure:7073: checking for ranlib configure:7089: found /usr/bin/ranlib configure:7100: result: ranlib configure:7202: checking command to parse /usr/bin/nm -B output from gcc object configure:7355: gcc -c -g -O2 conftest.c >&5 configure:7358: $? = 0 configure:7362: /usr/bin/nm -B conftest.o \| sed -n -e 's/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p' | sed '/ __gnu_lto/d' \> conftest.nm configure:7365: $? = 0 configure:7431: gcc -o conftest -g -O2 conftest.c conftstm.o >&5 configure:7434: $? = 0 configure:7472: result: ok configure:7519: checking for sysroot configure:7549: result: no configure:7556: checking for a working dd configure:7594: result: /bin/dd configure:7598: checking how to truncate binary pipes configure:7613: result: /bin/dd bs=4096 count=1 configure:7749: gcc -c -g -O2 conftest.c >&5 configure:7752: $? = 0 configure:7942: checking for mt configure:7958: found /bin/mt configure:7969: result: mt configure:7992: checking if mt is a manifest tool configure:7998: mt '-?' configure:8006: result: no configure:8683: checking how to run the C preprocessor configure:8714: gcc -E conftest.c configure:8714: $? = 0 configure:8728: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8728: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | /* end confdefs.h. */ | #include configure:8753: result: gcc -E configure:8773: gcc -E conftest.c configure:8773: $? = 0 configure:8787: gcc -E conftest.c conftest.c:11:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:8787: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | /* end confdefs.h. */ | #include configure:8816: checking for ANSI C header files configure:8836: gcc -c -g -O2 conftest.c >&5 configure:8836: $? = 0 configure:8909: gcc -o conftest -g -O2 conftest.c >&5 configure:8909: $? = 0 configure:8909: ./conftest configure:8909: $? = 0 configure:8920: result: yes configure:8933: checking for sys/types.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for sys/stat.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for stdlib.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for string.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for memory.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for strings.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for inttypes.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for stdint.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8933: checking for unistd.h configure:8933: gcc -c -g -O2 conftest.c >&5 configure:8933: $? = 0 configure:8933: result: yes configure:8947: checking for dlfcn.h configure:8947: gcc -c -g -O2 conftest.c >&5 configure:8947: $? = 0 configure:8947: result: yes configure:9214: checking for objdir configure:9229: result: .libs configure:9493: checking if gcc supports -fno-rtti -fno-exceptions configure:9511: gcc -c -g -O2 -fno-rtti -fno-exceptions conftest.c >&5 cc1: warning: command line option '-fno-rtti' is valid for C++/ObjC++ but not for C configure:9515: $? = 0 configure:9528: result: no configure:9886: checking for gcc option to produce PIC configure:9893: result: -fPIC -DPIC configure:9901: checking if gcc PIC flag -fPIC -DPIC works configure:9919: gcc -c -g -O2 -fPIC -DPIC -DPIC conftest.c >&5 configure:9923: $? = 0 configure:9936: result: yes configure:9965: checking if gcc static flag -static works configure:9993: result: yes configure:10008: checking if gcc supports -c -o file.o configure:10029: gcc -c -g -O2 -o out/conftest2.o conftest.c >&5 configure:10033: $? = 0 configure:10055: result: yes configure:10063: checking if gcc supports -c -o file.o configure:10110: result: yes configure:10143: checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:11402: result: yes configure:11439: checking whether -lc should be explicitly linked in configure:11447: gcc -c -g -O2 conftest.c >&5 configure:11450: $? = 0 configure:11465: gcc -shared -fPIC -DPIC conftest.o -v -Wl,-soname -Wl,conftest -o conftest 2\>\&1 \| /bin/grep -lc \>/dev/null 2\>\&1 configure:11468: $? = 0 configure:11482: result: no configure:11642: checking dynamic linker characteristics configure:12223: gcc -o conftest -g -O2 -Wl,-rpath -Wl,/foo conftest.c >&5 configure:12223: $? = 0 configure:12460: result: GNU/Linux ld.so configure:12582: checking how to hardcode library paths into programs configure:12607: result: immediate configure:13155: checking whether stripping libraries is possible configure:13160: result: yes configure:13195: checking if libtool supports shared libraries configure:13197: result: yes configure:13200: checking whether to build shared libraries configure:13225: result: yes configure:13228: checking whether to build static libraries configure:13232: result: no configure:13255: checking how to run the C++ preprocessor configure:13282: g++ -E conftest.cpp configure:13282: $? = 0 configure:13296: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:13296: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:13321: result: g++ -E configure:13341: g++ -E conftest.cpp configure:13341: $? = 0 configure:13355: g++ -E conftest.cpp conftest.cpp:23:10: fatal error: ac_nonexistent.h: No such file or directory #include ^~~~~~~~~~~~~~~~~~ compilation terminated. configure:13355: $? = 1 configure: failed program was: | /* confdefs.h */ | #define PACKAGE_NAME "npstat" | #define PACKAGE_TARNAME "npstat" | #define PACKAGE_VERSION "5.2.0" | #define PACKAGE_STRING "npstat 5.2.0" | #define PACKAGE_BUGREPORT "" | #define PACKAGE_URL "" | #define PACKAGE "npstat" | #define VERSION "5.2.0" | #define STDC_HEADERS 1 | #define HAVE_SYS_TYPES_H 1 | #define HAVE_SYS_STAT_H 1 | #define HAVE_STDLIB_H 1 | #define HAVE_STRING_H 1 | #define HAVE_MEMORY_H 1 | #define HAVE_STRINGS_H 1 | #define HAVE_INTTYPES_H 1 | #define HAVE_STDINT_H 1 | #define HAVE_UNISTD_H 1 | #define HAVE_DLFCN_H 1 | #define LT_OBJDIR ".libs/" | /* end confdefs.h. */ | #include configure:13517: checking for ld used by g++ configure:13584: result: /usr/bin/ld -m elf_x86_64 configure:13591: checking if the linker (/usr/bin/ld -m elf_x86_64) is GNU ld configure:13606: result: yes configure:13661: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:14734: result: yes configure:14770: g++ -c -std=c++11 -O3 -Wall -W -Werror conftest.cpp >&5 configure:14773: $? = 0 configure:15254: checking for g++ option to produce PIC configure:15261: result: -fPIC -DPIC configure:15269: checking if g++ PIC flag -fPIC -DPIC works configure:15287: g++ -c -std=c++11 -O3 -Wall -W -Werror -fPIC -DPIC -DPIC conftest.cpp >&5 configure:15291: $? = 0 configure:15304: result: yes configure:15327: checking if g++ static flag -static works configure:15355: result: yes configure:15367: checking if g++ supports -c -o file.o configure:15388: g++ -c -std=c++11 -O3 -Wall -W -Werror -o out/conftest2.o conftest.cpp >&5 configure:15392: $? = 0 configure:15414: result: yes configure:15419: checking if g++ supports -c -o file.o configure:15466: result: yes configure:15496: checking whether the g++ linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:15536: result: yes configure:15677: checking dynamic linker characteristics configure:16422: result: GNU/Linux ld.so configure:16487: checking how to hardcode library paths into programs configure:16512: result: immediate configure:16653: checking if libtool supports shared libraries configure:16655: result: yes configure:16658: checking whether to build shared libraries configure:16682: result: yes configure:16685: checking whether to build static libraries configure:16689: result: no configure:17041: checking for g77 option to produce PIC configure:17048: result: -fPIC configure:17056: checking if g77 PIC flag -fPIC works configure:17074: g77 -c -g -O2 -fPIC conftest.f >&5 configure:17078: $? = 0 configure:17091: result: yes configure:17114: checking if g77 static flag -static works configure:17142: result: yes configure:17154: checking if g77 supports -c -o file.o configure:17175: g77 -c -g -O2 -o out/conftest2.o conftest.f >&5 configure:17179: $? = 0 configure:17201: result: yes configure:17206: checking if g77 supports -c -o file.o configure:17253: result: yes configure:17283: checking whether the g77 linker (/usr/bin/ld -m elf_x86_64) supports shared libraries configure:18492: result: yes configure:18633: checking dynamic linker characteristics configure:19372: result: GNU/Linux ld.so configure:19437: checking how to hardcode library paths into programs configure:19462: result: immediate configure:19662: checking that generated files are newer than configure configure:19668: result: done configure:19695: creating ./config.status ## ---------------------- ## ## Running config.status. ## ## ---------------------- ## This file was extended by npstat config.status 5.2.0, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = CONFIG_HEADERS = CONFIG_LINKS = CONFIG_COMMANDS = $ ./config.status on dawn config.status:1143: creating Makefile config.status:1143: creating npstat/nm/Makefile config.status:1143: creating npstat/rng/Makefile config.status:1143: creating npstat/stat/Makefile config.status:1143: creating npstat/wrap/Makefile config.status:1143: creating npstat/interfaces/Makefile config.status:1143: creating npstat/emsunfold/Makefile config.status:1143: creating npstat/Makefile config.status:1143: creating examples/C++/Makefile config.status:1143: creating npstat/swig/Makefile config.status:1143: creating npstat.pc config.status:1315: executing depfiles commands config.status:1315: executing libtool commands ## ---------------- ## ## Cache variables. ## ## ---------------- ## ac_cv_build=x86_64-pc-linux-gnu ac_cv_c_compiler_gnu=yes ac_cv_cxx_compiler_gnu=yes ac_cv_env_CCC_set= ac_cv_env_CCC_value= ac_cv_env_CC_set= ac_cv_env_CC_value= ac_cv_env_CFLAGS_set= ac_cv_env_CFLAGS_value= ac_cv_env_CPPFLAGS_set= ac_cv_env_CPPFLAGS_value= ac_cv_env_CPP_set= ac_cv_env_CPP_value= ac_cv_env_CXXCPP_set= ac_cv_env_CXXCPP_value= ac_cv_env_CXXFLAGS_set=set ac_cv_env_CXXFLAGS_value='-std=c++11 -O3 -Wall -W -Werror' ac_cv_env_CXX_set= ac_cv_env_CXX_value= ac_cv_env_DEPS_CFLAGS_set= ac_cv_env_DEPS_CFLAGS_value= ac_cv_env_DEPS_LIBS_set= ac_cv_env_DEPS_LIBS_value= ac_cv_env_F77_set= ac_cv_env_F77_value= ac_cv_env_FFLAGS_set= ac_cv_env_FFLAGS_value= ac_cv_env_LDFLAGS_set= ac_cv_env_LDFLAGS_value= ac_cv_env_LIBS_set= ac_cv_env_LIBS_value= ac_cv_env_LT_SYS_LIBRARY_PATH_set= ac_cv_env_LT_SYS_LIBRARY_PATH_value= ac_cv_env_PKG_CONFIG_LIBDIR_set= ac_cv_env_PKG_CONFIG_LIBDIR_value= ac_cv_env_PKG_CONFIG_PATH_set=set ac_cv_env_PKG_CONFIG_PATH_value=/usr/local/lib/pkgconfig ac_cv_env_PKG_CONFIG_set= ac_cv_env_PKG_CONFIG_value= ac_cv_env_build_alias_set= ac_cv_env_build_alias_value= ac_cv_env_host_alias_set= ac_cv_env_host_alias_value= ac_cv_env_target_alias_set= ac_cv_env_target_alias_value= ac_cv_f77_compiler_gnu=yes ac_cv_f77_libs=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath' ac_cv_header_dlfcn_h=yes ac_cv_header_inttypes_h=yes ac_cv_header_memory_h=yes ac_cv_header_stdc=yes ac_cv_header_stdint_h=yes ac_cv_header_stdlib_h=yes ac_cv_header_string_h=yes ac_cv_header_strings_h=yes ac_cv_header_sys_stat_h=yes ac_cv_header_sys_types_h=yes ac_cv_header_unistd_h=yes ac_cv_host=x86_64-pc-linux-gnu ac_cv_objext=o ac_cv_path_EGREP='/bin/grep -E' ac_cv_path_FGREP='/bin/grep -F' ac_cv_path_GREP=/bin/grep ac_cv_path_SED=/bin/sed ac_cv_path_ac_pt_PKG_CONFIG=/usr/bin/pkg-config ac_cv_path_install='/usr/bin/install -c' ac_cv_path_lt_DD=/bin/dd ac_cv_path_mkdir=/bin/mkdir ac_cv_prog_AWK=gawk ac_cv_prog_CPP='gcc -E' ac_cv_prog_CXXCPP='g++ -E' ac_cv_prog_ac_ct_AR=ar ac_cv_prog_ac_ct_CC=gcc ac_cv_prog_ac_ct_CXX=g++ ac_cv_prog_ac_ct_F77=g77 ac_cv_prog_ac_ct_MANIFEST_TOOL=mt ac_cv_prog_ac_ct_OBJDUMP=objdump ac_cv_prog_ac_ct_RANLIB=ranlib ac_cv_prog_ac_ct_STRIP=strip ac_cv_prog_cc_c89= ac_cv_prog_cc_g=yes ac_cv_prog_cxx_g=yes ac_cv_prog_f77_g=yes ac_cv_prog_f77_v=-v ac_cv_prog_make_make_set=yes am_cv_CC_dependencies_compiler_type=gcc3 am_cv_CXX_dependencies_compiler_type=gcc3 am_cv_make_support_nested_variables=yes am_cv_prog_cc_c_o=yes lt_cv_ar_at_file=@ lt_cv_archive_cmds_need_lc=no lt_cv_deplibs_check_method=pass_all lt_cv_file_magic_cmd='$MAGIC_CMD' lt_cv_file_magic_test_file= lt_cv_ld_reload_flag=-r lt_cv_nm_interface='BSD nm' lt_cv_objdir=.libs lt_cv_path_LD=/usr/bin/ld lt_cv_path_LDCXX='/usr/bin/ld -m elf_x86_64' lt_cv_path_NM='/usr/bin/nm -B' lt_cv_path_mainfest_tool=no lt_cv_prog_compiler_c_o=yes lt_cv_prog_compiler_c_o_CXX=yes lt_cv_prog_compiler_c_o_F77=yes lt_cv_prog_compiler_pic='-fPIC -DPIC' lt_cv_prog_compiler_pic_CXX='-fPIC -DPIC' lt_cv_prog_compiler_pic_F77=-fPIC lt_cv_prog_compiler_pic_works=yes lt_cv_prog_compiler_pic_works_CXX=yes lt_cv_prog_compiler_pic_works_F77=yes lt_cv_prog_compiler_rtti_exceptions=no lt_cv_prog_compiler_static_works=yes lt_cv_prog_compiler_static_works_CXX=yes lt_cv_prog_compiler_static_works_F77=yes lt_cv_prog_gnu_ld=yes lt_cv_prog_gnu_ldcxx=yes lt_cv_sharedlib_from_linklib_cmd='printf %s\n' lt_cv_shlibpath_overrides_runpath=yes lt_cv_sys_global_symbol_pipe='sed -n -e '\''s/^.*[ ]\([ABCDGIRSTW][ABCDGIRSTW]*\)[ ][ ]*\([_A-Za-z][_A-Za-z0-9]*\)$/\1 \2 \2/p'\'' | sed '\''/ __gnu_lto/d'\''' lt_cv_sys_global_symbol_to_c_name_address='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='sed -n -e '\''s/^: \(.*\) .*$/ {"\1", (void *) 0},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(lib.*\)$/ {"\1", (void *) \&\1},/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/ {"lib\1", (void *) \&\1},/p'\''' lt_cv_sys_global_symbol_to_cdecl='sed -n -e '\''s/^T .* \(.*\)$/extern int \1();/p'\'' -e '\''s/^[ABCDGIRSTW][ABCDGIRSTW]* .* \(.*\)$/extern char \1;/p'\''' lt_cv_sys_global_symbol_to_import= lt_cv_sys_max_cmd_len=1572864 lt_cv_to_host_file_cmd=func_convert_file_noop lt_cv_to_tool_file_cmd=func_convert_file_noop lt_cv_truncate_bin='/bin/dd bs=4096 count=1' pkg_cv_DEPS_CFLAGS=-I/usr/local/include pkg_cv_DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' ## ----------------- ## ## Output variables. ## ## ----------------- ## ACLOCAL='${SHELL} /home/igv/Hepforge/npstat/trunk/missing aclocal-1.15' AMDEPBACKSLASH='\' AMDEP_FALSE='#' AMDEP_TRUE='' AMTAR='$${TAR-tar}' AM_BACKSLASH='\' AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' AM_DEFAULT_VERBOSITY='1' AM_V='$(V)' AR='ar' AUTOCONF='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoconf' AUTOHEADER='${SHELL} /home/igv/Hepforge/npstat/trunk/missing autoheader' AUTOMAKE='${SHELL} /home/igv/Hepforge/npstat/trunk/missing automake-1.15' AWK='gawk' CC='gcc' CCDEPMODE='depmode=gcc3' CFLAGS='-g -O2' CPP='gcc -E' CPPFLAGS='' CXX='g++' CXXCPP='g++ -E' CXXDEPMODE='depmode=gcc3' CXXFLAGS='-std=c++11 -O3 -Wall -W -Werror' CYGPATH_W='echo' DEFS='-DPACKAGE_NAME=\"npstat\" -DPACKAGE_TARNAME=\"npstat\" -DPACKAGE_VERSION=\"5.2.0\" -DPACKAGE_STRING=\"npstat\ 5.2.0\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"npstat\" -DVERSION=\"5.2.0\" -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\"' DEPDIR='.deps' DEPS_CFLAGS='-I/usr/local/include' DEPS_LIBS='-L/usr/local/lib -lfftw3 -lgeners -lkstest' DLLTOOL='false' DSYMUTIL='' DUMPBIN='' ECHO_C='' ECHO_N='-n' ECHO_T='' EGREP='/bin/grep -E' EXEEXT='' F77='g77' FFLAGS='-g -O2' FGREP='/bin/grep -F' FLIBS=' -L/usr/lib/gcc/x86_64-linux-gnu/7 -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/7/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/7/../../.. -lgfortran -lm -lquadmath' GREP='/bin/grep' INSTALL_DATA='${INSTALL} -m 644' INSTALL_PROGRAM='${INSTALL}' INSTALL_SCRIPT='${INSTALL}' INSTALL_STRIP_PROGRAM='$(install_sh) -c -s' LD='/usr/bin/ld -m elf_x86_64' LDFLAGS='' LIBOBJS='' LIBS='' LIBTOOL='$(SHELL) $(top_builddir)/libtool' LIPO='' LN_S='ln -s' LTLIBOBJS='' LT_SYS_LIBRARY_PATH='' MAKEINFO='${SHELL} /home/igv/Hepforge/npstat/trunk/missing makeinfo' MANIFEST_TOOL=':' MKDIR_P='/bin/mkdir -p' NM='/usr/bin/nm -B' NMEDIT='' OBJDUMP='objdump' OBJEXT='o' OTOOL64='' OTOOL='' PACKAGE='npstat' PACKAGE_BUGREPORT='' PACKAGE_NAME='npstat' PACKAGE_STRING='npstat 5.2.0' PACKAGE_TARNAME='npstat' PACKAGE_URL='' PACKAGE_VERSION='5.2.0' PATH_SEPARATOR=':' PKG_CONFIG='/usr/bin/pkg-config' PKG_CONFIG_LIBDIR='' PKG_CONFIG_PATH='/usr/local/lib/pkgconfig' RANLIB='ranlib' SED='/bin/sed' SET_MAKE='' SHELL='/bin/bash' STRIP='strip' VERSION='5.2.0' ac_ct_AR='ar' ac_ct_CC='gcc' ac_ct_CXX='g++' ac_ct_DUMPBIN='' ac_ct_F77='g77' am__EXEEXT_FALSE='' am__EXEEXT_TRUE='#' am__fastdepCC_FALSE='#' am__fastdepCC_TRUE='' am__fastdepCXX_FALSE='#' am__fastdepCXX_TRUE='' am__include='include' am__isrc='' am__leading_dot='.' am__nodep='_no' am__quote='' am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' bindir='${exec_prefix}/bin' build='x86_64-pc-linux-gnu' build_alias='' build_cpu='x86_64' build_os='linux-gnu' build_vendor='pc' datadir='${datarootdir}' datarootdir='${prefix}/share' docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' dvidir='${docdir}' exec_prefix='${prefix}' host='x86_64-pc-linux-gnu' host_alias='' host_cpu='x86_64' host_os='linux-gnu' host_vendor='pc' htmldir='${docdir}' includedir='${prefix}/include' infodir='${datarootdir}/info' install_sh='${SHELL} /home/igv/Hepforge/npstat/trunk/install-sh' libdir='${exec_prefix}/lib' libexecdir='${exec_prefix}/libexec' localedir='${datarootdir}/locale' localstatedir='${prefix}/var' mandir='${datarootdir}/man' mkdir_p='$(MKDIR_P)' oldincludedir='/usr/include' pdfdir='${docdir}' prefix='/usr/local' program_transform_name='s,x,x,' psdir='${docdir}' runstatedir='${localstatedir}/run' sbindir='${exec_prefix}/sbin' sharedstatedir='${prefix}/com' sysconfdir='${prefix}/etc' target_alias='' ## ----------- ## ## confdefs.h. ## ## ----------- ## /* confdefs.h */ #define PACKAGE_NAME "npstat" #define PACKAGE_TARNAME "npstat" #define PACKAGE_VERSION "5.2.0" #define PACKAGE_STRING "npstat 5.2.0" #define PACKAGE_BUGREPORT "" #define PACKAGE_URL "" #define PACKAGE "npstat" #define VERSION "5.2.0" #define STDC_HEADERS 1 #define HAVE_SYS_TYPES_H 1 #define HAVE_SYS_STAT_H 1 #define HAVE_STDLIB_H 1 #define HAVE_STRING_H 1 #define HAVE_MEMORY_H 1 #define HAVE_STRINGS_H 1 #define HAVE_INTTYPES_H 1 #define HAVE_STDINT_H 1 #define HAVE_UNISTD_H 1 #define HAVE_DLFCN_H 1 #define LT_OBJDIR ".libs/" configure: exit 0 Index: trunk/autom4te.cache/requests =================================================================== --- trunk/autom4te.cache/requests (revision 682) +++ trunk/autom4te.cache/requests (revision 683) @@ -1,739 +1,739 @@ # This file was generated by Autom4te Sun Aug 20 23:09:08 UTC 2017. # It contains the lists of macros which have been traced. # It can be safely removed. @request = ( bless( [ '0', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'LTOPTIONS_VERSION' => 1, - '_m4_warn' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'm4_pattern_allow' => 1, + 'AC_PROG_LD' => 1, + 'AC_PROG_EGREP' => 1, + 'AM_MAKE_INCLUDE' => 1, + 'LTSUGAR_VERSION' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_PROG_LD_GNU' => 1, 'AM_MISSING_PROG' => 1, - 'AM_PROG_CC_C_O' => 1, - '_LT_AC_LANG_F77' => 1, - 'LT_PATH_NM' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'LT_LIB_M' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AM_SANITY_CHECK' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - '_LT_CC_BASENAME' => 1, + '_LT_LINKER_OPTION' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'LT_LIB_M' => 1, + '_AC_PROG_LIBTOOL' => 1, 'AC_ENABLE_SHARED' => 1, - '_LT_DLL_DEF_P' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'm4_include' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_DEFUN' => 1, - '_LT_WITH_SYSROOT' => 1, - 'AM_DISABLE_STATIC' => 1, - 'AM_DEP_TRACK' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'LT_OUTPUT' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - '_AM_SET_OPTIONS' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + '_LT_CC_BASENAME' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'LT_AC_PROG_SED' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'LT_SUPPORTED_TAG' => 1, '_AM_CONFIG_MACRO_DIRS' => 1, - 'AC_CHECK_LIBM' => 1, - 'LT_AC_PROG_EGREP' => 1, - '_AM_IF_OPTION' => 1, - '_LT_PROG_CXX' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'AM_RUN_LOG' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'AM_SET_DEPDIR' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'PKG_INSTALLDIR' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AM_PROG_NM' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - '_AC_PROG_LIBTOOL' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - '_LT_AC_LANG_CXX' => 1, - 'PKG_CHECK_MODULES' => 1, - 'AC_PATH_MAGIC' => 1, - 'AM_ENABLE_STATIC' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_PROG_EGREP' => 1, + 'AC_LTDL_PREOPEN' => 1, 'AC_LTDL_OBJDIR' => 1, - 'AM_PROG_LD' => 1, - '_LT_PROG_F77' => 1, - 'AC_ENABLE_STATIC' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'LT_INIT' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'LTOBSOLETE_VERSION' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - '_LT_LINKER_OPTION' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'PKG_CHECK_EXISTS' => 1, '_LT_LINKER_BOILERPLATE' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'LT_LANG' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_PROG_FC' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_LT_AC_LANG_GCJ' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_AM_MANGLE_OPTION' => 1, - 'LTVERSION_VERSION' => 1, - 'LT_CMD_MAX_LEN' => 1, - '_LT_AC_SHELL_INIT' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AM_SILENT_RULES' => 1, + 'AM_ENABLE_STATIC' => 1, 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_DISABLE_SHARED' => 1, + 'LTVERSION_VERSION' => 1, + 'AM_PROG_NM' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AU_DEFUN' => 1, - 'AC_LIBTOOL_CXX' => 1, + '_LT_COMPILER_OPTION' => 1, 'PKG_CHECK_VAR' => 1, - '_AM_SET_OPTION' => 1, - 'LTSUGAR_VERSION' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'LT_AC_PROG_SED' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, + '_LT_PROG_F77' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AM_SET_DEPDIR' => 1, + 'AM_PROG_LIBTOOL' => 1, '_LT_AC_PROG_CXXCPP' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'include' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'm4_pattern_forbid' => 1, - 'LT_AC_PROG_RC' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'LT_PROG_RC' => 1, - 'LT_PROG_GCJ' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'LT_AC_PROG_EGREP' => 1, 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AC_PROG_NM' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LIBTOOL_SETUP' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + 'LT_CMD_MAX_LEN' => 1, + '_AM_PROG_CC_C_O' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'm4_include' => 1, 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'AM_INIT_AUTOMAKE' => 1, + '_AM_IF_OPTION' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_PROG_LTMAIN' => 1, 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AM_SILENT_RULES' => 1, - 'AC_PROG_LD' => 1, - '_LT_AC_LOCK' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_TAGVAR' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - '_AM_PROG_TAR' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'include' => 1, + '_LT_DLL_DEF_P' => 1, + 'AU_DEFUN' => 1, + '_LT_AC_SHELL_INIT' => 1, 'LT_PATH_LD' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_LTDL_PREOPEN' => 1, + '_AM_PROG_TAR' => 1, + 'AM_DEP_TRACK' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'AM_DISABLE_STATIC' => 1, + 'AC_PATH_MAGIC' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_ENABLE_STATIC' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_SETUP' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'LT_AC_PROG_GCJ' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'PKG_CHECK_MODULES' => 1, + 'AM_PROG_LD' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AM_SANITY_CHECK' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AM_DISABLE_SHARED' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_RUN_LOG' => 1, + 'AM_PROG_CC_C_O' => 1, 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_FC' => 1, - 'm4_pattern_allow' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'PKG_CHECK_EXISTS' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + '_LT_PROG_FC' => 1, + '_AM_AUTOCONF_VERSION' => 1, + '_AM_SET_OPTIONS' => 1, + 'LT_LANG' => 1, '_LT_AC_LANG_F77_CONFIG' => 1, - '_LT_AC_SYS_COMPILER' => 1, - '_LT_PROG_LTMAIN' => 1 + 'AC_CHECK_LIBM' => 1, + 'AM_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_CONFIG' => 1, + '_AM_DEPENDENCIES' => 1, + 'LT_OUTPUT' => 1, + 'AC_DEFUN_ONCE' => 1, + 'AC_PROG_NM' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'LT_PROG_RC' => 1, + '_LT_AC_TAGVAR' => 1, + 'LT_PROG_GCJ' => 1, + '_LT_PROG_CXX' => 1, + '_AM_MANGLE_OPTION' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_m4_warn' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'LTOBSOLETE_VERSION' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + '_LT_WITH_SYSROOT' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'm4_pattern_forbid' => 1, + 'LT_PATH_NM' => 1, + 'AC_LIBTOOL_GCJ' => 1, + '_AM_SET_OPTION' => 1, + 'LT_AC_PROG_RC' => 1, + 'AC_DEFUN' => 1, + '_LT_AC_LANG_F77' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + 'LT_INIT' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'LTOPTIONS_VERSION' => 1, + 'PKG_INSTALLDIR' => 1, + '_LT_AC_LOCK' => 1 } ], 'Autom4te::Request' ), bless( [ '1', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', 'aclocal.m4', 'configure.ac' ], { + 'AC_CONFIG_SUBDIRS' => 1, 'AM_SILENT_RULES' => 1, - '_AM_MAKEFILE_INCLUDE' => 1, - 'AC_LIBSOURCE' => 1, - 'AC_PROG_LIBTOOL' => 1, - '_AM_COND_ELSE' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AM_PROG_CXX_C_O' => 1, + '_AM_COND_IF' => 1, + 'LT_INIT' => 1, + 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, + 'AC_SUBST_TRACE' => 1, + 'AC_CONFIG_AUX_DIR' => 1, + 'AC_FC_FREEFORM' => 1, + 'AC_CONFIG_LINKS' => 1, + 'm4_include' => 1, 'AC_CONFIG_LIBOBJ_DIR' => 1, - 'AC_CANONICAL_BUILD' => 1, + 'AM_PROG_MKDIR_P' => 1, + 'm4_pattern_forbid' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, 'AC_FC_SRCEXT' => 1, - 'AC_REQUIRE_AUX_FILE' => 1, - 'AC_SUBST' => 1, - 'm4_sinclude' => 1, + 'AC_CANONICAL_SYSTEM' => 1, + 'AM_ENABLE_MULTILIB' => 1, 'AM_MAINTAINER_MODE' => 1, - 'AC_CANONICAL_HOST' => 1, - 'AM_PROG_FC_C_O' => 1, - 'AC_FC_PP_SRCEXT' => 1, - 'AC_SUBST_TRACE' => 1, - 'LT_INIT' => 1, + 'AM_GNU_GETTEXT' => 1, 'LT_SUPPORTED_TAG' => 1, - 'AC_CONFIG_FILES' => 1, - 'AC_INIT' => 1, + 'AM_PROG_FC_C_O' => 1, + 'AC_SUBST' => 1, + 'AM_PROG_F77_C_O' => 1, + '_AM_MAKEFILE_INCLUDE' => 1, + 'AM_PATH_GUILE' => 1, 'AM_PROG_MOC' => 1, - 'AM_CONDITIONAL' => 1, - 'AC_CONFIG_HEADERS' => 1, - 'AC_FC_PP_DEFINE' => 1, - 'AM_PROG_MKDIR_P' => 1, - 'AM_NLS' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - 'm4_pattern_allow' => 1, + 'AC_CANONICAL_BUILD' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_CANONICAL_TARGET' => 1, + '_AM_COND_ELSE' => 1, + 'AM_POT_TOOLS' => 1, 'AM_PROG_LIBTOOL' => 1, - 'AM_PATH_GUILE' => 1, - 'AC_CONFIG_LINKS' => 1, - 'AC_CANONICAL_SYSTEM' => 1, - 'include' => 1, + 'm4_sinclude' => 1, + 'AM_PROG_AR' => 1, '_m4_warn' => 1, - 'AC_CONFIG_SUBDIRS' => 1, + 'AM_CONDITIONAL' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AC_DEFINE_TRACE_LITERAL' => 1, - '_AM_COND_IF' => 1, - 'AM_XGETTEXT_OPTION' => 1, - 'AM_PROG_F77_C_O' => 1, - 'AM_PROG_CC_C_O' => 1, + 'AH_OUTPUT' => 1, + 'AC_FC_PP_SRCEXT' => 1, 'AM_MAKEFILE_INCLUDE' => 1, - 'm4_pattern_forbid' => 1, + 'AC_FC_PP_DEFINE' => 1, + 'AC_CONFIG_FILES' => 1, '_AM_COND_ENDIF' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AH_OUTPUT' => 1, - 'AM_PROG_CXX_C_O' => 1, - 'AC_CONFIG_AUX_DIR' => 1, - '_AM_SUBST_NOTMAKE' => 1, - 'AM_ENABLE_MULTILIB' => 1, - 'AM_GNU_GETTEXT' => 1, + 'AM_XGETTEXT_OPTION' => 1, + 'AC_LIBSOURCE' => 1, + 'AC_CONFIG_HEADERS' => 1, + 'AC_PROG_LIBTOOL' => 1, + 'AM_NLS' => 1, + 'AC_CANONICAL_HOST' => 1, 'sinclude' => 1, - 'AM_GNU_GETTEXT_INTL_SUBDIR' => 1, - 'm4_include' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AM_POT_TOOLS' => 1, - 'AC_CANONICAL_TARGET' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - 'AM_PROG_AR' => 1, - 'AC_FC_FREEFORM' => 1 + 'include' => 1, + 'AC_INIT' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, + 'm4_pattern_allow' => 1, + 'AC_REQUIRE_AUX_FILE' => 1 } ], 'Autom4te::Request' ), bless( [ '2', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'LT_SYS_MODULE_PATH' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AC_PROG_NM' => 1, - 'AM_INIT_AUTOMAKE' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'LT_FUNC_ARGZ' => 1, - 'LT_PROG_GCJ' => 1, - 'LT_PROG_RC' => 1, - 'm4_pattern_forbid' => 1, - 'LT_AC_PROG_RC' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'AM_MISSING_HAS_RUN' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'include' => 1, - 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - '_LT_AC_SYS_COMPILER' => 1, + 'AC_LIB_LTDL' => 1, + '_LT_CC_BASENAME' => 1, 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_LIBTOOL_FC' => 1, - 'AM_ENABLE_SHARED' => 1, - 'm4_pattern_allow' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'LT_PROG_GO' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'AM_CONDITIONAL' => 1, - '_AM_PROG_CC_C_O' => 1, - 'LT_PATH_LD' => 1, - '_AM_PROG_TAR' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, - '_LT_AC_LOCK' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - '_LT_AC_TAGVAR' => 1, - 'LT_SYS_MODULE_EXT' => 1, - 'AC_PROG_LD' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AM_SILENT_RULES' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - '_LT_AC_TAGCONFIG' => 1, - '_LT_LIBOBJ' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_LT_COMPILER_BOILERPLATE' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - 'LT_CMD_MAX_LEN' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_LT_AC_SHELL_INIT' => 1, - '_AM_MANGLE_OPTION' => 1, '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_LT_AC_LANG_GCJ' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - 'LTVERSION_VERSION' => 1, 'AC_LTDL_SYSSEARCHPATH' => 1, - 'AC_DISABLE_FAST_INSTALL' => 1, - '_LT_COMPILER_OPTION' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, - '_LT_PROG_FC' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'AM_CONDITIONAL' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LTSUGAR_VERSION' => 1, 'AM_MAKE_INCLUDE' => 1, - 'LT_LANG' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'AC_WITH_LTDL' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, + 'AC_PROG_EGREP' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AC_PROG_LD' => 1, + 'm4_pattern_allow' => 1, + '_LT_AC_LANG_GCJ' => 1, + 'AC_ENABLE_SHARED' => 1, + '_AC_PROG_LIBTOOL' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'LT_LIB_M' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + '_LT_LINKER_OPTION' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_DEPLIBS_CHECK_METHOD' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + 'AM_SET_LEADING_DOT' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AM_SILENT_RULES' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, + 'LTDL_CONVENIENCE' => 1, + 'LT_AC_PROG_SED' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_AUX_DIR_EXPAND' => 1, '_LT_LINKER_BOILERPLATE' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - 'PKG_CHECK_EXISTS' => 1, + 'AC_LTDL_OBJDIR' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_LTDL_PREOPEN' => 1, '_LTDL_SETUP' => 1, - 'AM_SET_LEADING_DOT' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, - 'LTDL_INIT' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + 'AC_LTDL_ENABLE_INSTALL' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + '_LT_PROG_F77' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, '_LT_AC_PROG_CXXCPP' => 1, - 'LT_AC_PROG_SED' => 1, - '_AM_SET_OPTION' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - 'LTSUGAR_VERSION' => 1, - 'AC_LIB_LTDL' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AU_DEFUN' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AM_SET_DEPDIR' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'AM_PROG_NM' => 1, + 'LTVERSION_VERSION' => 1, + 'AC_DISABLE_SHARED' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AC_DISABLE_FAST_INSTALL' => 1, 'PKG_CHECK_VAR' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, + '_LT_COMPILER_OPTION' => 1, 'AC_PROG_LIBTOOL' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - '_AM_DEPENDENCIES' => 1, - 'AC_LIBTOOL_RC' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'LTDL_INIT' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_LT_COMPILER_BOILERPLATE' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, + '_AM_IF_OPTION' => 1, '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'LT_WITH_LTDL' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'm4_include' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + '_AM_PROG_CC_C_O' => 1, + 'LT_CMD_MAX_LEN' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AM_DEP_TRACK' => 1, + '_AM_PROG_TAR' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'LT_PATH_LD' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'LTDL_INSTALLABLE' => 1, 'AC_PATH_MAGIC' => 1, + 'AM_DISABLE_STATIC' => 1, + '_LT_DLL_DEF_P' => 1, + 'include' => 1, 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, + '_LT_PROG_LTMAIN' => 1, + '_LT_AC_SHELL_INIT' => 1, + 'AU_DEFUN' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, + 'AM_SANITY_CHECK' => 1, + '_LT_AC_LANG_CXX_CONFIG' => 1, + 'AM_PROG_LD' => 1, 'PKG_CHECK_MODULES' => 1, - 'AM_ENABLE_STATIC' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'AM_RUN_LOG' => 1, + 'AM_DISABLE_SHARED' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'AC_ENABLE_STATIC' => 1, + 'LT_AC_PROG_GCJ' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'AC_LIBTOOL_SETUP' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, + '_LT_PROG_CXX' => 1, + 'LT_PROG_GCJ' => 1, + 'LT_PROG_RC' => 1, + '_LT_AC_TAGVAR' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, + 'AC_PROG_NM' => 1, + 'AC_DEFUN_ONCE' => 1, + 'LT_OUTPUT' => 1, 'AC_LIBTOOL_CONFIG' => 1, - '_AC_PROG_LIBTOOL' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_LINKER_OPTION' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, '_LT_AC_LANG_C_CONFIG' => 1, - 'AM_PROG_NM' => 1, - 'AM_PROG_LIBTOOL' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - '_LT_LINKER_OPTION' => 1, - 'LT_SUPPORTED_TAG' => 1, 'LTOBSOLETE_VERSION' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'LT_INIT' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AC_PROG_LD_GNU' => 1, - 'LTDL_CONVENIENCE' => 1, - 'AM_PROG_LD' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'AC_ENABLE_STATIC' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_PROG_F77' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'AC_PROG_EGREP' => 1, - 'AC_LTDL_DLLIB' => 1, - 'm4_include' => 1, - 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - '_LT_DLL_DEF_P' => 1, - '_LT_AC_LANG_CXX_CONFIG' => 1, - 'AC_ENABLE_SHARED' => 1, - '_LT_CC_BASENAME' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AM_SANITY_CHECK' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, - 'LT_LIB_M' => 1, - 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, - 'LT_PATH_NM' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'LT_LIB_DLLOAD' => 1, - 'AM_MISSING_PROG' => 1, - '_LT_AC_LANG_F77' => 1, - 'AM_PROG_CC_C_O' => 1, - 'LTOPTIONS_VERSION' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + '_LT_LIBOBJ' => 1, '_m4_warn' => 1, - 'LT_WITH_LTDL' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'AC_LIBTOOL_GCJ' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'PKG_INSTALLDIR' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AM_AUX_DIR_EXPAND' => 1, + '_AM_SUBST_NOTMAKE' => 1, + '_AM_MANGLE_OPTION' => 1, '_AM_AUTOCONF_VERSION' => 1, - 'AM_SET_DEPDIR' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - '_AM_IF_OPTION' => 1, - '_LT_PROG_CXX' => 1, - 'AC_DISABLE_SHARED' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AM_RUN_LOG' => 1, - 'AC_CHECK_LIBM' => 1, - 'LT_AC_PROG_EGREP' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, '_AM_SET_OPTIONS' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + '_LT_PROG_FC' => 1, + '_LT_AC_LANG_RC_CONFIG' => 1, + 'PKG_CHECK_EXISTS' => 1, + 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, + 'LT_PROG_GO' => 1, + 'AM_PROG_CC_C_O' => 1, + 'AC_WITH_LTDL' => 1, + 'AM_ENABLE_SHARED' => 1, + 'AC_CHECK_LIBM' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'LT_LANG' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + 'LT_INIT' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + '_LT_AC_LANG_F77' => 1, 'AC_DEFUN' => 1, - 'LT_AC_PROG_GCJ' => 1, - 'LT_OUTPUT' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AM_DEP_TRACK' => 1, + 'LT_AC_PROG_RC' => 1, + '_LT_AC_LOCK' => 1, + 'PKG_INSTALLDIR' => 1, + 'LTOPTIONS_VERSION' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, + 'AM_MISSING_HAS_RUN' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, '_LT_WITH_SYSROOT' => 1, - 'AM_DISABLE_STATIC' => 1 + 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + '_AM_SET_OPTION' => 1, + 'AC_LIBTOOL_GCJ' => 1, + 'LT_PATH_NM' => 1, + 'm4_pattern_forbid' => 1, + 'AC_LIBTOOL_DLOPEN_SELF' => 1, + 'AC_LIBTOOL_WIN32_DLL' => 1, + 'LT_FUNC_ARGZ' => 1 } ], 'Autom4te::Request' ), bless( [ '3', 1, [ '/usr/share/autoconf' ], [ '/usr/share/autoconf/autoconf/autoconf.m4f', '-', '/usr/share/aclocal-1.15/internal/ac-config-macro-dirs.m4', '/usr/share/aclocal/ltargz.m4', '/usr/share/aclocal/ltdl.m4', '/usr/share/aclocal/pkg.m4', '/usr/share/aclocal-1.15/amversion.m4', '/usr/share/aclocal-1.15/auxdir.m4', '/usr/share/aclocal-1.15/cond.m4', '/usr/share/aclocal-1.15/depend.m4', '/usr/share/aclocal-1.15/depout.m4', '/usr/share/aclocal-1.15/extra-recurs.m4', '/usr/share/aclocal-1.15/init.m4', '/usr/share/aclocal-1.15/install-sh.m4', '/usr/share/aclocal-1.15/lead-dot.m4', '/usr/share/aclocal-1.15/make.m4', '/usr/share/aclocal-1.15/missing.m4', '/usr/share/aclocal-1.15/options.m4', '/usr/share/aclocal-1.15/prog-cc-c-o.m4', '/usr/share/aclocal-1.15/runlog.m4', '/usr/share/aclocal-1.15/sanity.m4', '/usr/share/aclocal-1.15/silent.m4', '/usr/share/aclocal-1.15/strip.m4', '/usr/share/aclocal-1.15/substnot.m4', '/usr/share/aclocal-1.15/tar.m4', 'm4/libtool.m4', 'm4/ltoptions.m4', 'm4/ltsugar.m4', 'm4/ltversion.m4', 'm4/lt~obsolete.m4', 'configure.ac' ], { - 'AM_PROG_LIBTOOL' => 1, - '_LT_AC_TRY_DLOPEN_SELF' => 1, - 'LT_INIT' => 1, - 'AC_PATH_TOOL_PREFIX' => 1, - 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, - 'LT_SUPPORTED_TAG' => 1, - 'LTOBSOLETE_VERSION' => 1, - '_LT_LINKER_OPTION' => 1, - 'PKG_PROG_PKG_CONFIG' => 1, - '_LT_PROG_F77' => 1, - 'LT_SYS_DLOPEN_DEPLIBS' => 1, 'AC_ENABLE_STATIC' => 1, - 'AM_PROG_LD' => 1, - 'AC_LTDL_OBJDIR' => 1, - 'LTDL_CONVENIENCE' => 1, - 'AC_PROG_LD_GNU' => 1, - 'AC_DEFUN_ONCE' => 1, - 'AC_PROG_EGREP' => 1, - 'AC_LTDL_SHLIBEXT' => 1, - 'AM_ENABLE_STATIC' => 1, - 'PKG_CHECK_MODULES' => 1, - 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, - 'AC_PATH_MAGIC' => 1, - '_LT_AC_LANG_CXX' => 1, - '_AM_DEPENDENCIES' => 1, - 'AM_PROG_INSTALL_STRIP' => 1, - 'AC_LIBTOOL_RC' => 1, - 'AC_LTDL_ENABLE_INSTALL' => 1, - 'AC_LIBTOOL_CONFIG' => 1, - '_LT_AC_LANG_GCJ_CONFIG' => 1, - '_LT_AC_LANG_C_CONFIG' => 1, - '_AC_PROG_LIBTOOL' => 1, - 'AM_PROG_NM' => 1, - 'AM_SET_DEPDIR' => 1, - 'AM_AUX_DIR_EXPAND' => 1, - '_AM_AUTOCONF_VERSION' => 1, - 'PKG_INSTALLDIR' => 1, - '_LT_PROG_ECHO_BACKSLASH' => 1, - 'AM_AUTOMAKE_VERSION' => 1, - '_LT_REQUIRED_DARWIN_CHECKS' => 1, - 'AM_RUN_LOG' => 1, - 'AC_LIBLTDL_INSTALLABLE' => 1, - 'AC_DISABLE_SHARED' => 1, - '_LT_PROG_CXX' => 1, - '_AM_IF_OPTION' => 1, - '_LT_AC_SYS_LIBPATH_AIX' => 1, - 'AC_LTDL_DLSYM_USCORE' => 1, - '_AM_CONFIG_MACRO_DIRS' => 1, - 'LT_AC_PROG_EGREP' => 1, - 'AC_CHECK_LIBM' => 1, - 'AM_DEP_TRACK' => 1, - 'AM_DISABLE_STATIC' => 1, - '_LT_WITH_SYSROOT' => 1, + 'LT_SYS_MODULE_PATH' => 1, + 'AC_LIBTOOL_SETUP' => 1, + '_LT_AC_TRY_DLOPEN_SELF' => 1, 'LT_AC_PROG_GCJ' => 1, - 'AC_LIBTOOL_OBJDIR' => 1, - 'LT_OUTPUT' => 1, - 'AC_LIBTOOL_F77' => 1, - 'AC_DEFUN' => 1, - 'AC_CONFIG_MACRO_DIR' => 1, - 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, - '_AM_SET_OPTIONS' => 1, - '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, - 'PKG_NOARCH_INSTALLDIR' => 1, + '_PKG_SHORT_ERRORS_SUPPORTED' => 1, + 'PKG_CHECK_MODULES' => 1, + 'AM_PROG_LD' => 1, + 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, + 'LT_LIB_DLLOAD' => 1, + 'AC_LIBTOOL_CXX' => 1, + 'AM_PROG_INSTALL_SH' => 1, + 'AM_SANITY_CHECK' => 1, + '_LT_AC_SYS_LIBPATH_AIX' => 1, '_LT_AC_LANG_CXX_CONFIG' => 1, - '_LT_CC_BASENAME' => 1, - 'AC_ENABLE_SHARED' => 1, + 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, + '_LT_AC_LANG_GCJ_CONFIG' => 1, + 'AM_RUN_LOG' => 1, + 'AC_CONFIG_MACRO_DIR_TRACE' => 1, + 'AM_DISABLE_SHARED' => 1, + '_LT_PROG_LTMAIN' => 1, + 'AC_LIBTOOL_PROG_CC_C_O' => 1, '_LT_DLL_DEF_P' => 1, - 'AC_LIBTOOL_DLOPEN' => 1, - 'AC_LIBTOOL_PICMODE' => 1, - 'm4_include' => 1, + 'AC_LIBTOOL_SYS_OLD_ARCHIVE' => 1, + 'include' => 1, + 'AU_DEFUN' => 1, + '_LT_AC_SHELL_INIT' => 1, + '_AM_PROG_TAR' => 1, + 'LT_PATH_LD' => 1, + 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, + 'AC_LIBLTDL_INSTALLABLE' => 1, + 'AC_CONFIG_MACRO_DIR' => 1, + 'AM_DEP_TRACK' => 1, + 'AM_DISABLE_STATIC' => 1, + 'LTDL_INSTALLABLE' => 1, + '_LT_AC_TAGCONFIG' => 1, + 'AC_PATH_MAGIC' => 1, 'AC_LIBTOOL_PROG_COMPILER_PIC' => 1, - 'AC_LTDL_DLLIB' => 1, - 'LT_LIB_M' => 1, + 'AC_PROG_LD_RELOAD_FLAG' => 1, + '_LT_WITH_SYSROOT' => 1, 'AC_LIBTOOL_DLOPEN_SELF' => 1, - 'AC_ENABLE_FAST_INSTALL' => 1, + 'LT_FUNC_ARGZ' => 1, 'AC_LIBTOOL_WIN32_DLL' => 1, - 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, - 'AM_SANITY_CHECK' => 1, - '_LT_PATH_TOOL_PREFIX' => 1, - 'AM_PROG_CC_C_O' => 1, - '_LT_AC_LANG_F77' => 1, - 'AM_MISSING_PROG' => 1, - 'LT_LIB_DLLOAD' => 1, - 'AM_SUBST_NOTMAKE' => 1, - 'LT_PATH_NM' => 1, - 'AC_LIBTOOL_COMPILER_OPTION' => 1, + '_AM_SET_OPTION' => 1, + 'm4_pattern_forbid' => 1, 'AC_LIBTOOL_GCJ' => 1, - 'AC_LIBTOOL_LANG_C_CONFIG' => 1, - 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, - '_m4_warn' => 1, - 'LT_WITH_LTDL' => 1, + 'LT_PATH_NM' => 1, + 'AC_DEFUN' => 1, + '_AC_AM_CONFIG_HEADER_HOOK' => 1, + '_LT_AC_LANG_F77' => 1, + 'LT_AC_PROG_RC' => 1, + 'LT_INIT' => 1, + '_LT_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, 'LTOPTIONS_VERSION' => 1, - 'm4_pattern_allow' => 1, - 'AM_ENABLE_SHARED' => 1, - 'AC_LIBTOOL_FC' => 1, - '_LT_PROG_LTMAIN' => 1, - 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, - '_LT_AC_SYS_COMPILER' => 1, - 'PKG_CHECK_MODULES_STATIC' => 1, - '_LT_AC_LANG_F77_CONFIG' => 1, - '_AM_PROG_TAR' => 1, - 'LT_PATH_LD' => 1, - 'AM_CONDITIONAL' => 1, - '_AM_PROG_CC_C_O' => 1, - 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, - 'LT_PROG_GO' => 1, - 'AC_LTDL_PREOPEN' => 1, - 'AC_PROG_LD' => 1, - 'LT_SYS_MODULE_EXT' => 1, - '_LT_AC_TAGVAR' => 1, - 'LT_SYS_DLOPEN_SELF' => 1, - 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AM_MISSING_HAS_RUN' => 1, + 'PKG_INSTALLDIR' => 1, '_LT_AC_LOCK' => 1, + 'AM_EXTRA_RECURSIVE_TARGETS' => 1, 'AC_LIBTOOL_PROG_LD_SHLIBS' => 1, - 'LTDL_INSTALLABLE' => 1, - 'AM_SILENT_RULES' => 1, - 'AC_LIBTOOL_PROG_CC_C_O' => 1, - 'AC_PROG_NM' => 1, - 'AM_INIT_AUTOMAKE' => 1, - 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, - 'AC_LTDL_SYS_DLOPEN_DEPLIBS' => 1, - '_LT_AC_CHECK_DLFCN' => 1, - 'AC_LIBTOOL_SETUP' => 1, - 'AC_LIBTOOL_SYS_DYNAMIC_LINKER' => 1, - 'LT_SYS_MODULE_PATH' => 1, + 'AM_PROG_CC_C_O' => 1, + 'LT_PROG_GO' => 1, + 'AC_WITH_LTDL' => 1, + '_AM_AUTOCONF_VERSION' => 1, + '_AM_SET_OPTIONS' => 1, + 'PKG_CHECK_EXISTS' => 1, '_LT_AC_LANG_RC_CONFIG' => 1, - 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, - 'LT_FUNC_ARGZ' => 1, - '_LT_AC_FILE_LTDLL_C' => 1, - 'LT_AC_PROG_RC' => 1, - '_AC_AM_CONFIG_HEADER_HOOK' => 1, - 'm4_pattern_forbid' => 1, + '_LT_PROG_FC' => 1, + 'LT_LANG' => 1, + 'AC_LTDL_SHLIBEXT' => 1, + 'AC_CHECK_LIBM' => 1, + 'AM_ENABLE_SHARED' => 1, + '_LT_AC_LANG_F77_CONFIG' => 1, + 'AC_DEFUN_ONCE' => 1, + 'LT_OUTPUT' => 1, + 'AC_PROG_NM' => 1, + '_AM_DEPENDENCIES' => 1, + 'AC_LIBTOOL_CONFIG' => 1, 'LT_PROG_GCJ' => 1, + '_LT_PROG_CXX' => 1, + 'AC_LIBTOOL_LANG_C_CONFIG' => 1, 'LT_PROG_RC' => 1, + '_LT_AC_TAGVAR' => 1, + '_m4_warn' => 1, + 'AC_LTDL_SHLIBPATH' => 1, + '_LT_LIBOBJ' => 1, + '_LT_AC_LANG_C_CONFIG' => 1, + 'LTOBSOLETE_VERSION' => 1, + '_AM_MANGLE_OPTION' => 1, + '_AM_SUBST_NOTMAKE' => 1, 'AC_LIBTOOL_LINKER_OPTION' => 1, - 'include' => 1, - 'AC_LIBTOOL_POSTDEP_PREDEP' => 1, - 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, - 'AM_MISSING_HAS_RUN' => 1, + 'AC_LIBTOOL_LANG_RC_CONFIG' => 1, + 'AM_AUX_DIR_EXPAND' => 1, + 'LT_FUNC_DLSYM_USCORE' => 1, + 'LT_SUPPORTED_TAG' => 1, + '_AM_CONFIG_MACRO_DIRS' => 1, + '_AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'LTDL_CONVENIENCE' => 1, + '_LT_AC_FILE_LTDLL_C' => 1, 'LT_AC_PROG_SED' => 1, - '_LT_AC_PROG_CXXCPP' => 1, - 'LTDL_INIT' => 1, - 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LTDL_PREOPEN' => 1, + 'LT_CONFIG_LTDL_DIR' => 1, + 'AC_LTDL_OBJDIR' => 1, + '_LT_LINKER_BOILERPLATE' => 1, + 'AC_LIBTOOL_SYS_MAX_CMD_LEN' => 1, 'AM_SET_LEADING_DOT' => 1, - '_LTDL_SETUP' => 1, - 'PKG_CHECK_VAR' => 1, - 'AU_DEFUN' => 1, - 'AM_DISABLE_SHARED' => 1, - 'AC_CONFIG_MACRO_DIR_TRACE' => 1, - 'AC_LIBTOOL_CXX' => 1, - 'AC_LIB_LTDL' => 1, - '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'LT_SYS_MODULE_EXT' => 1, + 'LT_SYS_DLOPEN_DEPLIBS' => 1, + 'AM_SILENT_RULES' => 1, + 'AC_DISABLE_STATIC' => 1, + 'AC_LTDL_DLLIB' => 1, + 'AC_PROG_LD' => 1, + 'AC_PROG_EGREP' => 1, + 'm4_pattern_allow' => 1, + 'AM_MAKE_INCLUDE' => 1, 'LTSUGAR_VERSION' => 1, - '_PKG_SHORT_ERRORS_SUPPORTED' => 1, - '_AM_SET_OPTION' => 1, - 'LT_FUNC_DLSYM_USCORE' => 1, - 'LT_SYS_SYMBOL_USCORE' => 1, - 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AC_LIBLTDL_CONVENIENCE' => 1, 'AC_DEPLIBS_CHECK_METHOD' => 1, - 'AC_DISABLE_STATIC' => 1, - 'AC_PROG_LIBTOOL' => 1, - 'LT_CONFIG_LTDL_DIR' => 1, - '_LT_AC_SHELL_INIT' => 1, + 'AC_PROG_LD_GNU' => 1, + 'AM_MISSING_PROG' => 1, + 'AC_LIBTOOL_PICMODE' => 1, + '_AC_PROG_LIBTOOL' => 1, + 'AC_ENABLE_SHARED' => 1, + '_LT_AC_LANG_GCJ' => 1, + '_LT_LINKER_OPTION' => 1, + 'AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH' => 1, + 'LT_LIB_M' => 1, + '_LT_AC_SYS_COMPILER' => 1, + 'AC_LTDL_SYSSEARCHPATH' => 1, + 'AC_PATH_TOOL_PREFIX' => 1, + '_LT_AC_PROG_ECHO_BACKSLASH' => 1, + 'AC_LIB_LTDL' => 1, + '_LT_CC_BASENAME' => 1, + 'AC_LIBTOOL_LANG_GCJ_CONFIG' => 1, + 'AM_CONDITIONAL' => 1, + 'AC_LIBTOOL_COMPILER_OPTION' => 1, + 'LT_SYS_SYMBOL_USCORE' => 1, + 'AM_AUTOMAKE_VERSION' => 1, + '_LT_PATH_TOOL_PREFIX' => 1, + 'AC_LIBTOOL_SYS_HARD_LINK_LOCKS' => 1, + 'AC_LIBTOOL_SYS_LIB_STRIP' => 1, + 'PKG_PROG_PKG_CONFIG' => 1, + 'AM_SET_CURRENT_AUTOMAKE_VERSION' => 1, + 'PKG_NOARCH_INSTALLDIR' => 1, + 'AM_SUBST_NOTMAKE' => 1, + 'LT_WITH_LTDL' => 1, + 'AC_LIBTOOL_FC' => 1, + 'AM_PROG_INSTALL_STRIP' => 1, + 'LT_AC_PROG_EGREP' => 1, + 'AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE' => 1, + 'LT_SYS_DLOPEN_SELF' => 1, + 'm4_include' => 1, 'LT_CMD_MAX_LEN' => 1, + '_AM_PROG_CC_C_O' => 1, + 'AC_LIBTOOL_LANG_CXX_CONFIG' => 1, + 'LTDL_INIT' => 1, + 'AM_INIT_AUTOMAKE' => 1, + 'AC_LIBTOOL_DLOPEN' => 1, '_LT_COMPILER_BOILERPLATE' => 1, - 'LT_SYS_DLSEARCH_PATH' => 1, - 'AC_LIBTOOL_PROG_COMPILER_NO_RTTI' => 1, - '_LT_LIBOBJ' => 1, - '_LT_AC_TAGCONFIG' => 1, - 'AC_PROG_LD_RELOAD_FLAG' => 1, + 'PKG_CHECK_MODULES_STATIC' => 1, + '_LT_REQUIRED_DARWIN_CHECKS' => 1, + '_AM_IF_OPTION' => 1, + '_LT_AC_LANG_CXX' => 1, + 'AC_LIBTOOL_F77' => 1, + '_LT_PREPARE_SED_QUOTE_VARS' => 1, + 'AC_LTDL_SYMBOL_USCORE' => 1, + 'AC_ENABLE_FAST_INSTALL' => 1, + 'AM_OUTPUT_DEPENDENCY_COMMANDS' => 1, + 'AM_ENABLE_STATIC' => 1, + 'AC_LTDL_DLSYM_USCORE' => 1, + 'AM_PROG_NM' => 1, + 'LTVERSION_VERSION' => 1, + 'AC_DISABLE_SHARED' => 1, + 'PKG_CHECK_VAR' => 1, '_LT_COMPILER_OPTION' => 1, + 'AC_PROG_LIBTOOL' => 1, 'AC_DISABLE_FAST_INSTALL' => 1, - 'AC_LTDL_SYSSEARCHPATH' => 1, - 'LTVERSION_VERSION' => 1, - 'AM_EXTRA_RECURSIVE_TARGETS' => 1, - 'AC_LIBLTDL_CONVENIENCE' => 1, - '_LT_AC_LANG_GCJ' => 1, - '_AM_MANGLE_OPTION' => 1, - '_AM_SUBST_NOTMAKE' => 1, - '_LT_AC_PROG_ECHO_BACKSLASH' => 1, - 'AM_PROG_INSTALL_SH' => 1, - 'LT_LANG' => 1, - 'AM_MAKE_INCLUDE' => 1, - '_LT_PROG_FC' => 1, - 'PKG_CHECK_EXISTS' => 1, - 'AC_LTDL_SHLIBPATH' => 1, - 'AC_WITH_LTDL' => 1, - '_LT_LINKER_BOILERPLATE' => 1 + 'AC_LTDL_ENABLE_INSTALL' => 1, + 'LT_SYS_DLSEARCH_PATH' => 1, + '_LT_AC_CHECK_DLFCN' => 1, + '_LT_PROG_F77' => 1, + 'AC_LIBTOOL_OBJDIR' => 1, + '_LTDL_SETUP' => 1, + 'AM_SET_DEPDIR' => 1, + 'AM_PROG_LIBTOOL' => 1, + 'AC_LIBTOOL_RC' => 1, + 'AC_LIBTOOL_LANG_F77_CONFIG' => 1, + '_LT_AC_PROG_CXXCPP' => 1 } ], 'Autom4te::Request' ) );