#ifndef HALTON_H
#define HALTON_H

#include "permutation.h"
#include <vector>

double phi(int p, permutation &pi, int i);

class halton {
  public:
    halton(int dim, int *p); // p is not deep-copied
    permutation& get_pi(int i);
    void set_pis(std::vector<permutation> &pis);
    int get_p(int i);
    void compute(int i, double* res);
  protected:
    const int dim;
    int *p;
    std::vector<permutation> pi;
};

#endif // HALTON_H
