00001 #ifndef __MATH_DISCRETE_HPP__
00002 #define __MATH_DISCRETE_HPP__
00003
00004 #include <vector>
00005 #include <memory>
00006
00007 namespace math {
00008 namespace discrete {
00009 int factorial(int n);
00010 void permutations(int** perm, int* trans, int i, int N);
00011 void permutations(int**& perm, int*& trans, int N);
00012
00014 int p(int,int);
00016 int c(int,int);
00017
00018 namespace Graph {
00019 class Node {
00020 };
00021 class Edge {
00022 public:
00023 Node* a_;
00024 Node* b_;
00025 };
00026 class EdgeWeighted: public Edge {
00027 public:
00028 double w_;
00029 };
00030 class Graph {
00031 public:
00032 std::vector<Node*> nodes_;
00033 std::vector<Edge*> edges_;
00034 };
00035 }
00036 }
00037 }
00038
00039 #endif
00040
00041