@@ -24,8 +24,8 @@ void *memset(void *s, int c, size_t n) {
2424// MicroPython type for ExtraTrees model
2525typedef struct _mp_obj_extratrees_model_t {
2626 mp_obj_base_t base ;
27- EmlTreesModel model ;
28- EmlTreesWorkspace workspace ;
27+ EmlExtraTreesModel model ;
28+ EmlExtraTreesWorkspace workspace ;
2929 mp_obj_t train_X_obj ; // Reference to X Python object (prevents GC during step training)
3030 mp_obj_t train_y_obj ; // Reference to y Python object (prevents GC during step training)
3131} mp_obj_extratrees_model_t ;
@@ -61,10 +61,10 @@ static mp_obj_t extratrees_model_new(size_t n_args, const mp_obj_t *args) {
6161 mp_obj_extratrees_model_t * o = \
6262 mp_obj_malloc (mp_obj_extratrees_model_t , (mp_obj_type_t * )& extratrees_model_type );
6363
64- EmlTreesModel * model = & o -> model ;
65- EmlTreesWorkspace * workspace = & o -> workspace ;
66- memset (model , 0 , sizeof (EmlTreesModel ));
67- memset (workspace , 0 , sizeof (EmlTreesWorkspace ));
64+ EmlExtraTreesModel * model = & o -> model ;
65+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
66+ memset (model , 0 , sizeof (EmlExtraTreesModel ));
67+ memset (workspace , 0 , sizeof (EmlExtraTreesWorkspace ));
6868
6969 // Configure model
7070 model -> n_features = n_features ;
@@ -85,7 +85,7 @@ static mp_obj_t extratrees_model_new(size_t n_args, const mp_obj_t *args) {
8585 model -> config .use_global_feature_range = use_global_feature_range ;
8686
8787 // Allocate model buffers
88- model -> nodes = m_new (EmlTreesNode , max_nodes );
88+ model -> nodes = m_new (EmlExtraTreesNode , max_nodes );
8989 model -> tree_starts = m_new (int16_t , n_trees );
9090
9191 // Allocate workspace buffers
@@ -110,7 +110,7 @@ static mp_obj_t extratrees_model_new(size_t n_args, const mp_obj_t *args) {
110110 o -> train_y_obj = mp_const_none ;
111111
112112 // Initialize nodes and tree starts
113- memset (model -> nodes , 0 , sizeof (EmlTreesNode ) * max_nodes );
113+ memset (model -> nodes , 0 , sizeof (EmlExtraTreesNode ) * max_nodes );
114114 memset (model -> tree_starts , 0 , sizeof (int16_t ) * n_trees );
115115
116116 return MP_OBJ_FROM_PTR (o );
@@ -121,11 +121,11 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(extratrees_model_new_obj, 2, 12, extr
121121// Delete an instance
122122static mp_obj_t extratrees_model_del (mp_obj_t self_obj ) {
123123 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
124- EmlTreesModel * model = & o -> model ;
125- EmlTreesWorkspace * workspace = & o -> workspace ;
124+ EmlExtraTreesModel * model = & o -> model ;
125+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
126126
127127 // Free allocated memory
128- m_del (EmlTreesNode , model -> nodes , model -> max_nodes );
128+ m_del (EmlExtraTreesNode , model -> nodes , model -> max_nodes );
129129 m_del (int16_t , model -> tree_starts , model -> n_trees );
130130 m_del (uint16_t , workspace -> sample_indices , model -> max_samples );
131131 m_del (uint16_t , workspace -> feature_indices , model -> n_features );
@@ -155,8 +155,8 @@ static mp_obj_t extratrees_model_train(size_t n_args, const mp_obj_t *args) {
155155 }
156156
157157 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (args [0 ]);
158- EmlTreesModel * model = & o -> model ;
159- EmlTreesWorkspace * workspace = & o -> workspace ;
158+ EmlExtraTreesModel * model = & o -> model ;
159+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
160160
161161 // Extract X buffer
162162 mp_buffer_info_t X_bufinfo ;
@@ -185,7 +185,7 @@ static mp_obj_t extratrees_model_train(size_t n_args, const mp_obj_t *args) {
185185 workspace -> n_samples = n_samples ;
186186
187187 // Pass buffer pointers directly (no copy needed)
188- int16_t result = eml_trees_train (model , workspace , X , y );
188+ int16_t result = eml_extratrees_train (model , workspace , X , y );
189189
190190 if (result != 0 ) {
191191 mp_raise_ValueError (MP_ERROR_TEXT ("Training failed" ));
@@ -202,8 +202,8 @@ static mp_obj_t extratrees_model_train_init(size_t n_args, const mp_obj_t *args)
202202 }
203203
204204 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (args [0 ]);
205- EmlTreesModel * model = & o -> model ;
206- EmlTreesWorkspace * workspace = & o -> workspace ;
205+ EmlExtraTreesModel * model = & o -> model ;
206+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
207207
208208 // Extract X buffer
209209 mp_buffer_info_t X_bufinfo ;
@@ -236,7 +236,7 @@ static mp_obj_t extratrees_model_train_init(size_t n_args, const mp_obj_t *args)
236236 o -> train_y_obj = args [2 ];
237237
238238 // Pass buffer pointers directly (no copy needed)
239- int16_t result = eml_trees_train_init (model , workspace , X , y );
239+ int16_t result = eml_extratrees_train_init (model , workspace , X , y );
240240 if (result != 0 ) {
241241 o -> train_X_obj = mp_const_none ;
242242 o -> train_y_obj = mp_const_none ;
@@ -251,10 +251,10 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(extratrees_model_train_init_obj, 3, 3
251251// Returns: 1=training complete, 0=more steps needed
252252static mp_obj_t extratrees_model_train_step (mp_obj_t self_obj ) {
253253 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
254- EmlTreesModel * model = & o -> model ;
255- EmlTreesWorkspace * workspace = & o -> workspace ;
254+ EmlExtraTreesModel * model = & o -> model ;
255+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
256256
257- int16_t result = eml_trees_train_step (model , workspace );
257+ int16_t result = eml_extratrees_train_step (model , workspace );
258258 if (result < 0 ) {
259259 mp_raise_ValueError (MP_ERROR_TEXT ("Train step failed" ));
260260 }
@@ -276,8 +276,8 @@ static mp_obj_t extratrees_model_predict_proba(size_t n_args, const mp_obj_t *ar
276276 }
277277
278278 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (args [0 ]);
279- EmlTreesModel * model = & o -> model ;
280- EmlTreesWorkspace * workspace = & o -> workspace ;
279+ EmlExtraTreesModel * model = & o -> model ;
280+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
281281
282282 // Extract features buffer pointer and verify typecode
283283 mp_buffer_info_t features_bufinfo ;
@@ -306,7 +306,7 @@ static mp_obj_t extratrees_model_predict_proba(size_t n_args, const mp_obj_t *ar
306306 }
307307
308308 // Make prediction using pre-allocated workspace arrays
309- int16_t predicted_class = eml_trees_predict_proba (model , features , probabilities , workspace -> votes );
309+ int16_t predicted_class = eml_extratrees_predict_proba (model , features , probabilities , workspace -> votes );
310310
311311 return mp_obj_new_int (predicted_class );
312312}
@@ -319,8 +319,8 @@ static mp_obj_t extratrees_model_predict(size_t n_args, const mp_obj_t *args) {
319319 }
320320
321321 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (args [0 ]);
322- EmlTreesModel * model = & o -> model ;
323- EmlTreesWorkspace * workspace = & o -> workspace ;
322+ EmlExtraTreesModel * model = & o -> model ;
323+ EmlExtraTreesWorkspace * workspace = & o -> workspace ;
324324
325325 // Extract features buffer pointer and verify typecode
326326 mp_buffer_info_t features_bufinfo ;
@@ -336,7 +336,7 @@ static mp_obj_t extratrees_model_predict(size_t n_args, const mp_obj_t *args) {
336336 }
337337
338338 // Make prediction using pre-allocated workspace arrays
339- int16_t predicted_class = eml_trees_predict_proba (model , features , workspace -> probabilities , workspace -> votes );
339+ int16_t predicted_class = eml_extratrees_predict_proba (model , features , workspace -> probabilities , workspace -> votes );
340340
341341 return mp_obj_new_int (predicted_class );
342342}
@@ -345,7 +345,7 @@ static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(extratrees_model_predict_obj, 2, 2, e
345345// Get number of features
346346static mp_obj_t extratrees_model_get_n_features (mp_obj_t self_obj ) {
347347 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
348- EmlTreesModel * model = & o -> model ;
348+ EmlExtraTreesModel * model = & o -> model ;
349349
350350 return mp_obj_new_int (model -> n_features );
351351}
@@ -355,7 +355,7 @@ static MP_DEFINE_CONST_FUN_OBJ_1(extratrees_model_get_n_features_obj, extratrees
355355// Get number of classes
356356static mp_obj_t extratrees_model_get_n_classes (mp_obj_t self_obj ) {
357357 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
358- EmlTreesModel * model = & o -> model ;
358+ EmlExtraTreesModel * model = & o -> model ;
359359
360360 return mp_obj_new_int (model -> n_classes );
361361}
@@ -365,7 +365,7 @@ static MP_DEFINE_CONST_FUN_OBJ_1(extratrees_model_get_n_classes_obj, extratrees_
365365// Get number of trees
366366static mp_obj_t extratrees_model_get_n_trees (mp_obj_t self_obj ) {
367367 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
368- EmlTreesModel * model = & o -> model ;
368+ EmlExtraTreesModel * model = & o -> model ;
369369
370370 return mp_obj_new_int (model -> n_trees );
371371}
@@ -375,7 +375,7 @@ static MP_DEFINE_CONST_FUN_OBJ_1(extratrees_model_get_n_trees_obj, extratrees_mo
375375// Get number of nodes used
376376static mp_obj_t extratrees_model_get_n_nodes_used (mp_obj_t self_obj ) {
377377 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
378- EmlTreesModel * model = & o -> model ;
378+ EmlExtraTreesModel * model = & o -> model ;
379379
380380 return mp_obj_new_int (model -> n_nodes_used );
381381}
@@ -384,7 +384,7 @@ static MP_DEFINE_CONST_FUN_OBJ_1(extratrees_model_get_n_nodes_used_obj, extratre
384384// Get number of trees trained
385385static mp_obj_t extratrees_model_get_n_trees_trained (mp_obj_t self_obj ) {
386386 mp_obj_extratrees_model_t * o = MP_OBJ_TO_PTR (self_obj );
387- EmlTreesModel * model = & o -> model ;
387+ EmlExtraTreesModel * model = & o -> model ;
388388
389389 return mp_obj_new_int (model -> n_trees_trained );
390390}
0 commit comments