Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members

plProduct.h

00001 /*=============================================================================
00002  * Product        : OpenPL 
00003  * File           : plProduct.h
00004  * Author         : Kamel Mekhnacha
00005  * Creation       : Wed Nov  7 13:06:08 CET 2003
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 #ifndef _plProduct_h_
00019 #define _plProduct_h_
00020 
00021 #include <plComputableObject.h>
00022 
00023 class kplComputableObject;
00024 
00028 class plProduct :public plComputableObject
00029 {
00030  public:
00031  
00033   plProduct();
00034  
00036   plProduct(const plComputableObjectList &func_lis);
00037   
00039   plProduct(const plProduct&pr);
00040   
00042   plProduct &operator=(const plProduct &pr);
00043   
00045   ~plProduct();
00046   
00050  void replace(const plVariablesConjunction &left_vars, 
00051               const plVariablesConjunction &right_vars, 
00052               plCndKernel &new_cnd_kernel);
00053   
00057   void replace(const plVariablesConjunction &left_vars, plKernel &new_kernel);
00058 
00059   ostream& write_head(ostream &out) const;
00060   
00061   ostream& write_body(ostream &out) const;
00062   
00063   kplComputableObject*  get_root_kernel()const;
00064   
00065  protected:
00066   
00067   kplComputableObject *product;
00068   
00069  protected:
00070   
00071   plProbValue kernel_compute(const plDataValues &params) const;
00072   
00073   void kernel_rename(const map <kplVariable*, kplVariable *> &rename_map);
00074   
00075   friend class plCndKernel;
00076   friend class plKernel;
00077 
00078 };
00079 
00080 #endif

Generated on Fri Apr 1 10:58:15 2005 for ProBT by  doxygen 1.4.1