Find the problem and then optimize it away!

CLOSED
Bids
10
Avg Bid (USD)
$482
Project Budget (USD)
$500 - $750

Project Description:
The open source project denoted below has a deficiency when the following types expression, parser and symbol_table are specialised to "float" type then the generated expression is evaluated.

http://code.google.com/p/exprtk

It seems that the computations are occurring as if the type was "double". This is seen on both 32-bit and 64-bit systems using a wide variety of compilers and systems.

The objective, is to take the stock exprtk_benchmark.cpp compile it and note the results for both ExprTk and native expression evaluations using the double type.

Then to recompile the benchmark using the float type, run it and note the results (Native and ExprTk), and then make any changes necessary to the file exprtk.hpp so as to improve the results seen in the benchmark.

The results seen in the benchmark are the indicators of success. The benchmark will be independently compiled with the changes and without and comparisons made, There is an expectation of demonstrable performance increase of at least 10-15% when using the float type.


The deliverable will undergo a final step of validation, using the benchmark suite denoted below (epsilon set to 1). It is expected that an increase in performance across the board for ExprTkFloat benchmark will be observed.

http://code.google.com/p/math-parser-benchmark-project



As such the outcome is very specific and unambiguous and payment will be made on any deliverable that matches ALL the criteria denoted and achieves the minimum increases as specified previously.




Constraints

01. Any changes must only contain pure C++ syntax.

02. Only the exprtk.hpp file must be changed, not other files in the project can be modified.

02. No compiler specific syntax/capabilities/functions/builtins etc are allowed.

03. Only C++03 version of the language is allowed (no C++11 or C++98)

04. Using the stock/unmodified makefile found in the project, ALL changes once applied must compile error and warning free.

05. The changes must compile as per [4] on at least 3 of the following compilers GCC4.3+,Clang3.1+,Intel9.0+,MSVC

06. For an MSVC compilation the option [4] is not possible, so a solution with W4 set will be enough.

07. The results must work successfully and consistently on at least the x86 and x86-64 platforms (other platforms welcome)

08. The results must work successfully and consistently on Linux (kernel 2.6+) and Win32 (WinXP+) and Win64

09. The stock version of exprtk_test must compile and run successfully (No errors) with the changes made to exprtk.hpp

10. No 3rd party solutions, libraries or frameworks will be allowed. Only the standard C++ libraries will allowed.

11. All changes must be yours and yours alone, all rights to those changes will be handed over exclusively without further dependencies on any other entities.



Deliverables:

01. Text file detailing each of the changes and why they were required and any other pertinent information, ALL the changes must be valid and none of them can be left unexplained.

02. In [1] there will also be a listing of the results from running the benchmark using the stock and use the patched versions of exprtk.hpp

03. A patch from the stock version of exprtk.hpp with the change as per[1] that will achieve the desired results

04. The patch must fix the underlying issue.

05. The deliverable MUST meet all the requirements set above and in the description and constraints sections.

Additional Project Description:
04/24/2013 at 23:00 EDT
Others

01. There will be no hand holding, or further explanations as the requirements are very straight forward.

02. Bidders must know C++ extremely well and must code C++ on a regular basis (daily)

03. Bidders must know C++ templates and general metaprogramming techniques well and must be able to demonstrate their abilities (a github et al sample) before anything is awarded

04. Bidders must know how to use their compiler's tool chain to compile and link the projects mentioned above, as no assistance will be provided in this area

05. Bidders must know how to debug C++ code using debuggers such as GDB or the MS debugger, as no assistance will be provided in this area

06. Bidders must be the actual bidders, and cannot be proxied by others.




**** NOTE ****

Before bidding contact me directly and give a 2 sentence brief on how you plan on solving this problem. Any bidders that do not do this will not be considered, Any bidders posting comments such as the following or similar will be rejected outright:

1. "Yes I have the skills and I can do it"
2. "I'll do it quickly"
3. "I'm the best person for this job"

Skills required:
C++ Programming, Software Architecture
About the employer:
Verified
Public Clarification Board
Bids are hidden by the project creator. Log in as the employer to view bids or to bid on this project.
You will not be able to bid on this project if you are not qualified in one of the job categories. To see your qualifications click here.


$ 749
in 15 days
$ 525
in 7 days
$ 330
in 3 days
Hire d0tnet12
$ 231
in 3 days
$ 618
in 25 days
Hire btadrian2001
$ 495
in 20 days
Hire mboudiaf19
$ 577
in 3 days
$ 721
in 17 days
$ 247
in 5 days
Hire Jegan75
$ 330
in 3 days