Source: https://manuals.plus/m/901644da1016b6bc376f3ecfef1096cc9429bd33d6bacd11cd327751363597d8_optim.pdf