diff --git a/pub/CHANGELOG b/pub/CHANGELOG index c33169cebdd1d33ee7e5dbdeac4a93b8fe7119e3..2ac31a422e5295302849b7d8b6677449653cb84b 100644 --- a/pub/CHANGELOG +++ b/pub/CHANGELOG @@ -1,6 +1,6 @@ - Use plot.Y.force in 2d plotting - Use wx, wy, wh in setting ticks and tacks for easier editing of PS file -- Correct tacks for small log range +- Correct ticks and tacks for small log range Release 2.4.0b of 21apr17: diff --git a/pub/lib/node.hpp b/pub/lib/node.hpp index 230dcd22ea0f103710f8a193c00b6b67625be645..ff2db06879b7e65756912bf2fe0d77e8f799cee5 100644 --- a/pub/lib/node.hpp +++ b/pub/lib/node.hpp @@ -22,6 +22,7 @@ protected: vector<RNode> arg; public: + CNodeWithArgs() = delete; CNodeWithArgs(int _narg) : narg(_narg) { arg.resize(narg); } int npar() const; bool k_dependent() const; @@ -41,6 +42,7 @@ protected: const class CFunc* fu; public: + CNodeFun() = delete; CNodeFun(int _narg, const class CFunc* _fu) : CNodeWithArgs(_narg), fu(_fu) {} RObj tree_val(const CContext& ctx) const; virtual CCoord node_coord(int k) const = 0; @@ -53,6 +55,7 @@ public: class CNodeFun1 : public CNodeFun { public: + CNodeFun1() = delete; CNodeFun1(const class CFunc* _fu, RNode a0); CCoord node_coord(int k) const; string tree_info() const; @@ -64,6 +67,7 @@ public: class CNodeFun2 : public CNodeFun { public: + CNodeFun2() = delete; CNodeFun2(const class CFunc* _fu, RNode a0, RNode a1); CCoord node_coord(int k) const; string tree_info() const; @@ -75,6 +79,7 @@ public: class CNodeFun3 : public CNodeFun { public: + CNodeFun3() = delete; CNodeFun3(const class CFunc* _fu, RNode a0, RNode a1, RNode a2); CCoord node_coord(int k) const; string tree_info() const; @@ -89,6 +94,7 @@ private: bool inclusive_end; public: + CNodeRange() = delete; CNodeRange( bool _inclusive_end, RNode _beg = nullptr, RNode _end = nullptr, RNode _step = nullptr) : CNodeWithArgs(3), inclusive_end(_inclusive_end) @@ -109,6 +115,7 @@ public: class CNodeList : public CNodeWithArgs { public: + CNodeList() = delete; CNodeList(RNode _list, RNode _incr); vector<RNode> args() const { return arg; } RObj tree_val(const CContext& ctx) const; @@ -126,6 +133,7 @@ private: const class CGeni* geni; public: + CNodeGeni() = delete; CNodeGeni(const class CGeni* _geni, RRef _ref = nullptr); CNodeGeni(const class CGeni* _geni, RNode a0); CNodeGeni(const class CGeni* _geni, RNode a0, RNode a1); @@ -145,6 +153,7 @@ private: RRef ref; public: + CNodeCvin() = delete; CNodeCvin(const class CCvin* _cvin, RRef _ref, RNode a0, RNode a1); bool k_dependent() const { return true; } RObj tree_val(const CContext& ctx) const; @@ -161,6 +170,7 @@ private: RObj val; public: + CNodeVal() = delete; CNodeVal(RObj _val) : val(_val) {} CNodeVal(double _val); CNodeVal(int _val); @@ -240,6 +250,7 @@ protected: RRef ref; public: + CNodeFile() = delete; CNodeFile(RRef _ref) : ref(_ref) {} void set_ref(RRef& _ref) { ref = _ref; }; bool k_dependent() const { return true; } @@ -255,6 +266,7 @@ public: class CNodeFileNJ : public CNodeFile { public: + CNodeFileNJ() = delete; CNodeFileNJ(RRef _ref) : CNodeFile(_ref) {} string name() const { return "nj"; } RObj tree_val_scalar(const CContext& ctx) const; @@ -269,6 +281,7 @@ private: int num; public: + CNodeFileR() = delete; CNodeFileR(int _num, RRef _ref) : CNodeFile(_ref), num(_num) {} CCoord file_coord(const COlo* f) const; string name() const { return "r" + S(num); } @@ -281,6 +294,7 @@ public: class CNodeSlice : public CNodeFile { public: + CNodeSlice() = delete; CNodeSlice(RRef _ref) : CNodeFile(_ref) {} }; @@ -293,6 +307,7 @@ private: int num; public: + CNodeSliceZ() = delete; CNodeSliceZ(int _num, RRef _ref) : CNodeSlice(_ref), num(_num) {} CCoord file_coord(const COlo* f) const; string name() const { return "z" + S(num); } @@ -305,6 +320,7 @@ public: class CNodeSpecNI : public CNodeSlice { public: + CNodeSpecNI() = delete; CNodeSpecNI(RRef _ref) : CNodeSlice(_ref) {} string name() const { return "ni"; } RObj tree_val_scalar(const CContext& ctx) const; @@ -316,6 +332,7 @@ public: class CNodeCurve : public CNodeSlice { public: + CNodeCurve() = delete; CNodeCurve(RRef _ref) : CNodeSlice(_ref) {} RObj tree_val_scalar(const CContext& ctx) const; virtual RObj curve_val_scalar(const CCurve* c) const = 0; @@ -330,6 +347,7 @@ private: int num; public: + CNodeCurveP() = delete; CNodeCurveP(int _num, RRef _ref) : CNodeCurve(_ref), num(_num) {} CCoord file_coord(const COlo* f) const; string name() const { return "p" + S(num); } @@ -343,6 +361,7 @@ public: class CNodeCurveOutcome : public CNodeCurve { public: + CNodeCurveOutcome() = delete; CNodeCurveOutcome(RRef _ref) : CNodeCurve(_ref) {} string name() const { return "oc"; } RObj curve_val_scalar(const CCurve* c) const; @@ -354,6 +373,7 @@ public: class CNodeCurveChi2 : public CNodeCurve { public: + CNodeCurveChi2() = delete; CNodeCurveChi2(RRef _ref) : CNodeCurve(_ref) {} string name() const { return "chi2"; } RObj curve_val_scalar(const CCurve* c) const; @@ -365,6 +385,7 @@ public: class CNodeCurveR2 : public CNodeCurve { public: + CNodeCurveR2() = delete; CNodeCurveR2(RRef _ref) : CNodeCurve(_ref) {} string name() const { return "R2"; } RObj curve_val_scalar(const CCurve* c) const; @@ -394,6 +415,7 @@ public: class CNodePointX : public CNodePoint { public: + CNodePointX() = delete; CNodePointX(RRef _ref) : CNodePoint(_ref) {} CCoord file_coord(const COlo* f) const; string name() const { return "x"; } @@ -407,6 +429,7 @@ public: class CNodePointY : public CNodePoint { public: + CNodePointY() = delete; CNodePointY(RRef _ref) : CNodePoint(_ref) {} CCoord file_coord(const COlo* f) const; string name() const { return "y"; } @@ -420,6 +443,7 @@ public: class CNodePointDY : public CNodePoint { public: + CNodePointDY() = delete; CNodePointDY(RRef _ref) : CNodePoint(_ref) {} CCoord file_coord(const COlo* f) const; string name() const { return "dy"; } @@ -436,6 +460,7 @@ private: string idf; public: + CNodeIdf() = delete; CNodeIdf(string _s); RObj tree_val(const CContext& ctx) const; CCoord node_coord(int k) const; @@ -468,6 +493,7 @@ private: RNode arg; public: + CNodeCev() = delete; CNodeCev(RRef _ref, RNode _arg) : ref(_ref), arg(_arg) {} bool k_dependent() const { return true; } bool has_dummy() const { return arg->has_dummy(); } @@ -486,6 +512,7 @@ protected: RNode shift; public: + CNodeMixin() = delete; CNodeMixin(const RNode& _shift) : shift(_shift) {} int npar() const { return shift->npar(); } bool k_dependent() const { return shift->k_dependent(); } @@ -507,9 +534,9 @@ protected: RNode theory; public: - CNodeConvBase(const RNode& _theory, const RNode& _shift) : CNodeMixin(_shift), theory(_theory) - { - } + CNodeConvBase() = delete; + CNodeConvBase(const RNode& _theory, const RNode& _shift) + : CNodeMixin(_shift), theory(_theory) {} int npar() const { return std::max(shift->npar(), theory->npar()); } bool k_dependent() const { return theory->k_dependent() || shift->k_dependent(); } bool j_dependent() const { return theory->j_dependent() || shift->j_dependent(); } @@ -524,10 +551,9 @@ public: class CNodeConv : public CNodeConvBase { public: + CNodeConv() = delete; CNodeConv(const RNode& _theory, const RNode& _shift = RNode(new CNodeVal(0.0))) - : CNodeConvBase(_theory, _shift) - { - } + : CNodeConvBase(_theory, _shift) {} RObj copy_theory(const CContext& ctx, double theshift) const; RObjVecDbl convolve( const CContext& ctx, double theshift, const CSpec* sv, double conv_norm, @@ -544,8 +570,9 @@ public: class CNodePConv : public CNodeConvBase { public: + CNodePConv() = delete; CNodePConv(const RNode& _theory, const RNode& _shift = RNode(new CNodeVal(0.0))) - : CNodeConvBase(_theory, _shift){}; + : CNodeConvBase(_theory, _shift) {}; RObj copy_theory(const CContext& ctx, double theshift) const; RObjVecDbl convolve( const CContext& ctx, double theshift, const CSpec* sv, double conv_norm,