2013-05-06 8 views
6

私は、これはまっすぐ進むべきであると思った:和または有理数の製品(scala.Numericを取得する方法)

私は、これは暗黙のスコープに右のものを持ってくるだけの問題だと思います。しかし、私は何をインポートするのですか?

import spire.math.Numeric._ 
implicit val err = new ApproximationContext(Rational(1, 192)) 
implicit val num = RationalIsNumeric 

をしかし、それはちょうど私spire.math.Numericを与える:

私はRationalIsNumericを得るためにそれを見ることができ、私はこのような何かをしなければなりません。だから私はさらにこれを試してみてください。

import spire.math.compat._ 

しかし、運...

+0

OT:あなたは何のために尖塔を使用していますか? – Edmondo1984

+1

私はリズミカルな(音楽的)計算をしています。音楽的な持続時間は、通常、有理数として表現されるので、あなたはそれをマグルできる必要があります:)例えば、相対的な持続時間が3,2,1、合計持続時間が1/2のリズミカルなセルが与えられた場合、個々の持続時間を計算し、小さな分母につながるいくつかの伸張係数を見つけます。 –

答えて

8

すべてのことが必要なのはspire.math.compat.numeric[Rational]の証拠である:

import spire.math._ 

val seq = Vector(Rational(1, 4), Rational(3, 4)) 
implicit val num = compat.numeric[Rational] // ! 
seq.sum  // --> 1/1 
seq.product // --> 3/16 
6

また、スパイアは、独自のバージョンを提供していることは注目に値しますsumproductとし、qsumqproduct

import spire.implicits._ 
import spire.math._ 

Vector(Rational(1,3), Rational(1,2)).qsum // 5/6 

Spireは、Scalaの組み込みメソッドとの競合を避けるために、すべてのコレクションメソッドにqの接頭辞を付けます。ここでは(おそらく不完全)のリストがあります:

  • qsum
  • qproduct
  • qnorm
  • qmin
  • qmax
  • qmean
  • qsorted
  • qsortedBy
  • qsortedWith
  • qselected
  • qshuffled
  • qsampled
  • qchoose

私は少し遅れてこれに来て申し訳ありませんが、私はStackOverflowのに新たなんです。

関連する問題