Здравствуйте, reseacher2011, Вы писали:
R>R>void dot_product(const double* x, const double* y, double *scalar){
R> *scalar = *x*(*y)+*(x+1)*(*(y+1))+*(x+2)*(*(y+2));
R>}
R>void cross_product(const double* x, const double* y, double *vector){
R> *vector = *(x+1)*(*(y+2)) - *(x+2)*(*(y+1));
R> *(vector+1) = - ( *x*(*(y+2)) - *(x+2)*(*y) );
R> *(vector+2) = *x*(*(y+1)) - *(x+1)*(*y) ;
R>}
R>void module(const double *vect, double *mod){
R> *mod = sqrt(pow(*vect,2.)+pow(*(vect+1),2.)+pow(*(vect+2),2.));
R>}
R>void dist_segm_point(const double *x, const double *a, const double *b, double *res){
R> double dist_ab, proj, r_ab[3], r_ax[3], r_bx[3], tmp_vect[3];
R>..
R>
1) Сообщу на всякий случай, что double *x и double x[3] в описании ПАРАМЕТРОВ функции ОБОЗНАЧАЮТ ОДНО И ТО ЖЕ
2) Ещё сообщу, что для указателей записи *(x+1) и x[1] ТОЖЕ ЭКВИВАЛЕНТНЫ.
Так что лучше писать ПОНЯТНЕЕ
double dot_product(const double x[], const double y[])
{
return x[0]*y[0] + x[1]*y[1] + x[2]*y[2];
}
А что касается ускорения, то хорошо бы ПОНЯТНО объяснить, что надо сделать...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском