support #define hidden_nonlinear