// Quantum algorithms namespace header file

#ifndef algos_h
#undef AFX_API
#define AFX_API AFX_EXT_CLASS
#define algos_h

#include <iostream.h>

#include "complex.h"
#include "bstate.h"
#include "hilbert.h"
#include "gate.h"
#include "gates.h"
#include "calgos.h"

namespace CQAlgos
{

	void qft(CHilbert*, THREADPARAMS*);				// apply qft to entite space
	void subqft(int, int, CHilbert*, THREADPARAMS*);// apply qft to subspace defined
													// by qubits between integer
													// arguments


	bool shor(int, THREADPARAMS*, int);	// Shor's algorithm
										// 1st arg - num to be factorise 
										// 2nd arg - thread parameters
										// 3rg arg - file out (0 false) 
};

#endif
