ruby-fann 1.4.2 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/ruby_fann/fann_augment.h +25 -25
- data/ext/ruby_fann/fann_train.h +268 -268
- data/ext/ruby_fann/ruby_fann.c +301 -298
- data/lib/ruby_fann/version.rb +3 -3
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1513ab175dd525a96a3846565c6b54a2d5bf44af679144a4f7e877dd8e948e03
|
4
|
+
data.tar.gz: 9942ab1a6cd7112ec21fa4d7912f8f72e62a18ab429948cc507c73a8af5efb73
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5b0a6b6909f6d19b005454dfddf77570493ddf3618c7b51e6fd36c99b09bfa3858b489cfca80829253f1c1ed79c953cbae21b6f4a24eddd34cd37d31920d529d
|
7
|
+
data.tar.gz: 8776e0c70509d821e032b2e9b1bf7c0a323609e3bf69a7cd294ebbb192c57236c06e5cffcb869f79291d3fabe5ef17f6553cd078419f88283cdff05f33ff17d4
|
@@ -10,21 +10,23 @@ FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary2(
|
|
10
10
|
}
|
11
11
|
|
12
12
|
/*
|
13
|
-
* Copied from fann_create_train_from_callback/file & modified to ease
|
13
|
+
* Copied from fann_create_train_from_callback/file & modified to ease
|
14
14
|
* allocating from ruby arrays:
|
15
15
|
*/
|
16
16
|
FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary(
|
17
|
-
VALUE inputs,
|
18
|
-
VALUE outputs
|
17
|
+
VALUE inputs,
|
18
|
+
VALUE outputs
|
19
19
|
)
|
20
20
|
{
|
21
21
|
unsigned int i, j;
|
22
22
|
fann_type *data_input, *data_output;
|
23
23
|
struct fann_train_data *data = (struct fann_train_data *)malloc(sizeof(struct fann_train_data));
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
|
25
|
+
long num_input = RARRAY_LEN(RARRAY_PTR(inputs)[0]);
|
26
|
+
long num_output = RARRAY_LEN(RARRAY_PTR(outputs)[0]);
|
27
|
+
long num_data = RARRAY_LEN(inputs);
|
28
|
+
|
29
|
+
|
28
30
|
if(data == NULL) {
|
29
31
|
fann_error(NULL, FANN_E_CANT_ALLOCATE_MEM);
|
30
32
|
return NULL;
|
@@ -35,7 +37,6 @@ FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary(
|
|
35
37
|
data->num_data = num_data;
|
36
38
|
data->num_input = num_input;
|
37
39
|
data->num_output = num_output;
|
38
|
-
|
39
40
|
data->input = (fann_type **) calloc(num_data, sizeof(fann_type *));
|
40
41
|
if(data->input == NULL)
|
41
42
|
{
|
@@ -51,7 +52,6 @@ FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary(
|
|
51
52
|
fann_destroy_train(data);
|
52
53
|
return NULL;
|
53
54
|
}
|
54
|
-
|
55
55
|
data_input = (fann_type *) calloc(num_input * num_data, sizeof(fann_type));
|
56
56
|
if(data_input == NULL)
|
57
57
|
{
|
@@ -74,26 +74,26 @@ FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary(
|
|
74
74
|
data->input[i] = data_input;
|
75
75
|
data_input += num_input;
|
76
76
|
|
77
|
-
inputs_i =
|
78
|
-
outputs_i =
|
79
|
-
|
80
|
-
if(RARRAY_LEN(inputs_i) != num_input)
|
77
|
+
inputs_i = RARRAY_PTR(inputs)[i];
|
78
|
+
outputs_i = RARRAY_PTR(outputs)[i];
|
79
|
+
|
80
|
+
if(RARRAY_LEN(inputs_i) != num_input)
|
81
81
|
{
|
82
82
|
rb_raise (
|
83
|
-
rb_eRuntimeError,
|
84
|
-
"Number of inputs at [%d] is inconsistent: (%
|
85
|
-
i,
|
83
|
+
rb_eRuntimeError,
|
84
|
+
"Number of inputs at [%d] is inconsistent: (%du != %d)",
|
85
|
+
i,RARRAY_LEN(inputs_i)), num_input;
|
86
86
|
}
|
87
|
-
|
88
|
-
if(RARRAY_LEN(outputs_i) != num_output)
|
87
|
+
|
88
|
+
if(RARRAY_LEN(outputs_i) != num_output)
|
89
89
|
{
|
90
90
|
rb_raise (
|
91
|
-
rb_eRuntimeError,
|
92
|
-
"Number of outputs at [%d] is inconsistent: (%d != %d)",
|
93
|
-
i,
|
91
|
+
rb_eRuntimeError,
|
92
|
+
"Number of outputs at [%d] is inconsistent: (%d != %d)",
|
93
|
+
i, RARRAY_LEN(outputs_i)), num_output;
|
94
94
|
}
|
95
|
-
|
96
|
-
|
95
|
+
|
96
|
+
|
97
97
|
for(j = 0; j != num_input; j++)
|
98
98
|
{
|
99
99
|
data->input[i][j]=NUM2DBL(RARRAY_PTR(inputs_i)[j]);
|
@@ -101,12 +101,12 @@ FANN_EXTERNAL struct fann_train_data * FANN_API fann_create_train_from_rb_ary(
|
|
101
101
|
|
102
102
|
data->output[i] = data_output;
|
103
103
|
data_output += num_output;
|
104
|
-
|
104
|
+
|
105
105
|
for(j = 0; j != num_output; j++)
|
106
106
|
{
|
107
107
|
data->output[i][j]=NUM2DBL(RARRAY_PTR(outputs_i)[j]);
|
108
108
|
}
|
109
109
|
}
|
110
|
-
|
110
|
+
|
111
111
|
return data;
|
112
112
|
}
|