GiNaC  1.6.2
fderivative.h
Go to the documentation of this file.
00001 
00005 /*
00006  *  GiNaC Copyright (C) 1999-2011 Johannes Gutenberg University Mainz, Germany
00007  *
00008  *  This program is free software; you can redistribute it and/or modify
00009  *  it under the terms of the GNU General Public License as published by
00010  *  the Free Software Foundation; either version 2 of the License, or
00011  *  (at your option) any later version.
00012  *
00013  *  This program is distributed in the hope that it will be useful,
00014  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00015  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00016  *  GNU General Public License for more details.
00017  *
00018  *  You should have received a copy of the GNU General Public License
00019  *  along with this program; if not, write to the Free Software
00020  *  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00021  */
00022 
00023 #ifndef GINAC_FDERIVATIVE_H
00024 #define GINAC_FDERIVATIVE_H
00025 
00026 #include "function.h"
00027 
00028 #include <set>
00029 
00030 namespace GiNaC {
00031 
00032 typedef std::multiset<unsigned> paramset;
00033 
00037 class fderivative : public function
00038 {
00039     GINAC_DECLARE_REGISTERED_CLASS(fderivative, function)
00040 
00041     // other constructors
00042 public:
00048     fderivative(unsigned ser, unsigned param, const exvector & args);
00049 
00055     fderivative(unsigned ser, const paramset & params, const exvector & args);
00056 
00057     // internal constructors
00058     fderivative(unsigned ser, const paramset & params, std::auto_ptr<exvector> vp);
00059 
00060     // functions overriding virtual functions from base classes
00061 public:
00062     void print(const print_context & c, unsigned level = 0) const;
00063     ex eval(int level = 0) const;
00064     ex evalf(int level = 0) const;
00065     ex series(const relational & r, int order, unsigned options = 0) const;
00066     ex thiscontainer(const exvector & v) const;
00067     ex thiscontainer(std::auto_ptr<exvector> vp) const;
00068     void archive(archive_node& n) const;
00069     void read_archive(const archive_node& n, lst& syms);
00070 protected:
00071     ex derivative(const symbol & s) const;
00072     bool is_equal_same_type(const basic & other) const;
00073     bool match_same_type(const basic & other) const;
00074 
00075     // non-virtual functions in this class
00076 protected:
00077     void do_print(const print_context & c, unsigned level) const;
00078     void do_print_csrc(const print_csrc & c, unsigned level) const;
00079     void do_print_tree(const print_tree & c, unsigned level) const;
00080 
00081     // member variables
00082 protected:
00083     paramset parameter_set; 
00084 };
00085 GINAC_DECLARE_UNARCHIVER(fderivative); 
00086 
00087 } // namespace GiNaC
00088 
00089 #endif // ndef GINAC_DERIVATIVE_H

This page is part of the GiNaC developer's reference. It was generated automatically by doxygen. For an introduction, see the tutorial.