Hi @joaomcostab, welcome to the forum!
Last year we rewrote JuMP’s nonlinear interface, precisely to support structures like this.
See:
To update, change
register(model, :gauss_cheby_integral_f, 4, gauss_cheby_integral_f, autodiff=true)
to
@operator(model, op_gauss_cheby_integral_f, 4, gauss_cheby_integral_f)
Use op_gauss_cheby_integral_f instead of gauss_cheby_integral_f in the constraint macros, and change @NLconstraint to @constraint.
If you get stuck, post a reproducible example that we can copy and paste, and we can help fix any issues.