/*  euler.c    CCMATH mathematics library source code.
 *
 *  Copyright (C)  2000   Daniel A. Atkinson    All rights reserved.
 *  This code may be redistributed under the terms of the GNU library
 *  public license (LGPL). ( See the lgpl.license file for details.)
 * ------------------------------------------------------------------------
 */
#include <math.h>
void euler(double *pv,int m,double a,double b,double c)
{ double t,cn,sn,*p,*q; int j,k;
  for(k=0; k<3 ;++k){
    switch(k){
       case 0: cn=cos(c); sn=sin(c); p=pv; q=p+1; break;
       case 1: cn=cos(b); sn= -sin(b); p=pv; q=p+2; break;
       case 2: cn=cos(a); sn=sin(a); p=pv; q=p+1;
     }
    for(j=0; j<m ;++j,p+=3,q+=3){
      t=cn* *p-sn* *q; *q=cn* *q+sn* *p; *p=t; }
   }
}


syntax highlighted by Code2HTML, v. 0.9.1