There are methods and packages handling NCVX problems in restricted settings:
PyTorch [1]} and TensorFlow [2]} can solve large-scale NCVX, NSMT problems without constraints. CSTR problems can be heuristically turned into penalty forms and solved as unconstrained,
but this may not produce feasible solutions for the original problems. When the constraints are simple, structured methods such as projected (sub)gradient and Frank-Wolfe [3]} can be used. When the constraints are differentiable manifolds, one can consider manifold optimization methods and packages, e.g., (Py)manopt [4]}, [5]}, Geomstats [6]}, McTorch [7]}, and Geoopt [8]}. For general CSTR problems, KNITRO [9]} and IPOPT [10]} implement interior-point methods, while ensmallen [11]} and GENO [12]} rely on augmented Lagrangian methods. However,
moving beyond smooth (SMT) constraints, both of these families of methods, at best,
handle only special types of NSMT constraints. Finally, packages specialized for machine learning, e.g., scikit-learn [13]}, MLib [14]} and Weka [15]}, often use problem-specific solvers that cannot be easily extended to new formulations.
