I think we can share some approximation logic by introducing abstract types like SeparableMethod, DisaggregationMethod (if that seems correct for NMDT), SegmentsSomething for sawtooth/SOS2. This would make adding more methods easier, but I don't know if we plan on adding more methods or even keeping all the methods we're using now.
I think we could also make Epigraph more like the other configurations by not having it build a whole series of epigraph cuts, which would allow the separable methods to use it, and then we can introduce a unique helper that builds a series of epigraph cuts, which I think makes more sense because right now Epigraph sorta sits outside the API I feel.
I think we can share some approximation logic by introducing abstract types like
SeparableMethod,DisaggregationMethod(if that seems correct for NMDT),SegmentsSomethingfor sawtooth/SOS2. This would make adding more methods easier, but I don't know if we plan on adding more methods or even keeping all the methods we're using now.I think we could also make
Epigraphmore like the other configurations by not having it build a whole series of epigraph cuts, which would allow the separable methods to use it, and then we can introduce a unique helper that builds a series of epigraph cuts, which I think makes more sense because right now Epigraph sorta sits outside the API I feel.