From 6fc742bfaf5ee508a34189400a1a7dbffe3f1cac Mon Sep 17 00:00:00 2001 From: chick Date: Fri, 14 Aug 2020 19:47:53 -0700 Subject: All of src/ formatted with scalafmt --- src/main/scala/firrtl/constraint/IsAdd.scala | 37 ++++++++++++++-------------- 1 file changed, 19 insertions(+), 18 deletions(-) (limited to 'src/main/scala/firrtl/constraint/IsAdd.scala') diff --git a/src/main/scala/firrtl/constraint/IsAdd.scala b/src/main/scala/firrtl/constraint/IsAdd.scala index e177a8b9..9305db89 100644 --- a/src/main/scala/firrtl/constraint/IsAdd.scala +++ b/src/main/scala/firrtl/constraint/IsAdd.scala @@ -1,39 +1,38 @@ // See LICENSE for license details. - package firrtl.constraint // Is case class because writing tests is easier due to equality is not object equality -case class IsAdd private (known: Option[IsKnown], - maxs: Vector[IsMax], - mins: Vector[IsMin], - others: Vector[Constraint]) extends Constraint with MultiAry { +case class IsAdd private (known: Option[IsKnown], maxs: Vector[IsMax], mins: Vector[IsMin], others: Vector[Constraint]) + extends Constraint + with MultiAry { def op(b1: IsKnown, b2: IsKnown): IsKnown = b1 + b2 lazy val children: Vector[Constraint] = { - if(known.nonEmpty) known.get +: (maxs ++ mins ++ others) else maxs ++ mins ++ others + if (known.nonEmpty) known.get +: (maxs ++ mins ++ others) else maxs ++ mins ++ others } def addChild(x: Constraint): IsAdd = x match { - case k: IsKnown => new IsAdd(merge(Some(k), known), maxs, mins, others) - case add: IsAdd => new IsAdd(merge(known, add.known), maxs ++ add.maxs, mins ++ add.mins, others ++ add.others) - case max: IsMax => new IsAdd(known, maxs :+ max, mins, others) - case min: IsMin => new IsAdd(known, maxs, mins :+ min, others) - case other => new IsAdd(known, maxs, mins, others :+ other) + case k: IsKnown => new IsAdd(merge(Some(k), known), maxs, mins, others) + case add: IsAdd => new IsAdd(merge(known, add.known), maxs ++ add.maxs, mins ++ add.mins, others ++ add.others) + case max: IsMax => new IsAdd(known, maxs :+ max, mins, others) + case min: IsMin => new IsAdd(known, maxs, mins :+ min, others) + case other => new IsAdd(known, maxs, mins, others :+ other) } override def serialize: String = "(" + children.map(_.serialize).mkString(" + ") + ")" - override def map(f: Constraint=>Constraint): Constraint = IsAdd(children.map(f)) + override def map(f: Constraint => Constraint): Constraint = IsAdd(children.map(f)) def reduce(): Constraint = { - if(children.size == 1) children.head else { + if (children.size == 1) children.head + else { (known, maxs, mins, others) match { case (Some(k), _, _, _) if k.value == 0 => new IsAdd(None, maxs, mins, others).reduce() case (Some(k), Vector(max), Vector(), Vector()) => max.map { o => IsAdd(k, o) }.reduce() case (Some(k), Vector(), Vector(min), Vector()) => min.map { o => IsAdd(k, o) }.reduce() - case _ => this + case _ => this } } } @@ -45,8 +44,10 @@ object IsAdd { case _ => apply(Seq(left, right)) } def apply(children: Seq[Constraint]): Constraint = { - children.foldLeft(new IsAdd(None, Vector(), Vector(), Vector())) { (add, c) => - add.addChild(c) - }.reduce() + children + .foldLeft(new IsAdd(None, Vector(), Vector(), Vector())) { (add, c) => + add.addChild(c) + } + .reduce() } -} \ No newline at end of file +} -- cgit v1.2.3