Bill Allombert on Thu, 21 Nov 2013 21:57:28 +0100 |
[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]
Re : Function vs list of instructions executed separately |
Hello Ewan, GP2C has found a problem in insert_constraint0: insert_constraint0(extr_constraints,extr_vectors,new_cstr,list_of_vars)= ^^^^^^^^ { my(temp_vecs,temp_cstr,new_vecs,new_cstr); ^^^^^^^^ This redefines new_cstr to be 0. Some comment on your code, and the full GP2C messages: > eb_variables_array=['eb1,'eb2,'eb3,'eb4,'eb5,'eb6,'eb7,'eb8,'eb9,'eb10,'eb11,'eb12,'eb13,'eb14,'eb15,'eb16,'eb17,'eb18,'eb19,'eb20,'eb21,'eb22,'eb23,'eb24,'eb25,'eb26,'eb27,'eb28,'eb29,'eb30,'eb31,'eb32,'eb33,'eb34,'eb35,'eb36,'eb37,'eb38,'eb39,'eb40,'eb41,'eb42,'eb43,'eb44,'eb45,'eb46,'eb47,'eb48,'eb49,'eb50,'eb51,'eb52,'eb53,'eb54,'eb55,'eb56,'eb57,'eb58,'eb59,'eb60,'eb61,'eb62,'eb63,'eb64,'eb65,'eb66,'eb67,'eb68,'eb69,'eb70,'eb71,'eb72,'eb73,'eb74,'eb75,'eb76,'eb77,'eb78,'eb79,'eb80,'eb81,'eb82,'eb83,'eb84,'eb85,'eb86,'eb87,'eb88,'eb89,'eb90,'eb91,'eb92,'eb93,'eb94,'eb95,'eb96,'eb97,'eb98,'eb99,'eb100] you can do eb_variables_array=vector(100,i,eval(Str("'eb",i))); > ryan_degree(expr,l_var)= > { > my(n,k,answer); > n=length(l_var); > answer=0; > k=n; > while((answer<1)*(k>0),if(polcoeff(expr,1,l_var[k])!=0,answer=k;);k--;); > return(answer); You can use && instead of *: answer<1 && k>0 > compute_kernel(l_expr,l_var)= > { > my(variable_l,watcher,answer,part1,part2,expr,var1,form1,\ > new_l_var,unchanged_indices,unchanged_variables,n,k0,k1); Do not use \ at end of line inside {}, because \ is an operator in GP , so a \ b is legal. Instead indent your code > for(k=1,n,\ > current_expr=rewritings[k][2];\ > d=ryan_degree(current_expr,l_var);\ for(k=1,n, current_expr=rewritings[k][2]; d=ryan_degree(current_expr,l_var); > big_concat(l)={\ > my(answer,k); > answer=l[1]; > for(k=2,length(l),answer=concat(answer,l[k])); > return(answer); > } You can just do big_concat(l)=concat(l) gp2c reported the following warning: Warning:../ewan.gp:60: variable undeclared annulators Warning:../ewan.gp:67: variable undeclared dual_version Warning:../ewan.gp:51: function prototype is unknown make_zero(expr,var1) Warning:../ewan.gp:57: function prototype is unknown big_subst(l_var,part1,part2) gp2c-run reported the following In function ‘compute_kernel’: 282:208: warning: variable ‘n’ set but not used [-Wunused-but-set-variable] 282:44: warning: unused variable ‘answer’ [-Wunused-variable] In function ‘extract_basis’: 377:145: warning: unused variable ‘k’ [-Wunused-variable] In function ‘big_concat’: 451:23: warning: unused variable ‘k’ [-Wunused-variable] In function ‘cartesian_big_product’: 529:18: warning: unused variable ‘k’ [-Wunused-variable] In function ‘test_individual_for_extremality’: 626:7: warning: unused variable ‘k’ [-Wunused-variable] In function ‘test_individuals_for_extremality’: 652:18: warning: unused variable ‘r’ [-Wunused-variable] 652:7: warning: unused variable ‘k’ [-Wunused-variable] In function ‘untested_new_vectors’: 677:7: warning: unused variable ‘k’ [-Wunused-variable] In function ‘insert_constraint0’: 751:63: error: ‘new_cstr’ redeclared as different kind of symbol 748:64: note: previous definition of ‘new_cstr’ was here Cheers, Bill.