{-# OPTIONS_GHC -Wall #-}
-----------------------------------------------------------------------------
-- |
-- Module      :  Converter.MaxSAT2NLPB
-- Copyright   :  (c) Masahiro Sakai 2013
-- License     :  BSD-style
-- 
-- Maintainer  :  masahiro.sakai@gmail.com
-- Stability   :  experimental
-- Portability :  portable
--
-----------------------------------------------------------------------------
module Converter.MaxSAT2NLPB
  ( convert
  ) where

import qualified Text.PBFile as PBFile
import qualified Text.MaxSAT as MaxSAT

convert :: MaxSAT.WCNF -> PBFile.Formula
convert
  MaxSAT.WCNF
  { MaxSAT.topCost = top
  , MaxSAT.clauses = cs
  } = (Just obj, cs2)
  where
    obj = [(w, [-l | l <- ls]) | (w,ls) <- cs, w /= top]
    cs2 = [([(1,[l]) | l <- ls], PBFile.Ge, 1) | (w,ls) <- cs, w == top]