double dot_product(xyz *,xyz *);


void cross_product(xyz *,xyz *,xyz *);

xyz refraction(double n1,double n2,xyz *ray,xyz *normal);
xyz reflection(xyz *ray,xyz *normal);
double fresnel(double n1,double n2,xyz *ray,xyz *normal);