You're not going to get good runtimes with this if you're using Rationals. 
Each time a command is done, it needs to reduce the fraction. If you're 
working with small examples like you show here, then yes this can be 
worthwhile. However, even with good programming I don't think would scale 
to something like 1000x1000 systems.

That said, this OverflowError() is may be because you're overflowing the 
integers? Try switching to Rational{BigInt} and see if you still get this 
error. This will decrease the performance even more though.

I know that being Mathematician the prospect of getting an exact answer 
sounds nice, but there's a reason why it's not done very often. It's can 
become orders of magnitude more computationally intensive than even precise 
approximations. If you need something which is really precise, try 
BigFloats or Decimals.jl.

On Friday, July 15, 2016 at 11:50:01 AM UTC-7, Kurolong wrote:
>
> Hey Guys and Gals  ^^
> I'm having trouble with Julia. Maybe one of you can help me out
> The program i am writing requires the 
> linear-equation-system-solver(command "\") in the folder 
> "Julia-0.4.5\share\julia\base\linalg". 
> Now my problem is that i need the equation solved strictly on integers, an 
> approximate solution is of no use to me, which is why i tried working with 
> the "Rational" Type. 
> Curiously, the solver seems to work for the Rational Type if and only if 
> no pivoting is required. Otherwise, the following Error is thrown:
>
> WARNING: pivoting only implemented for Float32, Float64, Complex64 and 
> Complex128
> ERROR: LoadError: OverflowError()
>  in * at rational.jl:188
>  [inlined code] from linalg/generic.jl:471
>  in reflector! at no file:0
>  in A_ldiv_B! at linalg/qr.jl:346
>  in \ at linalg/qr.jl:398
>  in \ at linalg/dense.jl:450
>  in include at boot.jl:261
>  in include_from_node1 at loading.jl:320
> while loading C:\users\<username 
> omitted>\documents\julia-0.4.5\sg_project\v0.3\Test02.jl, in expression 
> starting on line 3
>
> Code to reproduce the Error:
>
> A=[[2//1,0//1] [3//1,3//2] [1//1,3//2]]
> v=[2//1,0//1]
> A\v
>
> Now i am under the impression that i could build a relatively simple 
> workaround if i knew exactly where in the developer's code the actual 
> problem is, but i am confused by the whole organization of the thing. 
> Building my own solver could certainly be done, but this will most likely 
> be ineffecient. Unfortunately, runtime is very important here, as the 
> method i am currently devising is supposed to be embedded in some very 
> expensive loops.
>
> I am a very unexperienced programmer and will likely not understand much 
> programmertalk, but i am a mathematician and will probably have little 
> problems in this respect.
>
> Maybe you have some ideas how to handle this problem.
>
> Thank you in advance for taking the time to look at my problem :)
>

Reply via email to