Julia: argument défaut de type conditionnel
Bonjour. Voilà ma fonction:
Ce code marche. Mais est-ce une bonne manière de procéder ?
function hypergeom( m::Integer, a::Vector{T}, b::Vector{T}, x::T, alpha::R=nothing ) where {R<:Real, T<:Union{R,Complex{R}}} if isnothing(alpha) alpha = R(1) end return hypergeomI(m, alpha, a, b, 1, x) endLe truc, c'est que je veux alpha=1 par défaut. Mais si R est Float64, il me faut un alpha en Float64, tandis que si R est Rational, il me faut un alpha en Rational.
Ce code marche. Mais est-ce une bonne manière de procéder ?
Réponses
-
Je ne comprends plus rien. J'ai une fonction similaire, la différence est que x est un vecteur ici:
function hypergeom( m::Integer, a::Vector{T}, b::Vector{T}, x::Vector{T}, alpha::R=nothing ) where {R<:Real, T<:Union{R,Complex{R}}} if isnothing(alpha) alpha = R(2) end .......
Et ici, ça ne marche pas quand je ne spécifie pas alpha. -
Ah non, le 1er code ne marche pas non plus. Ça marchait parce que j'avais d'abord fait
alpha::nothing
puis j'ai changé enalpha::R=nothing
Julia a gardé les deux méthodes et la 1ère marche. Donc le code qui marche est:function hypergeom( m::Integer, a::Vector{T}, b::Vector{T}, x::T, alpha=nothing ) where {R<:Real, T<:Union{R,Complex{R}}} if isnothing(alpha) alpha = R(1) end return hypergeomI(m, alpha, a, b, 1, x) end
Même question: est-ce une bonne façon de procéder ? Je vais faire plus de tests car j'ai des doutes... -
On a l'impression que les lignes Vector ne permettent pas de récupérer le type, caché à l'intérieur du tableau.
Que se passe-t-il si, dans ton code qui fonctionne, tu inverses la ligne de x et celle de b ? -
Non je ne pense pas que ce soit ça. C'est le alpha::R=nothing qui engendrait l'erreur.
Maintenant je fais alpha::Union{Nothing,R}=nothing (car le alpha=nothing n'est pas assez typé à mon goût).
Connectez-vous ou Inscrivez-vous pour répondre.
Bonjour!
Catégories
- 163.1K Toutes les catégories
- 9 Collège/Lycée
- 21.9K Algèbre
- 37.1K Analyse
- 6.2K Arithmétique
- 53 Catégories et structures
- 1K Combinatoire et Graphes
- 11 Sciences des données
- 5K Concours et Examens
- 11 CultureMath
- 47 Enseignement à distance
- 2.9K Fondements et Logique
- 10.3K Géométrie
- 62 Géométrie différentielle
- 1.1K Histoire des Mathématiques
- 68 Informatique théorique
- 3.8K LaTeX
- 39K Les-mathématiques
- 3.5K Livres, articles, revues, (...)
- 2.7K Logiciels pour les mathématiques
- 24 Mathématiques et finance
- 312 Mathématiques et Physique
- 4.9K Mathématiques et Société
- 3.3K Pédagogie, enseignement, orientation
- 10K Probabilités, théorie de la mesure
- 773 Shtam
- 4.2K Statistiques
- 3.7K Topologie
- 1.4K Vie du Forum et de ses membres