Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

install metalibm error #14

Open
gitlearning-basic opened this issue May 8, 2022 · 17 comments
Open

install metalibm error #14

gitlearning-basic opened this issue May 8, 2022 · 17 comments

Comments

@gitlearning-basic
Copy link

gitlearning-basic commented May 8, 2022

hello, I want to use the code of branch "approx" and I install all the environment.
But when I use command run --approx --apfixed --lang=C --precision=Float64 --functions=axisRotationX testcases/approx/Benchmarks_large.scala --no-refinement, an error occurred.

[info] Running daisy.Main --approx --apfixed --lang=C --precision=Float64 --functions=axisRotationX testcases/approx/Benchmarks_large.scala --no-refinement
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scalac Extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting Three-address form transformer phase
[info] [ Info ]
[info] [ Info ] Starting Constant transformer phase
[info] [ Info ]
[info] [ Info ] Starting Dataflow Error phase
[info] [ Info ] using interval for ranges, affine for errors
[info] [ Info ] analyzing fnc: axisRotationX
[info] [ Info ] error analysis for uniform Float64 precision
[info] [ Info ]
[info] [ Info ] Starting Approximation Generation phase
[info] [ Info ] approximating fnc: axisRotationX subexpression cos(theta)
[info] [ Info ] Function call cos(theta). Assigned precision Double
[info] [ Info ] Assigned approximation error budget 5.551115123125783e-17, roundoff error budget 5.551115123125783e-17
[info] [ Info ] Something really bad happened. Cannot continue.
[info] [ Info ] time:
[info] [ Info ] approximation: -1652015965978 ms, analysis: 175 ms, const-trans: 4 ms, tac: 4 ms, specs: 12 ms, frontend: 4003 ms, total: 4324 ms
[success] Total time: 5 s, completed 2022-5-8 21:19:26

run testcases/transcendentals/TransBenchsErrorBoundsLarge.scala --functions=sinxx10 --metalibm --codegen --lang=C
[info] Running daisy.Main testcases/transcendentals/TransBenchsErrorBoundsLarge.scala --functions=sinxx10 --metalibm --codegen --lang=C
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scalac Extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting Expression decomposition for Metalibm phase
[info] [ Info ]
[info] [ Info ] Starting Dataflow Error phase
[info] [ Info ] using interval for ranges, affine for errors
[info] [ Info ] analyzing fnc: sinxx10
[info] [ Info ] error analysis for uniform Float64 precision
[info] [ Info ]
[info] [ Info ] Starting Metalibm phase
[info] [ Info ]
[info] [ Info ] *** sinxx10 ***
[info] [ Info ]
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Fatal ] No approximation was generated from Metalibm! Aborting.
[info] [ Info ] Something really bad happened. Cannot continue.
[info] [ Info ] time:
[info] [ Info ] metalibm: -1652019984608 ms, analysis: 478 ms, decomposition: 48 ms, specs: 16 ms, frontend: 4642 ms, total: 5419 ms

I have install metalibm.

root@xxx-computer:~/daisy# source scripts/approx/metalibm_install.sh
Metalibm is already installed. Do you want to install it again? (y/n)
y
Installing Metalibm on linux...
//root/daisy
Trying to build Metalibm...
make: 对“all”无需做任何事。
Integrating Metalibm with Daisy ...

  • run outside of home directory
  • define path for output files - dir Metalibm is executed from
  • disable recompilation and plotting
  • add necessary output info
  • disable argument reduction
  • make implementation name shorter
    Logout and login or reboot for changes to be applied

How can I know the specific error?

@malyzajko
Copy link
Owner

malyzajko commented May 10, 2022

Hi!
When Daisy says "Something bad happened", it means an exception was thrown that is hidden from the user. If you want to see it, you can comment out lines 189-192 in Main.scala, so that the exception won't be caught.

The options that we used for our experiments are in the https://github.com/malyzajko/daisy/blob/approx/scripts/approx/ folder, e.g. the rundaisy.sh script will just run Daisy. The scripts synthesis_*.sh will run our entire experiments, including evaluation/compilation of the generated files with Xilinx, but you could comment out that part, or have a look at the options that we used.

In your second run, it did run Metalibm, but this is different code and approach than what was in our ATVA'19 paper. If you want to use the --metalibm flag (from our CAV'19), I think master is probably better, as that code was updated later.

