//std::vector<double> r,v; //this should be valarray in the first place
double r[2], v[2];
//double operator*(const vector<double> &v1, const vector<double> &v2);
double dot_product2d(constdouble *v1, constdouble *v2);
//member functions
//bool Neutron::step_succeeded()
int Neutron_step_succeeded( Neutron *this ) //prefix all member with this->
// I/O
//FILE* instead of ofstream, f{open,close}
//{f,}printf for output
//scanf for input