2014-05-18 3 views
1

J'écris certaines fonctions en julia et je veux que les résultats soient représentés par des nombres rationnels. C'est-à-dire, si une fonction renvoie 1/2, 1/3, 13/2571 etc, je veux qu'ils soient retournés comme écrit et non convertis en flottants. Supposons que les fonctions calculent certains coefficients par un processus itératif et que les valeurs des coefficients soient montrées comme rationnelles. Comment puis-je faire ça en julia?Comment faire de l'arithmétique rationnelle en julia?

+1

Pouvez-vous être plus précis sur ce que vous voulez faire? Il existe déjà un type 'Rational' ([docs] (http://julia.readthedocs.org/en/latest/manual/complex-and-rational-numbers/#rational-numbers)), donc si vous définissez' x = 1 // 2', ça va marcher. (Ceci est décrit dans le premier google hit pour "Julia rationals", donc je suppose que vous êtes après quelque chose de plus compliqué.) – DSM

+0

Eh bien, ce que je veux que les fonctions à faire est de faire des calculs de certains coefficients dans un tel manière de retourner naturellement des nombres rationnels et non des chars. Donc interne aux fonctions je veux que l'arithmétique ne crée que des rationnels. Comment faire est ma question. – comer

+0

Donc, peut-être que je peux simplement utiliser Base.rationalize ([Type], computed_coeff) pour donner au coefficient calculé un 'cast' comme rationnel? Si c'est le cas, c'est très bien. – comer

Répondre

6

Rationals à Julia peuvent être écrites comme

1//2 

Ceux-ci travailleront avec des fonctions, y compris celles définies par l'utilisateur, comme on peut s'y attendre:

5//7*3//5 # results in 3//7 

f(x) = x^2 - 1 

f(3//4) # results in -7//16 

Il n'y a vraiment pas grand-chose à elle, mais voir aussi le manual section. S'il y a quelque chose en particulier qui ne fonctionne pas pour vous, envoyez un exemple de code et je vais jeter un coup d'oeil.

+0

Merci. Je vais aller de l'avant et voir ce qui se passe dans ma fonction de construction et de sortie. J'apprécie l'aide. – comer

Questions connexes