malyzajko / daisy

Other
42 stars 10 forks source link

install metalibm error #14

Open gitlearning-basic opened 2 years ago

gitlearning-basic commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

OK, thanks. I'll try it.

gitlearning-basic commented 2 years ago

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 commented 2 years ago

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

gitlearning-basic commented 2 years ago

OK, thanks.

gitlearning-basic commented 2 years ago

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 butW' 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 commented 2 years ago

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 commented 2 years ago

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 commented 2 years ago

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_ae5d59ffaac650fe0c3988759d7d4356splitter_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_ae5d59ffaac650fe0c3988759d7d4356splitter_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 commented 2 years ago

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"