@gitlearning-basic
Copy link
Author

Thank you for your detailed reply. I am now trying to run the code of the main branch. The use of metalibm has bothered me for several days, It would be better if you could provide a Linux image file with the environment installed.

@malyzajko
Copy link
Owner

I unfortunately do not have such a Linux image, nor a Linux machine right now. If it is easier, feel free to contact me via email (eva@mpi-sws.org) to try to debug the issues.

@gitlearning-basic
Copy link
Author

OK,Thank you very much. In the branch of approx, the readme file in Scripts/approx folder mention that "The scripts were successfully run in the Ubuntu 18.1 virtual machine", maybe the author of ATVA'19 paper can offer Linux image(about VMware or VisualBox) about the work which is exactly what I want.

@malyzajko
Copy link
Owner

All we can do is follow exactly the instructions in the artifact evaluation README file: https://github.com/malyzajko/daisy/tree/approx/scripts/approx/README.md, using the VM from Zenodo. Did you try this, and did this fail at some point?

@gitlearning-basic
Copy link
Author

Thank you for trying to solve the problem. I've tried, and the reason for the failure is similar to that described at the beginning of the issue.
Metalibm couldn't compute the approximation.

run testcases/transcendentals/TransBenchsErrorBoundsLarge.scala --functions=sinxx10 --metalibm --codegen --lang=C
[info] Running daisy.Main testcases/transcendentals/TransBenchsErrorBoundsLarge.scala --functions=sinxx10 --metalibm --codegen --lang=C
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scalac Extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting Expression decomposition for Metalibm phase
[info] [ Info ]
[info] [ Info ] Starting Dataflow Error phase
[info] [ Info ] using interval for ranges, affine for errors
[info] [ Info ] analyzing fnc: sinxx10
[info] [ Info ] error analysis for uniform Float64 precision
[info] [ Info ]
[info] [ Info ] Starting Metalibm phase
[info] [ Info ]
[info] [ Info ] *** sinxx10 ***
[info] [ Info ]
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Info ] Try to approximate sin(x) in [-3.0, 3.0]:
[info] total: 3.3324814221991045e-10, localError: 1.4002022782349177e-12
[info] [Warning ] Metalibm couldn't compute the approximation.
[info] [ Info ] approximation for degree: 12 timed out
[info] [ Info ] best approximation found for degree: 24, timing: 0.0
[info] [ Fatal ] No approximation was generated from Metalibm! Aborting.
[info] [ Info ] Something really bad happened. Cannot continue.
[info] [ Info ] time:
[info] [ Info ] metalibm: -1652019984608 ms, analysis: 478 ms, decomposition: 48 ms, specs: 16 ms, frontend: 4642 ms, total: 5419 ms

@malyzajko
Copy link
Owner

That is not an installation issue then. You are not running the code from the ATVA'19 paper with the command you are using (the --metalibm command is running the code from our CAV'19 paper on floating-point approximations, both use Metalibm).

If you want to run the ATVA code, which is the one the approx branch is meant for, you need to run e.g.:
run testcases/approx/Benchmarks_large.scala --rangeMethod=interval --errorMethod=affine --approx --apfixed --lang=C --precision=Fixed64 --cost=combined --choosePrecision=fixed --functions=sinxx10

Note, you need to use --approx flag. Also note the different benchmark file that was used for the ATVA experiments. Please see this folder for the full scripts that were used for the experiments in the ATVA paper: https://github.com/malyzajko/daisy/tree/approx/scripts/approx (There is also a README file that was used for artifact evaluation.)

@malyzajko
Copy link
Owner

malyzajko commented May 10, 2022

