コード例 #1
0
ファイル: luacl_math.hpp プロジェクト: llxibo/LuaCL
void luacl_numerical_characteristic(
    ARG_IN const T* _data,
    ARG_IN size_t n,
    ARG_OUT T& mean,
    ARG_OUT T& stddev,
    ARG_OUT T& max,
    ARG_OUT T& min
) {
    /* Make a copy of _data. */
    std::vector<T> datacopy(_data, _data + n);

    /* Prefix-sum to minimize rounding errors for FP types. */
    mean = luacl_prefix_sum(datacopy) / static_cast<T>(n);

    /* Maximum, minimum and stddev. */
    max = _data[0];
    min = _data[0];
    for (size_t i = 0; i < datacopy.size(); ++i) {
        max = _data[i] > max ? _data[i] : max;
        min = _data[i] < min ? _data[i] : min;
        datacopy[i] = _data[i] - mean;
        datacopy[i] *= datacopy[i];
    }

    if (n >= 2){
        stddev = sqrt(luacl_prefix_sum(datacopy) / static_cast<T>(n - 1));
    }else{
        stddev = static_cast<T>(0);
    }
}
コード例 #2
0
ファイル: main.c プロジェクト: ether0x2ca/neural_network
void shuffle(int sizedata, float data[][4], char flower_type[][20]) {
    int i, j;
    float dummydata[4];
    char dummyary[20];
    
    srand((int)time(NULL));
    
    for (i = 0; i < sizedata; i++) {
        j = rand() % sizedata;
        datacopy(dummydata, data[i]);
        strcpy(dummyary, flower_type[i]);
        datacopy(data[i], data[j]);
        strcpy(flower_type[i], flower_type[j]);
        datacopy(data[j], dummydata);
        strcpy(flower_type[j], dummyary);
    }
    
}