tasmet/src/funcs/skewsine.cpp

28 lines
605 B
C++

// skewsine.cpp
//
// last-edit-by: J.A. de Jong
//
// Description:
// Implementation of a skew sine
//////////////////////////////////////////////////////////////////////
#include "skewsine.h"
// Equation for a skew sine between x=0 and x=1
d skewsine(d x){
if (x<0.0)
return 0.0;
else if (x<1.0)
return x-(1.0/(2.0*number_pi))*sin(x*number_pi*2.0);
else
return 1.0;
}
vd skewsine(const vd& x){
vd result=x;
result.transform( [](d val) {return skewsine(val);});
return result;
}
//////////////////////////////////////////////////////////////////////