{"id":26437,"date":"2022-12-17T19:29:34","date_gmt":"2022-12-17T13:59:34","guid":{"rendered":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/"},"modified":"2022-12-17T19:29:34","modified_gmt":"2022-12-17T13:59:34","slug":"solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result","status":"publish","type":"post","link":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/","title":{"rendered":"[Solved] Why does my own power function, when used for calculating roots returns wrong result?"},"content":{"rendered":"<p> [ad_1]<br \/>\n<\/p>\n<div id=\"answer-35484780\" class=\"answer js-answer accepted-answer js-accepted-answer\" data-answerid=\"35484780\" data-parentid=\"35484467\" data-score=\"1\" data-position-on-page=\"1\" data-highest-scored=\"1\" data-question-has-accepted-highest-score=\"1\" itemprop=\"acceptedAnswer\" itemscope itemtype=\"https:\/\/schema.org\/Answer\">\n<div class=\"post-layout\">\n<div class=\"votecell post-layout--left\"><\/div>\n<div class=\"answercell post-layout--right\">\n<div class=\"s-prose js-post-body\" itemprop=\"text\">\n<p>Your function didn&#8217;t work because its implementation uses a method that&#8217;s typically used for explaining powers intuitively (&#8220;take the number 1 and multiply it <code>exponent<\/code> times by the <code>base<\/code>&#8220;). However, that method is only applicable for natural numbers. <strong>It is not the actual mathematical definition for powers with arbitrary exponents.<\/strong><\/p>\n<p>If you want to have a function that works for other number spaces, you need to <a rel=\"nofollow noopener\" target=\"_blank\" href=\"https:\/\/math.stackexchange.com\/questions\/280901\/calculating-powers\">find <em>a numerical method<\/em> that&#8217;s applicable for those those as well<\/a>. Typically, those involve calculating a particular series. <\/p>\n<p>First, you need to define a function that handles these:<\/p>\n<ol>\n<li>Power for exponents that are positive integers. (This is what you have achieved.)<\/li>\n<li>Power for exponents that are negative integers. (You could use inversion, <code>abs<\/code> and your previous step for this.)<\/li>\n<li>Power for exponent equal to zero. (Luckily, this is just a constant for most cases.)<\/li>\n<\/ol>\n<p>You will also need an already-implemented <code>ln(double x)<\/code> (or you can implement it by summing a particular series that will involve your integer power function) and a <code>factorial(int n)<\/code> function (it&#8217;s easy to write this, even intuitively).<\/p>\n<p>Then, you can write a function that takes any real <code>base<\/code>, and any real <code>exponent<\/code> and an integer <code>n<\/code> and do these:<\/p>\n<ol>\n<li>Calculate <code>exponent * ln(base)<\/code>. <\/li>\n<li>Use your integer power function to calculate the <code>n<\/code>-th power of that result.<\/li>\n<li>Divide that result by <code>factorial(n)<\/code>.<\/li>\n<\/ol>\n<p>Wrap this in a loop that sums the results of this calculation for all values of <code>n<\/code> from 0 up until the highest that can be handled validly and efficiently (the higher the maximum <code>n<\/code>, the better the approximation). That sum is the mathematical result you&#8217;re looking for. Therefore, a function that takes <code>base<\/code> and <code>exponent<\/code> as parameters and runs the aforementioned loop for a series of values of <code>n<\/code> is your actual final <code>pow<\/code> function that you can expose to external code.<\/p>\n<p>Alternatively, it wouldn&#8217;t hurt to just look at <a rel=\"nofollow noopener\" target=\"_blank\" href=\"http:\/\/opensource.apple.com\/source\/Libm\/Libm-315\/Source\/ARM\/powf.c\">real-world implementations<\/a> and see what methods they&#8217;ve used. Such implementations are often different from the most obvious mathematical ones, because they can be more efficient for computers (often directly taking into account the binary representations of the numbers involved) and also take special care to avoid things like overflows and underflows of the various data types involved.<\/p>\n<\/p><\/div>\n<div class=\"mt24\"><\/div>\n<\/div>\n<p>            <span class=\"d-none\" itemprop=\"commentCount\"><\/span> <\/p><\/div>\n<\/div>\n<p>[ad_2]<\/p>\n<p>solved Why does my own power function, when used for calculating roots returns wrong result? <\/p>\n","protected":false},"excerpt":{"rendered":"<p>[ad_1] Your function didn&#8217;t work because its implementation uses a method that&#8217;s typically used for explaining powers intuitively (&#8220;take the number 1 and multiply it exponent times by the base&#8220;). However, that method is only applicable for natural numbers. It is not the actual mathematical definition for powers with arbitrary exponents. If you want to &#8230; <a title=\"[Solved] Why does my own power function, when used for calculating roots returns wrong result?\" class=\"read-more\" href=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\" aria-label=\"More on [Solved] Why does my own power function, when used for calculating roots returns wrong result?\">Read more<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[320],"tags":[324,5364,484],"class_list":["post-26437","post","type-post","status-publish","format-standard","hentry","category-solved","tag-c","tag-pow","tag-root"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb\" \/>\n<meta property=\"og:description\" content=\"[ad_1] Your function didn&#8217;t work because its implementation uses a method that&#8217;s typically used for explaining powers intuitively (&#8220;take the number 1 and multiply it exponent times by the base&#8220;). However, that method is only applicable for natural numbers. It is not the actual mathematical definition for powers with arbitrary exponents. If you want to ... Read more\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\" \/>\n<meta property=\"og:site_name\" content=\"JassWeb\" \/>\n<meta property=\"article:published_time\" content=\"2022-12-17T13:59:34+00:00\" \/>\n<meta name=\"author\" content=\"Kirat\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Kirat\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\"},\"author\":{\"name\":\"Kirat\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\"},\"headline\":\"[Solved] Why does my own power function, when used for calculating roots returns wrong result?\",\"datePublished\":\"2022-12-17T13:59:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\"},\"wordCount\":386,\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"keywords\":[\"c++\",\"pow\",\"root\"],\"articleSection\":[\"Solved\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\",\"url\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\",\"name\":\"[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb\",\"isPartOf\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#website\"},\"datePublished\":\"2022-12-17T13:59:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/jassweb.com\/solved\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"[Solved] Why does my own power function, when used for calculating roots returns wrong result?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/jassweb.com\/solved\/#website\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"name\":\"JassWeb\",\"description\":\"Build High-quality Websites\",\"publisher\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/jassweb.com\/solved\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/jassweb.com\/solved\/#organization\",\"name\":\"Jass Web\",\"url\":\"https:\/\/jassweb.com\/solved\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"contentUrl\":\"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png\",\"width\":693,\"height\":132,\"caption\":\"Jass Web\"},\"image\":{\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31\",\"name\":\"Kirat\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"contentUrl\":\"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939\",\"caption\":\"Kirat\"},\"sameAs\":[\"http:\/\/jassweb.com\"],\"url\":\"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/","og_locale":"en_US","og_type":"article","og_title":"[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb","og_description":"[ad_1] Your function didn&#8217;t work because its implementation uses a method that&#8217;s typically used for explaining powers intuitively (&#8220;take the number 1 and multiply it exponent times by the base&#8220;). However, that method is only applicable for natural numbers. It is not the actual mathematical definition for powers with arbitrary exponents. If you want to ... Read more","og_url":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/","og_site_name":"JassWeb","article_published_time":"2022-12-17T13:59:34+00:00","author":"Kirat","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Kirat","Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#article","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/"},"author":{"name":"Kirat","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31"},"headline":"[Solved] Why does my own power function, when used for calculating roots returns wrong result?","datePublished":"2022-12-17T13:59:34+00:00","mainEntityOfPage":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/"},"wordCount":386,"publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"keywords":["c++","pow","root"],"articleSection":["Solved"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/","url":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/","name":"[Solved] Why does my own power function, when used for calculating roots returns wrong result? - JassWeb","isPartOf":{"@id":"https:\/\/jassweb.com\/solved\/#website"},"datePublished":"2022-12-17T13:59:34+00:00","breadcrumb":{"@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/jassweb.com\/solved\/solved-why-does-my-own-power-function-when-used-for-calculating-roots-returns-wrong-result\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/jassweb.com\/solved\/"},{"@type":"ListItem","position":2,"name":"[Solved] Why does my own power function, when used for calculating roots returns wrong result?"}]},{"@type":"WebSite","@id":"https:\/\/jassweb.com\/solved\/#website","url":"https:\/\/jassweb.com\/solved\/","name":"JassWeb","description":"Build High-quality Websites","publisher":{"@id":"https:\/\/jassweb.com\/solved\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jassweb.com\/solved\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/jassweb.com\/solved\/#organization","name":"Jass Web","url":"https:\/\/jassweb.com\/solved\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/","url":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","contentUrl":"https:\/\/jassweb.com\/wp-content\/uploads\/2021\/02\/jass-website-logo-1.png","width":693,"height":132,"caption":"Jass Web"},"image":{"@id":"https:\/\/jassweb.com\/solved\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/65c9c7b7958150c0dc8371fa35dd7c31","name":"Kirat","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jassweb.com\/solved\/#\/schema\/person\/image\/","url":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","contentUrl":"https:\/\/jassweb.com\/solved\/wp-content\/litespeed\/avatar\/1261af3c9451399fa1336d28b98ea3bb.jpg?ver=1775193939","caption":"Kirat"},"sameAs":["http:\/\/jassweb.com"],"url":"https:\/\/jassweb.com\/solved\/author\/jaspritsinghghumangmail-com\/"}]}},"_links":{"self":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/26437","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/comments?post=26437"}],"version-history":[{"count":0,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/posts\/26437\/revisions"}],"wp:attachment":[{"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/media?parent=26437"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/categories?post=26437"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jassweb.com\/solved\/wp-json\/wp\/v2\/tags?post=26437"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}