Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.arch.embedded > #25054
| From | pozz <pozzugno@gmail.com> |
|---|---|
| Newsgroups | comp.arch.embedded |
| Subject | Optimize pow() function |
| Date | 2016-09-22 15:36 +0200 |
| Organization | A noiseless patient Spider |
| Message-ID | <ns0mo1$7j2$1@dont-email.me> (permalink) |
I have to convert voltage measure (Volt) into power (Watt). As you know, the physics says I need to square the voltage measure. I have to calibrate the mathematical law and I have two points: 0W -> 0V <nominal power> -> <voltage at nominal power> That could be enough, but we noticed a different relation between volt and watt at intermediate points. I, as the software engineer, have to try to compensate differences from the theory, without increasing complexity during calibration. My idea is to calibrate the exponent: it is normally 2.00, but I can calibrate from 1.00 to 3.00. In this way, the two old calibration points are the same as before. So the exponent (the third calibration measure) can be changed at last. The problem is pow() function with double arguments takes a lot of time to finish. Do you suggest a mathematical method to reduce its complexity? uint16_t power_nominal = 1500; // In Watt uint16_t volt_nominal; // Volt measured at nominal power signed uint8_t exp_corr = -100 to +100; double exp = 2.00 + exp_corr; uint16_t volt = adc_convert(...); // Actual volt measure double alpha = (double)power_nominal / pow((double)volt_nominal, exp); uint32_t watt = alpha * pow((double)volt, exp); alpha can be pre-calculated, because power_nominal, volt_nominal and exp are constant (after calibration). The last instruction is the problem.
Back to comp.arch.embedded | Previous | Next — Next in thread | Find similar | Unroll thread
Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-22 15:36 +0200
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-22 07:17 -0700
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-22 23:10 +0200
Re: Optimize pow() function rickman <gnuarm@gmail.com> - 2016-09-22 17:31 -0400
Re: Optimize pow() function lasselangwadtchristensen@gmail.com - 2016-09-22 14:44 -0700
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-23 09:03 +0200
Re: Optimize pow() function Paul Rubin <no.email@nospam.invalid> - 2016-09-23 00:17 -0700
Re: Optimize pow() function Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-09-23 22:45 +0300
Re: Optimize pow() function rickman <gnuarm@gmail.com> - 2016-09-22 17:44 -0400
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-23 09:08 +0200
Re: Optimize pow() function rickman <gnuarm@gmail.com> - 2016-09-24 01:54 -0400
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-22 14:50 -0700
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-23 09:23 +0200
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-23 00:32 -0700
Re: Optimize pow() function Evgeny Filatov <e.v.filatov@ieee.org> - 2016-09-23 12:56 +0300
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-23 10:41 -0700
Re: Optimize pow() function Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2016-09-23 21:07 +0200
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-23 12:12 -0700
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-22 23:12 +0200
Re: Optimize pow() function Don Y <blockedofcourse@foo.invalid> - 2016-09-22 14:58 -0700
Re: Optimize pow() function Tim Wescott <tim@seemywebsite.com> - 2016-09-22 10:01 -0500
Re: Optimize pow() function Jack <jack4747@gmail.com> - 2016-09-22 08:08 -0700
Re: Optimize pow() function Tim Wescott <seemywebsite@myfooter.really> - 2016-09-22 11:53 -0500
Re: Optimize pow() function pippo2@disney.com (Jack) - 2016-09-22 21:12 +0200
Re: Optimize pow() function lasselangwadtchristensen@gmail.com - 2016-09-22 13:12 -0700
Re: Optimize pow() function Tim Wescott <seemywebsite@myfooter.really> - 2016-09-22 15:51 -0500
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-22 23:15 +0200
Re: Optimize pow() function Tim Wescott <seemywebsite@myfooter.really> - 2016-09-22 17:52 -0500
Re: Optimize pow() function David Brown <david.brown@hesbynett.no> - 2016-09-23 09:32 +0200
Re: Optimize pow() function David Brown <david.brown@hesbynett.no> - 2016-09-23 09:28 +0200
Re: Optimize pow() function Paul Rubin <no.email@nospam.invalid> - 2016-09-23 00:47 -0700
Re: Optimize pow() function David Brown <david.brown@hesbynett.no> - 2016-09-23 11:05 +0200
Re: Optimize pow() function Tim Wescott <tim@seemywebsite.com> - 2016-09-23 11:44 -0500
Re: Optimize pow() function Jack <jack4747@gmail.com> - 2016-09-22 23:15 -0700
Re: Optimize pow() function Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2016-09-23 20:49 +0200
Re: Optimize pow() function Richard Damon <Richard@Damon-Family.org> - 2016-09-25 06:50 -0400
Re: Optimize pow() function Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-09-25 16:36 +0300
Re: Optimize pow() function Chris <xxx.syseng.yyy@gfsys.co.uk> - 2016-09-26 17:30 +0000
Re: Optimize pow() function Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-09-26 21:49 +0300
Re: Optimize pow() function pozz <pozzugno@gmail.com> - 2016-09-26 23:30 +0200
Re: Optimize pow() function Tauno Voipio <tauno.voipio@notused.fi.invalid> - 2016-09-27 18:58 +0300
Re: Optimize pow() function Robert Wessel <robertwessel2@yahoo.com> - 2016-09-26 22:44 -0500
csiph-web