However, one thing that may have happened, is that for our CAV'19 and ATVA'19 papers, we use two different (modified) versions of Metalibm. Hence, if you installed the version for the --metalibm flag, then it will likely not work with the --approx flag.
The installation instructions here (https://github.com/malyzajko/daisy/blob/approx/scripts/approx/README.md) need to be used.

@gitlearning-basic
Copy link
Author

OK, thanks. I'll try it.

@gitlearning-basic
Copy link
Author

I run the code of ATVA'19 paper, the error is as follows. How can I know the specific error.

run testcases/approx/Benchmarks_large.scala --approx --apfixed --lang=C --cost=combined --functions=sinxx10
[info] Running daisy.Main testcases/approx/Benchmarks_large.scala --approx --apfixed --lang=C --cost=combined --functions=sinxx10
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scalac Extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting Three-address form transformer phase
[info] [ Info ]
[info] [ Info ] Starting Constant transformer phase
[info] [ Info ]
[info] [ Info ] Starting Dataflow Error phase
[info] [ Info ] using interval for ranges, affine for errors
[info] [ Info ] analyzing fnc: sinxx10
[info] [ Info ] error analysis for uniform Float64 precision
[info] [ Info ]
[info] [ Info ] Starting Approximation Generation phase
[info] [ Info ] approximating fnc: sinxx10 subexpression sin(x)
[info] [ Info ] Function call sin(x). Assigned precision Double
[info] [ Info ] Assigned approximation error budget 5.551115123125783e-17, roundoff error budget 5.551115123125783e-17
[info] [ Info ] Something really bad happened. Cannot continue.
[info] [ Info ] time:
[info] [ Info ] approximation: -1652194197580 ms, analysis: 289 ms, const-trans: 2 ms, tac: 3 ms, specs: 10 ms, frontend: 3845 ms, total: 4260 ms

@malyzajko
Copy link
Owner

Comment out the lines 189-192 in Main.scala, then you will see the specific error.

@gitlearning-basic
Copy link
Author

OK, thanks.

@gitlearning-basic
Copy link
Author

I have successfully run the code of the main branch.
Thank you very much for your help, I appreciate it.
The error of the approx branch is as follows:I don't care about it now, ha ha ha.

run testcases/approx/Benchmarks_large.scala --approx --codegen --lang=C --functions=sinxx10
[info] Running daisy.Main testcases/approx/Benchmarks_large.scala --approx --codegen --lang=C --functions=sinxx10
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scalac Extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting Three-address form transformer phase
[info] [ Info ]
[info] [ Info ] Starting Constant transformer phase
[info] [ Info ]
[info] [ Info ] Starting Dataflow Error phase
[info] [ Info ] using interval for ranges, affine for errors
[info] [ Info ] analyzing fnc: sinxx10
[info] [ Info ] error analysis for uniform Float64 precision
[info] [ Info ]
[info] [ Info ] Starting Approximation Generation phase
[info] [ Info ] approximating fnc: sinxx10 subexpression sin(x)
[info] [ Info ] Function call sin(x). Assigned precision Double
[info] [ Info ] Assigned approximation error budget 5.551115123125783e-17, roundoff error budget 5.551115123125783e-17
[error] Exception in thread "main" java.lang.Exception: Failed to parse metalibm output: string matching regex [\s\S]*The implementation can be found in file: ' expected but W' found
[error] at daisy.tools.MetalibmUtils$Extractor$.getApproxFilename(MetalibmUtils.scala:24)
[error] at daisy.opt.ApproxPhase$.callMetalibm(ApproxPhase.scala:447)
[error] at daisy.opt.ApproxPhase$.feedbackLoop$1(ApproxPhase.scala:247)
[error] at daisy.opt.ApproxPhase$.transformElementaryFunction$1(ApproxPhase.scala:349)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:187)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:153)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.daisy$opt$ApproxPhase$$find$1(ApproxPhase.scala:154)
[error] at daisy.opt.ApproxPhase$.findReplace(ApproxPhase.scala:352)
[error] at daisy.opt.ApproxPhase$$anonfun$1.apply(ApproxPhase.scala:67)
[error] at daisy.opt.ApproxPhase$$anonfun$1.apply(ApproxPhase.scala:55)
[error] at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[error] at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234)
[error] at scala.collection.immutable.List.foreach(List.scala:392)
[error] at scala.collection.TraversableLike$class.map(TraversableLike.scala:234)
[error] at scala.collection.immutable.List.map(List.scala:296)
[error] at daisy.opt.ApproxPhase$.runPhase(ApproxPhase.scala:55)
[error] at daisy.DaisyPhase$class.run(DaisyPhase.scala:28)
[error] at daisy.opt.ApproxPhase$.run(ApproxPhase.scala:31)
[error] at daisy.opt.ApproxPhase$.run(ApproxPhase.scala:31)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:13)
[error] at daisy.Main$.interfaceMain(Main.scala:175)
[error] at daisy.Main$.main(Main.scala:204)
[error] at daisy.Main.main(Main.scala)
java.lang.RuntimeException: Nonzero exit code returned from runner: 1
at scala.sys.package$.error(package.scala:27)
[trace] Stack trace suppressed: run last compile:run for the full output.
[error] (compile:run) Nonzero exit code returned from runner: 1
[error] Total time: 7 s, completed 2022-5-10 23:40:56

