Пример #1
0
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);
}
Пример #2
0
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;
}