BOOST_SYMBOL_EXPORT double standard_deviation(double const *array, size_t length, BOOST_SIMD_DEFAULT_SITE) { two_dimension_source<standard_deviation_tag> f = two_dimension_source<standard_deviation_tag>(array, length); return twin_balanced_sum(f); }
BOOST_SYMBOL_EXPORT double weighted_mean(double const *array, double const *weights, size_t length, BOOST_SIMD_DEFAULT_SITE) { two_dimension_source<weighted_mean_tag> f = two_dimension_source<weighted_mean_tag>(array, weights, length); return twin_balanced_sum(f); }
JNI_METHOD(jdouble, sd)(JNIEnv *env, jobject, jdoubleArray jvalues, jint offset, jint length) { jdouble *values = (jdouble *) env->GetPrimitiveArrayCritical(jvalues, NULL); source_2d<sd_tag> f(values + offset, length); double res = twin_balanced_sum(f); env->ReleasePrimitiveArrayCritical(jvalues, values, JNI_ABORT); return res; }
JNI_METHOD(jdouble, weightedMean)(JNIEnv *env, jobject, jdoubleArray jvalues, jint values_offset, jdoubleArray jweights, jint weights_offset, jint length) { jdouble *values = (jdouble *) env->GetPrimitiveArrayCritical(jvalues, NULL); jdouble *weights = (jdouble *) env->GetPrimitiveArrayCritical(jweights, NULL); source_2d<weighted_mean_tag> f(values + values_offset, weights + weights_offset, length); double res = twin_balanced_sum(f); env->ReleasePrimitiveArrayCritical(jvalues, values, JNI_ABORT); env->ReleasePrimitiveArrayCritical(jweights, weights, JNI_ABORT); return res; }