root@xxx-computer:~/daisy/metalibm# ./metalibm.sollya problemdefForDaisy_1652194078.sollya
Warning (98): the file "///root/daisy/metalibmconfig.sollya" could not be opened for reading.
This command will have no effect.
Warning (98): the file "///root/daisy/metalibmimplement.sollya" could not be opened for reading.
This command will have no effect.
Warning (112): the identifier "v" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "v" as "x".
Warning (112): the identifier "implementationFile" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "implementationFile" as "x".
Warning (112): the identifier "getUniqueToken" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "getUniqueToken" as "x".
Warning (112): the identifier "getUniqueToken" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "getUniqueToken" as "x".
Warning (128): at least one of the given expressions or a subexpression is not correctly typed
or its evaluation has failed because of some error on a side-effect.
Warning (112): the identifier "getUniqueToken" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "getUniqueToken" as "x".
Warning (112): the identifier "getUniqueToken" is neither assigned to, nor bound to a library function nor external procedure, nor equal to the current free variable.
Will interpret "getUniqueToken" as "x".
Warning (128): at least one of the given expressions or a subexpression is not correctly typed

@malyzajko
Copy link
Owner

I suspect this error is because you have the main-branch version of Metalibm installed, and not the one needed for the approx branch - Daisy cannot parse the output produced from Metalibm, which is the part (among others) that we modified for the ATVA paper.

@gitlearning-basic
Copy link
Author

Before installing Daisy, I already installed metalibm in Linux, so the problem may be here.I really very much appreciate your guidance and help.

@hiahiawei
Copy link

Hello,I have successfully run the code of the main branch.
Now I want to use float16 or float32 or float64 variables to perform mixed precision optimization on the expressions in the file testcases/approx/Benchmarks_large.scala, and the optimization of elementary functions is also needed. What command should I use.
I don't want to use fixed-point precision optimization, just change the variable type to float16 or float32 or float64.

