annotate DEPENDENCIES/generic/include/boost/math/distributions/complement.hpp @ 125:34e428693f5d vext

Vext -> Repoint
author Chris Cannam
date Thu, 14 Jun 2018 11:15:39 +0100
parents 2665513ce2d3
children
rev   line source
Chris@16 1 // (C) Copyright John Maddock 2006.
Chris@16 2 // (C) Copyright Paul A. Bristow 2006.
Chris@16 3 // Use, modification and distribution are subject to the
Chris@16 4 // Boost Software License, Version 1.0. (See accompanying file
Chris@16 5 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
Chris@16 6
Chris@16 7 #ifndef BOOST_STATS_COMPLEMENT_HPP
Chris@16 8 #define BOOST_STATS_COMPLEMENT_HPP
Chris@16 9
Chris@16 10 //
Chris@16 11 // This code really defines our own tuple type.
Chris@16 12 // It would be nice to reuse boost::math::tuple
Chris@16 13 // while retaining our own type safety, but it's
Chris@16 14 // not clear if that's possible. In any case this
Chris@16 15 // code is *very* lightweight.
Chris@16 16 //
Chris@16 17 namespace boost{ namespace math{
Chris@16 18
Chris@16 19 template <class Dist, class RealType>
Chris@16 20 struct complemented2_type
Chris@16 21 {
Chris@16 22 complemented2_type(
Chris@16 23 const Dist& d,
Chris@16 24 const RealType& p1)
Chris@16 25 : dist(d),
Chris@16 26 param(p1) {}
Chris@16 27
Chris@16 28 const Dist& dist;
Chris@16 29 const RealType& param;
Chris@16 30
Chris@16 31 private:
Chris@16 32 complemented2_type& operator=(const complemented2_type&);
Chris@16 33 };
Chris@16 34
Chris@16 35 template <class Dist, class RealType1, class RealType2>
Chris@16 36 struct complemented3_type
Chris@16 37 {
Chris@16 38 complemented3_type(
Chris@16 39 const Dist& d,
Chris@16 40 const RealType1& p1,
Chris@16 41 const RealType2& p2)
Chris@16 42 : dist(d),
Chris@16 43 param1(p1),
Chris@16 44 param2(p2) {}
Chris@16 45
Chris@16 46 const Dist& dist;
Chris@16 47 const RealType1& param1;
Chris@16 48 const RealType2& param2;
Chris@16 49 private:
Chris@16 50 complemented3_type& operator=(const complemented3_type&);
Chris@16 51 };
Chris@16 52
Chris@16 53 template <class Dist, class RealType1, class RealType2, class RealType3>
Chris@16 54 struct complemented4_type
Chris@16 55 {
Chris@16 56 complemented4_type(
Chris@16 57 const Dist& d,
Chris@16 58 const RealType1& p1,
Chris@16 59 const RealType2& p2,
Chris@16 60 const RealType3& p3)
Chris@16 61 : dist(d),
Chris@16 62 param1(p1),
Chris@16 63 param2(p2),
Chris@16 64 param3(p3) {}
Chris@16 65
Chris@16 66 const Dist& dist;
Chris@16 67 const RealType1& param1;
Chris@16 68 const RealType2& param2;
Chris@16 69 const RealType3& param3;
Chris@16 70 private:
Chris@16 71 complemented4_type& operator=(const complemented4_type&);
Chris@16 72 };
Chris@16 73
Chris@16 74 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4>
Chris@16 75 struct complemented5_type
Chris@16 76 {
Chris@16 77 complemented5_type(
Chris@16 78 const Dist& d,
Chris@16 79 const RealType1& p1,
Chris@16 80 const RealType2& p2,
Chris@16 81 const RealType3& p3,
Chris@16 82 const RealType4& p4)
Chris@16 83 : dist(d),
Chris@16 84 param1(p1),
Chris@16 85 param2(p2),
Chris@16 86 param3(p3),
Chris@16 87 param4(p4) {}
Chris@16 88
Chris@16 89 const Dist& dist;
Chris@16 90 const RealType1& param1;
Chris@16 91 const RealType2& param2;
Chris@16 92 const RealType3& param3;
Chris@16 93 const RealType4& param4;
Chris@16 94 private:
Chris@16 95 complemented5_type& operator=(const complemented5_type&);
Chris@16 96 };
Chris@16 97
Chris@16 98 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5>
Chris@16 99 struct complemented6_type
Chris@16 100 {
Chris@16 101 complemented6_type(
Chris@16 102 const Dist& d,
Chris@16 103 const RealType1& p1,
Chris@16 104 const RealType2& p2,
Chris@16 105 const RealType3& p3,
Chris@16 106 const RealType4& p4,
Chris@16 107 const RealType5& p5)
Chris@16 108 : dist(d),
Chris@16 109 param1(p1),
Chris@16 110 param2(p2),
Chris@16 111 param3(p3),
Chris@16 112 param4(p4),
Chris@16 113 param5(p5) {}
Chris@16 114
Chris@16 115 const Dist& dist;
Chris@16 116 const RealType1& param1;
Chris@16 117 const RealType2& param2;
Chris@16 118 const RealType3& param3;
Chris@16 119 const RealType4& param4;
Chris@16 120 const RealType5& param5;
Chris@16 121 private:
Chris@16 122 complemented6_type& operator=(const complemented6_type&);
Chris@16 123 };
Chris@16 124
Chris@16 125 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5, class RealType6>
Chris@16 126 struct complemented7_type
Chris@16 127 {
Chris@16 128 complemented7_type(
Chris@16 129 const Dist& d,
Chris@16 130 const RealType1& p1,
Chris@16 131 const RealType2& p2,
Chris@16 132 const RealType3& p3,
Chris@16 133 const RealType4& p4,
Chris@16 134 const RealType5& p5,
Chris@16 135 const RealType6& p6)
Chris@16 136 : dist(d),
Chris@16 137 param1(p1),
Chris@16 138 param2(p2),
Chris@16 139 param3(p3),
Chris@16 140 param4(p4),
Chris@16 141 param5(p5),
Chris@16 142 param6(p6) {}
Chris@16 143
Chris@16 144 const Dist& dist;
Chris@16 145 const RealType1& param1;
Chris@16 146 const RealType2& param2;
Chris@16 147 const RealType3& param3;
Chris@16 148 const RealType4& param4;
Chris@16 149 const RealType5& param5;
Chris@16 150 const RealType6& param6;
Chris@16 151 private:
Chris@16 152 complemented7_type& operator=(const complemented7_type&);
Chris@16 153 };
Chris@16 154
Chris@16 155 template <class Dist, class RealType>
Chris@16 156 inline complemented2_type<Dist, RealType> complement(const Dist& d, const RealType& r)
Chris@16 157 {
Chris@16 158 return complemented2_type<Dist, RealType>(d, r);
Chris@16 159 }
Chris@16 160
Chris@16 161 template <class Dist, class RealType1, class RealType2>
Chris@16 162 inline complemented3_type<Dist, RealType1, RealType2> complement(const Dist& d, const RealType1& r1, const RealType2& r2)
Chris@16 163 {
Chris@16 164 return complemented3_type<Dist, RealType1, RealType2>(d, r1, r2);
Chris@16 165 }
Chris@16 166
Chris@16 167 template <class Dist, class RealType1, class RealType2, class RealType3>
Chris@16 168 inline complemented4_type<Dist, RealType1, RealType2, RealType3> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3)
Chris@16 169 {
Chris@16 170 return complemented4_type<Dist, RealType1, RealType2, RealType3>(d, r1, r2, r3);
Chris@16 171 }
Chris@16 172
Chris@16 173 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4>
Chris@16 174 inline complemented5_type<Dist, RealType1, RealType2, RealType3, RealType4> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4)
Chris@16 175 {
Chris@16 176 return complemented5_type<Dist, RealType1, RealType2, RealType3, RealType4>(d, r1, r2, r3, r4);
Chris@16 177 }
Chris@16 178
Chris@16 179 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5>
Chris@16 180 inline complemented6_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4, const RealType5& r5)
Chris@16 181 {
Chris@16 182 return complemented6_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5>(d, r1, r2, r3, r4, r5);
Chris@16 183 }
Chris@16 184
Chris@16 185 template <class Dist, class RealType1, class RealType2, class RealType3, class RealType4, class RealType5, class RealType6>
Chris@16 186 inline complemented7_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5, RealType6> complement(const Dist& d, const RealType1& r1, const RealType2& r2, const RealType3& r3, const RealType4& r4, const RealType5& r5, const RealType6& r6)
Chris@16 187 {
Chris@16 188 return complemented7_type<Dist, RealType1, RealType2, RealType3, RealType4, RealType5, RealType6>(d, r1, r2, r3, r4, r5, r6);
Chris@16 189 }
Chris@16 190
Chris@16 191 } // namespace math
Chris@16 192 } // namespace boost
Chris@16 193
Chris@16 194 #endif // BOOST_STATS_COMPLEMENT_HPP
Chris@16 195