docs: public double function(double[] alpha) {
      final int d = vec.getDimensionality();
      if(alpha.length != d - 1) {
        throw new IllegalArgumentException("Parameter alpha must have a dimensionality of " + (d - 1) + ", read: " + alpha.length);
      }
  
      double result = 0;
      for(int i = 0; i < d; i++) {
        double alpha_i = i == d - 1 ? 0 : alpha[i];
        result += vec.doubleValue(i) * sinusProduct(0, i, alpha) * FastMath.cos(alpha_i);
      }
      return result;
    }