Skip to content

Commit d154514

Browse files
committed
Restore SignAction
1 parent 508aedf commit d154514

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

core/src/main/scala/spire/algebra/Action.scala

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,3 +100,15 @@ trait MultiplicativeAction[@sp(Int) P, G] extends Any { self =>
100100
def gtimesl(g: G, p: P): P
101101
def gtimesr(p: P, g: G): P
102102
}
103+
104+
object MultiplicativeAction {
105+
implicit def SignAction[A](implicit A: AdditiveGroup[A]): MultiplicativeAction[A, Sign] =
106+
new MultiplicativeAction[A, Sign] {
107+
def gtimesl(s: Sign, a: A): A = s match {
108+
case Signed.Positive => a
109+
case Signed.Negative => A.negate(a)
110+
case Signed.Zero => A.zero
111+
}
112+
def gtimesr(a: A, s: Sign): A = gtimesl(s, a)
113+
}
114+
}

0 commit comments

Comments
 (0)