00001 /*============================================================================= 00002 * Product : OpenPL 00003 * File : plVariablesConjunction.h 00004 * Author : Juan-Manuel Ahuactzin 00005 * Creation : Wed Apr 10 10:59:32 2002 00006 * 00007 *============================================================================= 00008 * (c) Copyright 2000, Centre National de la Recherche Scientifique, 00009 * all rights reserved 00010 *============================================================================= 00011 * 00012 *------------------------- Description --------------------------------------- 00013 * 00014 * 00015 *----------------------------------------------------------------------------- 00016 */ 00017 00018 00019 #ifndef _plVariablesConjunction_h 00020 #define _plVariablesConjunction_h 00021 00022 #include <plObject.h> 00023 #include <plMath.h> 00024 00025 /***************************************************************************** 00026 * External Classes 00027 *****************************************************************************/ 00028 class kplVariable; 00029 00030 00031 /***************************************************************************** 00032 * Classes Definitions 00033 *****************************************************************************/ 00034 00035 00038 class plVariablesConjunction : public plObject 00039 { 00040 protected: 00042 virtual void Output(ostream &out) const; 00043 public: 00044 00046 plVariablesConjunction(); 00047 00051 virtual ~plVariablesConjunction(); 00052 00054 string name() const; 00055 00056 class plVariable operator^(const plVariablesConjunction &variable) const; 00057 00064 double cardinality()const; 00065 00068 inline bool isDiscretized() const 00069 { 00070 return ( 0.0 != cardinality() ); 00071 } 00072 00075 inline unsigned int dim() const 00076 { 00077 return Dsize; 00078 } 00079 00080 00081 private: 00083 kplVariable *kernel_variable; 00084 00085 protected: 00088 unsigned int Dsize; 00089 00091 list <kplVariable *> variable_list; 00092 00094 plVariablesConjunction(const list <kplVariable *> &kernel_variable_list); 00095 00096 public: 00097 const list <kplVariable *>& get_variable_list() const; 00098 00099 00100 friend class plData; 00101 friend class plArray; 00102 friend class plBellShape; 00103 friend class plCndBellShape; 00104 friend class plCndBellShapeA; 00105 friend class plCndKernel; 00106 friend class plCndNormal; 00107 friend class plCndProbTable; 00108 friend class plCndUnknown; 00109 friend class plComputableObject; 00110 friend class plConditional1dGaussA; 00111 friend class plConditionalExpression; 00112 friend class plDirac; 00113 friend class plDistribution; 00114 friend class plFunctionalDirac; 00115 friend class plGamma; 00116 friend class plJointDistribution; 00117 friend class plKalmanFilter; 00118 friend class plKernel; 00119 friend class plKernelMap; 00120 friend class plMrbt; 00121 friend class plNormal; 00122 friend class plPoisson; 00123 friend class plProbTable; 00124 friend class plSymbol; 00125 friend class plUniform; 00126 friend class plUnknown; 00127 friend class plValues; 00128 friend class plVariable; 00129 friend class plKernelTable; 00130 friend class plLogNormal; 00131 }; 00132 00133 00134 #endif