sbt:Daisy> run testcases/approx/Benchmarks_large.scala --approx --apfixed --lang=C --mixed-tuning --functions=rodriguesRotation
[info] running (fork) daisy.Main testcases/approx/Benchmarks_large.scala --approx --apfixed --lang=C --mixed-tuning --functions=rodriguesRotation
[info] [ Info ]
[info] [ Info ] ************ Starting Daisy ************
[info] [ Info ]
[info] [ Info ] Starting Scala extraction phase
[info] [ Info ]
[info] [ Info ] Starting Specs processing phase
[info] [ Info ]
[info] [ Info ] Starting TAC transformer phase
[info] [ Info ]
[info] [ Info ] Starting Constant transformer phase
[info] [ Info ]
[info] [ Info ] Starting Range phase
[info] [ Info ]
[info] [ Info ] Starting mixed-precision optimization phase
[info] [ Info ] Optimisation method: delta
[info] [ Info ] Analyzing path: List()
[info] [ Info ] No mixed-precision optimization needed for rodriguesRotation - lowest (Float32) is sufficient
[info] [ Info ]
[info] [ Info ] Starting Approximation Generation phase
[info] [ Info ] approximating fnc: rodriguesRotation subexpression cosf(theta)
[info] [ Info ] Function call cosf(theta). Assigned precision Float
[info] [ Info ] Assigned approximation error budget 5.9604644775390625e-08, roundoff error budget 5.9604644775390625e-08
[info] [ Info ]
[info] [ Info ] Starting TAC transformer phase
[info] [ Info ]
[info] [ Info ] Starting Constant transformer phase
[info] [ Info ]
[info] [ Info ] Starting Range phase
[info] [ Info ]
[info] [ Info ] Starting mixed-precision optimization phase
[info] [ Info ] Optimisation method: delta
[info] [ Info ] Analyzing path: List((xh < f_approx_4_1657441851_ae5d59ffaac650fe0c3988759d7d4356__splitter_splitpoint))
[info] [ Info ] Optimizing mixed-precision for cos_0_0to1_5_err5_9604644775390625em08...
[info] [ Info ] Lowest possible uniform precision: Float64
[info] [ Info ] initial Cost: 23.0842 - final cost: 23.0842
[info] [ Info ] number of valid type configs: ---- 6, out of 28 unique configs seen
[info] [ Info ] Analyzing path: List((xh ≥ f_approx_4_1657441851_ae5d59ffaac650fe0c3988759d7d4356__splitter_splitpoint))
[info] [ Info ] Optimizing mixed-precision for cos_0_0to1_5_err5_9604644775390625em08...
[info] [ Info ] Lowest possible uniform precision: Float64
[info] [ Info ] initial Cost: 19.8742 - final cost: 19.8742
[info] [ Info ] number of valid type configs: ---- 8, out of 16 unique configs seen
[info] [ Info ]
[info] [ Info ] Starting Roundoff phase
[error] Exception in thread "main" java.lang.Exception: Not supported
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:502)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.$anonfun$evalRoundoff$5(RoundoffEvaluators.scala:469)
[error] at daisy.utils.CachingMap.getOrAdd(CachingMap.scala:8)
[error] at daisy.tools.RoundoffEvaluators.eval$1(RoundoffEvaluators.scala:179)
[error] at daisy.tools.RoundoffEvaluators.evalRoundoff(RoundoffEvaluators.scala:534)
[error] at daisy.tools.RoundoffEvaluators.evalRoundoff$(RoundoffEvaluators.scala:140)
[error] at daisy.analysis.AbsErrorPhase$.evalRoundoff(AbsErrorPhase.scala:29)
[error] at daisy.analysis.AbsErrorPhase$.computeRoundoffError(AbsErrorPhase.scala:81)
[error] at daisy.analysis.AbsErrorPhase$.$anonfun$runPhase$2(AbsErrorPhase.scala:43)
[error] at scala.collection.immutable.List.map(List.scala:246)
[error] at scala.collection.immutable.List.map(List.scala:79)
[error] at daisy.analysis.AbsErrorPhase$.runPhase(AbsErrorPhase.scala:43)
[error] at daisy.DaisyPhase.run(DaisyPhase.scala:28)
[error] at daisy.DaisyPhase.run$(DaisyPhase.scala:24)
[error] at daisy.analysis.AbsErrorPhase$.run(AbsErrorPhase.scala:29)
[error] at daisy.analysis.AbsErrorPhase$.run(AbsErrorPhase.scala:29)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:13)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:13)
[error] at daisy.opt.ApproxPhase$.feedbackLoop$1(ApproxPhase.scala:294)
[error] at daisy.opt.ApproxPhase$.transformElementaryFunction$1(ApproxPhase.scala:356)
[error] at daisy.opt.ApproxPhase$.find$1(ApproxPhase.scala:194)
[error] at daisy.opt.ApproxPhase$.find$1(ApproxPhase.scala:160)
[error] at daisy.opt.ApproxPhase$.find$1(ApproxPhase.scala:161)
[error] at daisy.opt.ApproxPhase$.findReplace(ApproxPhase.scala:359)
[error] at daisy.opt.ApproxPhase$.$anonfun$runPhase$1(ApproxPhase.scala:67)
[error] at scala.collection.immutable.List.map(List.scala:246)
[error] at scala.collection.immutable.List.map(List.scala:79)
[error] at daisy.opt.ApproxPhase$.runPhase(ApproxPhase.scala:55)
[error] at daisy.DaisyPhase.run(DaisyPhase.scala:28)
[error] at daisy.DaisyPhase.run$(DaisyPhase.scala:24)
[error] at daisy.opt.ApproxPhase$.run(ApproxPhase.scala:28)
[error] at daisy.opt.ApproxPhase$.run(ApproxPhase.scala:28)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:11)
[error] at daisy.Pipeline$$anon$1.run(Pipeline.scala:13)
[error] at daisy.Main$.interfaceMain(Main.scala:167)
[error] at daisy.Main$.main(Main.scala:195)
[error] at daisy.Main.main(Main.scala)
[error] Nonzero exit code returned from runner: 1
[error] (Compile / run) Nonzero exit code returned from runner: 1
[error] Total time: 15 s, completed 2022-7-10 16:30:57
sbt:Daisy>

@malyzajko
Copy link
Owner

Hi!
The --approx flag only works with fixed-point arithmetic (as does --apfixed).
If you want to approximate elementary functions, and do mixed-precision tuning, the flags that you are looking for are: "--metalibm --mixed-tuning --lang=C"

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants