Procedure from library spcurve.lib (see spcurve_lib).
spcurve.lib
N is a non-zero matrix W is an integer matrix of the same size as N a is an integer vector giving the weights of the variables
integer, max(a-weighted order(N_ij) - W_ij | all entries ij) string "ERROR" if sizes do not match
Example:
LIB "spcurve.lib"; ring r=32003,(x,y,z),ds; matrix N[2][3]=z,0,y,x,x^3,y; intmat W[2][3]=1,1,1,1,1,1; intvec a=1,1,1; relweight(N,W,a); → 2