[{"id":247731,"date":"2026-08-26T13:51:13","date_gmt":"2026-08-26T18:51:13","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247731"},"modified":"2026-08-26T13:51:13","modified_gmt":"2026-08-26T18:51:13","slug":"what-is-the-quality-of-software-that-ai-writes","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/","title":{"rendered":"What is the quality of software that AI writes?"},"content":{"rendered":"<p>AI-powered coding agents increase productivity for many developers. But do these agents produce good-quality code?<\/p>\n<p>Some say this doesn&#8217;t matter, we are heading toward dark software factories with source code never inspected, and <a href=\"https:\/\/www.reddit.com\/r\/singularity\/comments\/1veslal\/elon_musk_the_next_step_is_getting_rid_of_source\/\">maybe<\/a> we should <a href=\"https:\/\/x.com\/elonmusk\/status\/2084304083851034949\">eliminate<\/a> source code altogether&#8212;&#8220;source code is the new assembly code&#8221;.<\/p>\n<p>Others have a different view. Humans sometimes need to debug source code. Source code may need to be audited by humans for compliance. Code should be clear enough for a human to inspect and reason about the algorithms and behavior. Also, good code quality can make the code more legible to agents and reduce unnecessary context.<\/p>\n<p>Developer teams can have many different ideas of what constitutes high-quality software and good coding style. Though there are many valid ways to write code, there is also wide consensus on general <a href=\"https:\/\/blog.codacy.com\/code-complexity\">principles<\/a> of code quality. For example, avoiding very large single functions or modules, avoiding code duplication, avoiding undisciplined feature creep or patchy code and avoiding unnecessarily deep class hierarchies or function call chains. Some coding style choices are testable empirically for impact on developer productivity. Furthermore, some code complexity measures can be computed objectively and programmatically.<\/p>\n<p>My experiences are with GPT 5.5 (Extra High reasoning) and 5.6 (Extra High, Max and occasionally Ultra). Much of my experience is &#8220;out of the box&#8221; usage of Codex, with simple AGENTS.md file, though I am working on <a href=\"https:\/\/openai.com\/index\/harness-engineering\">improving<\/a> the engineering of guidance files, and it is helping. My source code is mostly Python. Unfortunately it is difficult to generalize any one set of experiences universally, since developers have different code bases, languages, models, harnesses and AGENTS.md files. One-shotting a simple computer game or website would be very different from developing a complex research code in a new domain.<\/p>\n<p>At first glance, the AI-written code is not incomprehensible. It does not use odd variable names like &#8220;iiii&#8221; or &#8220;a87275,&#8221; and it does not look like it came out of an <a href=\"https:\/\/www.ioccc.org\/\">obfuscated code competition<\/a>. But, in my experience, still the generated code has deficiencies:<\/p>\n<ul>\n<li>The agent has a tendency to write much more code than is necessary (commonly 2-3X more&#8212;see also related findings <span style=\"color: #3366ff;\"><a style=\"color: #3366ff;\" href=\"https:\/\/arxiv.org\/abs\/2603.24755\">here<\/a><\/span>). Though it is capable of deleting code, its primary impulse seems to be to write more code.<\/li>\n<li>You can work with the agent to shorten the code, but it takes work. The agent it seems is not fluent in finding structural simplifications and then extracting commonalities. In one session I spent 1\/2 hour having the agent write a few hundred lines of code, and 4 hours to get it to shorten and simplify the code. You can imagine the kind of technical debt this would accumulate.<\/li>\n<li>It behaves as though code simplification is much more out of its reach than code generation. At times it just completely fails to do some simplification task I ask it to do.<\/li>\n<li>It has no instinct for when to break a file into multiple files for conceptual clarity, even if a file becomes over 10,000 lines long.<\/li>\n<li>It can reinvent a similar but different helper function in different code modules rather than designing a simple reusable function once.<\/li>\n<li>It can make massive function argument lists with 10-20 arguments rather than recognizing that the parameters may form a coherent concept representable as an abstraction or parameter object.<\/li>\n<li>Importantly, it can define functions based on abstractions that do not model the underlying domain well and are hard to decipher. When I called it on this, it said: &#8220;You\u2019re right. The code is naming implementation mechanics instead of stating intent &#8230; it forces the reader to mentally execute several layers of infrastructure just to discover that it means.&#8221;<\/li>\n<li>It often invents terminology that cannot instantly be understood by the reader (the source code analogy of <span style=\"color: #3366ff;\"><a style=\"color: #3366ff;\" href=\"https:\/\/sensible.com\/dont-make-me-think\/\">Don&#8217;t Make Me Think<\/a><\/span>).<\/li>\n<li>It can repeat the same expression multiple times instead of defining a variable with a meaningful name to represent the quantity.<\/li>\n<li>It can hardwire unexplained \u201cmagic constants\u201d into the code instead of defining them with meaningful names.<\/li>\n<\/ul>\n<p>Indeed, when pressed, the models are sometimes capable of doing better. For example, for a hard design problem, 5.6 Ultra was capable of creating a good object design that was a good match to the problem domain, when I asked it to look hard at the problem&#8212;better than the less sophisticated models.<\/p>\n<p>I would certainly expect that with more engineering of the agent guidance files, many or most of these problems would get better. However, it should not require extreme measures to get coding agents to write good code.<\/p>\n<p>I have not compared other coding agents, but it would not surprise me if they had similar issues. Rightly, the coding models have been optimized for their software development utility, and this has undoubtedly succeeded in a revolutionary way.<\/p>\n<p>It seems there is not yet a widely accepted code-quality benchmark playing the role for frontier coding models that SWE-bench has played for software engineering capability (though there are <a href=\"https:\/\/labs.scale.com\/leaderboard\/sweatlas-refactoring\">efforts<\/a>). It\u2019s especially interesting because many aspects of code quality are verifiable, making the problem seemingly quite amenable to treatment in post-training. I am hoping that someone can put together a good benchmark for this problem, and that the frontier labs will embrace these kinds of evaluations in model development.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>AI-powered coding agents increase productivity for many developers. But do these agents produce good-quality code? Some say this doesn&#8217;t matter, we are heading toward dark software factories with source code never inspected, and maybe we should eliminate source code altogether&#8212;&#8220;source code is the new assembly code&#8221;. Others have a different view. Humans sometimes need to [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[260,16],"tags":[329,330,328],"class_list":["post-247731","post","type-post","status-publish","format-standard","hentry","category-ai","category-software-development","tag-ai-coding-tools","tag-ai-slop","tag-software-quality"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Wayne Joubert\"\/>\n\t<meta name=\"keywords\" content=\"ai coding tools,ai slop,software quality\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"What is the quality of software that AI writes?\" \/>\n\t\t<meta property=\"og:description\" content=\"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-26T18:51:13+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-26T18:51:13+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"What is the quality of software that AI writes?\" \/>\n\t\t<meta name=\"twitter:description\" content=\"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"What is the quality of software that AI writes?","description":"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/","robots":"max-image-preview:large","keywords":"ai coding tools,ai slop,software quality","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"What is the quality of software that AI writes?","og:description":"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/","article:published_time":"2026-08-26T18:51:13+00:00","article:modified_time":"2026-08-26T18:51:13+00:00","twitter:card":"summary","twitter:title":"What is the quality of software that AI writes?","twitter:description":"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247731","title":null,"description":"AI software agents can vastly increase developer productivity. But what is the quality of the code they produce? Here we examine some issues and concerns.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-24 19:33:34","updated":"2026-08-26 19:31:58","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/software-development\/\" title=\"Software development\">Software development<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWhat is the quality of software that AI writes?\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Software development","link":"https:\/\/www.johndcook.com\/blog\/category\/software-development\/"},{"label":"What is the quality of software that AI writes?","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/what-is-the-quality-of-software-that-ai-writes\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247731","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247731"}],"version-history":[{"count":65,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247731\/revisions"}],"predecessor-version":[{"id":247813,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247731\/revisions\/247813"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247731"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247731"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247731"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247744,"date":"2026-08-26T07:16:17","date_gmt":"2026-08-26T12:16:17","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247744"},"modified":"2026-08-26T07:20:09","modified_gmt":"2026-08-26T12:20:09","slug":"junk-solutions","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/","title":{"rendered":"Junk solutions"},"content":{"rendered":"<p>When you&#8217;re interested in studying a family of functions, it can be useful to look at a differential equation that the functions solve. This is a theme I&#8217;ve written about several times, most recently <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/10\/inverse-differential-equations\/\">here<\/a>\u00a0and <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/01\/why-polynomial-coefficients\/\">here<\/a>, but also three years ago <a href=\"https:\/\/www.johndcook.com\/blog\/2023\/07\/04\/useful-de\/\">here<\/a>.<\/p>\n<p>Orthogonal polynomials are mathematically elegant as well as very useful in applications [1]. Various families of orthogonal polynomials satisfy various differential equations. These equations have a polynomial and non-polynomial solutions. What use are the latter?<\/p>\n<p>If the differential equation modeled something physical, then the second solution would be necessary to have a complete basis of solutions. But if the differential equation is only instrumental in studying the orthogonal polynomials, what use is a non-polynomial solution?<\/p>\n<p>These non-polynomial solutions turn out to be useful. <strong>Just as &#8220;junk&#8221; DNA turned out not to be junk, these &#8220;junk&#8221; solutions are important<\/strong>. Junk DNA doesn&#8217;t directly code for proteins, but it regulates DNA that does code for proteins and serves other purposes. Similarly, these non-polynomial solutions carry information related to the polynomial solutions.<\/p>\n<p>For example, orthogonal polynomials are used to construct numerical integration methods, such as Gaussian quadrature, and the associated non-polynomial solutions describe the error in these integration methods. Incidentally, Gaussian quadrature is based on Legendre polynomials, mentioned in the <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/\">previous post<\/a>. For every family of orthogonal polynomials there is a corresponding integration method. See <a href=\"https:\/\/www.johndcook.com\/OrthogonalPolynomials.pdf\">these notes<\/a>.<\/p>\n<p>Another tie-in to recent posts is that these non-polynomial solutions are the minimal solution to the polynomial family&#8217;s <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/\">three-term recurrence<\/a>, the solution that takes <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/\">extra care<\/a> to compute numerically.<\/p>\n<p>This post has been very high-level, alluding to ideas without going into details. I&#8217;d like to write future posts that go into more depth regarding the ideas introduced here.<\/p>\n<p>&nbsp;<\/p>\n<p>[1] &#8220;Real analysts cannot do without Fourier, complex analysts cannot do without Laurent, and numerical analysts cannot do without Chebyshev [polynomials].&#8221; &#8212; Lloyd N. Trefethen&#8221;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When you&#8217;re interested in studying a family of functions, it can be useful to look at a differential equation that the functions solve. This is a theme I&#8217;ve written about several times, most recently here\u00a0and here, but also three years ago here. Orthogonal polynomials are mathematically elegant as well as very useful in applications [1]. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[47,129],"class_list":["post-247744","post","type-post","status-publish","format-standard","hentry","category-math","tag-differential-equations","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"differential equations,special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Junk solutions\" \/>\n\t\t<meta property=\"og:description\" content=\"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-26T12:16:17+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-26T12:20:09+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Junk solutions\" \/>\n\t\t<meta name=\"twitter:description\" content=\"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Junk solutions","description":"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/","robots":"max-image-preview:large","keywords":"differential equations,special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Junk solutions","og:description":"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/","article:published_time":"2026-08-26T12:16:17+00:00","article:modified_time":"2026-08-26T12:20:09+00:00","twitter:card":"summary","twitter:title":"Junk solutions","twitter:description":"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247744","title":null,"description":"A solution that seems to be just an unneeded artifact might turn out to be important. Example of orthogonal polynomials.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-26 11:15:47","updated":"2026-08-26 14:21:58","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tJunk solutions\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Junk solutions","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/junk-solutions\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247744","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247744"}],"version-history":[{"count":3,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247744\/revisions"}],"predecessor-version":[{"id":247751,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247744\/revisions\/247751"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247744"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247744"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247744"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247742,"date":"2026-08-26T05:51:32","date_gmt":"2026-08-26T10:51:32","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247742"},"modified":"2026-08-26T05:51:32","modified_gmt":"2026-08-26T10:51:32","slug":"ultraspherical","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/","title":{"rendered":"Ultraspherical"},"content":{"rendered":"<p>When I hear the term <em>ultraspherical<\/em>\u00a0I think of something extremely spherical. For example, a baseball is spherical, but a billiard ball is more spherical. Maybe a highly polished billiard ball is ultraspherical.<\/p>\n<p>Using this line of thought, the term <strong>ultraspherical polynomial<\/strong>\u00a0is inexplicable. This is an example of the <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/\">arcane terminology<\/a> I wrote about recently. In this post I&#8217;ll explain what it conveys.<\/p>\n<p>A spherical polynomial is a polynomial that naturally falls out of solving Laplace&#8217;s equation in spherical coordinates, using separation of variables. Legendre polynomials are spherical polynomials.<\/p>\n<p><strong>Gegenbauer polynomials<\/strong> are so called because a man named Gegenbauer studied them, just as Legendre polynomials take their name from Legendre. Gegenbauer polynomials are also called ultraspherical polynomials. Why is that?<\/p>\n<p>There are two possible reasons. I&#8217;m not sure which is the historical reason, but both are plausible and are useful mnemonics.<\/p>\n<p>Ultraspherical polynomials are not extremely spherical, they&#8217;re <em>beyond<\/em> spherical in some sense. More modern terminology uses the hyper- prefix rather than ultra-, which helps a bit.<\/p>\n<p>Ultraspherical polynomials are beyond spherical in two ways. Gegenbauer polynomials are a generalization of Legendre polynomials, so they&#8217;re beyond Legendre polynomials in this sense.<\/p>\n<p>More importantly, Gegenbauer polynomials fall out of solving Laplace&#8217;s equation on a hypersphere, i.e. a sphere in \u211d<sup><em>n<\/em><\/sup>\u00a0for <em>n<\/em> &gt; 3, just as Legendre polynomials fall out of the case\u00a0<em>n<\/em> = 3. It makes sense to call these polynomials <strong>hyperspherical<\/strong> because they fall out of solving an equation on a hypersphere. Unfortunately the classical term is <em>ultraspherical<\/em> rather than <em>hyperspherical<\/em>.<\/p>\n<p>I think, but I&#8217;m not sure, that at one time higher dimensional spheres were called hyperspheres, but the the higher dimensional analog of spherical coordinates was called ultraspherical coordinates. If so, it would be understandable that the adjective modifying <em>coordinates<\/em> would be applied to the polynomials that result from solving equations in these coordinates.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>When I hear the term ultraspherical\u00a0I think of something extremely spherical. For example, a baseball is spherical, but a billiard ball is more spherical. Maybe a highly polished billiard ball is ultraspherical. Using this line of thought, the term ultraspherical polynomial\u00a0is inexplicable. This is an example of the arcane terminology I wrote about recently. In [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[47,129],"class_list":["post-247742","post","type-post","status-publish","format-standard","hentry","category-math","tag-differential-equations","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"What are ultraspherical polynomials? What does &quot;ultra&quot; mean in this context?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"differential equations,special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Ultraspherical\" \/>\n\t\t<meta property=\"og:description\" content=\"What are ultraspherical polynomials? What does &quot;ultra&quot; mean in this context?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-26T10:51:32+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-26T10:51:32+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Ultraspherical\" \/>\n\t\t<meta name=\"twitter:description\" content=\"What are ultraspherical polynomials? What does &quot;ultra&quot; mean in this context?\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Ultraspherical","description":"What are ultraspherical polynomials? What does \"ultra\" mean in this context?","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/","robots":"max-image-preview:large","keywords":"differential equations,special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Ultraspherical","og:description":"What are ultraspherical polynomials? What does &quot;ultra&quot; mean in this context?","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/","article:published_time":"2026-08-26T10:51:32+00:00","article:modified_time":"2026-08-26T10:51:32+00:00","twitter:card":"summary","twitter:title":"Ultraspherical","twitter:description":"What are ultraspherical polynomials? What does &quot;ultra&quot; mean in this context?","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247742","title":null,"description":"What are ultraspherical polynomials? What does \"ultra\" mean in this context?","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-26 10:24:50","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tUltraspherical\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Ultraspherical","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/26\/ultraspherical\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247742","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247742"}],"version-history":[{"count":1,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247742\/revisions"}],"predecessor-version":[{"id":247743,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247742\/revisions\/247743"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247742"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247742"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247742"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247737,"date":"2026-08-24T20:47:47","date_gmt":"2026-08-25T01:47:47","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247737"},"modified":"2026-08-24T22:53:04","modified_gmt":"2026-08-25T03:53:04","slug":"numerical-instability-recurrece","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/","title":{"rendered":"Numerical (in)stability of recurrence relations"},"content":{"rendered":"<p>The <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/\">previous post<\/a> gave several examples of three-term recurrence relations for special functions. These relations can be computationally useful, but they have to be applied carefully.<\/p>\n<p>Several years ago I wrote a post on <a href=\"https:\/\/www.johndcook.com\/blog\/2020\/01\/17\/stable-recurrence-relations\/\">stable and unstable recurrences<\/a>. In that post I show that the stability of the recurrence relation for Bessel functions produces depends on which kind of Bessel function and which direction the recurrence is applied.<\/p>\n<p>In the forward direction, computing higher order values from lower order values, works well for Bessel functions of the second kind <em>Y<\/em><sub><em>n<\/em><\/sub> but not for Bessel functions of the first kind <em>J<\/em><sub><em>n<\/em><\/sub>. In the reverse direction, the recurrence is stable for <em>J<\/em><sub><em>n<\/em><\/sub> but not for <em>Y<\/em><sub><em>n<\/em><\/sub>.<\/p>\n<p>I didn&#8217;t explain in that post why this is. In this post I will.<\/p>\n<p>Second order linear difference equations have two independent solutions, just like second order linear differential equations. For both kinds of equations, all solutions are linear combinations of the two solutions. Suppose one solution grows with <em>n<\/em> and the other decays. You may want to compute the decaying solution, but in doing so you might pick up a small component of the growing solution due to rounding error. <a href=\"https:\/\/www.johndcook.com\/blog\/2013\/11\/12\/sensitive-dependence-on-initial-conditions\/\">This post<\/a> illustrates this phenomena for differential equations, and <a href=\"https:\/\/www.johndcook.com\/blog\/2020\/01\/17\/stable-recurrence-relations\/\">this post<\/a> illustrates it for difference equations.<\/p>\n<p>When you look at a plot of Bessel functions in a text book, you&#8217;ll probably see a few plots of <em>J<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) and<em>Y<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) for a few small values of\u00a0<em>n<\/em>. The functions seem to behave roughly the same way, like sine and cosine. And that&#8217;s true,\u00a0<strong>as functions of <em>x<\/em><\/strong>.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/bessel_vary_x.png\" width=\"480\" height=\"360\" \/><\/p>\n<p>But it&#8217;s not true for <em>J<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) and<em>Y<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) as functions of\u00a0<em>n<\/em> for fixed\u00a0<em>x<\/em>. As\u00a0<em>n<\/em> increases, <em>J<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) decays to zero and <em>Y<\/em><sub><em>n<\/em><\/sub>(<em>x<\/em>) goes off to \u2212\u221e.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/bessel_vary_nu.png\" width=\"480\" height=\"360\" \/><\/p>\n<p>That&#8217;s the source of numerical instability. And there will be similar instability problems for other recurrences where the ratios of the two independent solutions goes to zero or infinity as a function of\u00a0<em>n<\/em>.<\/p>\n<p>There are techniques for computing the solution that does not diverse, the so-called minimal solution, such as Miller&#8217;s algorithm mentioned <a href=\"https:\/\/www.johndcook.com\/blog\/2020\/01\/17\/stable-recurrence-relations\/\">here<\/a>.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The previous post gave several examples of three-term recurrence relations for special functions. These relations can be computationally useful, but they have to be applied carefully. Several years ago I wrote a post on stable and unstable recurrences. In that post I show that the stability of the recurrence relation for Bessel functions produces depends [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[129],"class_list":["post-247737","post","type-post","status-publish","format-standard","hentry","category-math","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Why are recurrence relations stable in one direction and unstable in the other?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Numerical (in)stability of recurrence relations\" \/>\n\t\t<meta property=\"og:description\" content=\"Why are recurrence relations stable in one direction and unstable in the other?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-25T01:47:47+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-25T03:53:04+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Numerical (in)stability of recurrence relations\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Why are recurrence relations stable in one direction and unstable in the other?\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Numerical (in)stability of recurrence relations","description":"Why are recurrence relations stable in one direction and unstable in the other?","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/","robots":"max-image-preview:large","keywords":"special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Numerical (in)stability of recurrence relations","og:description":"Why are recurrence relations stable in one direction and unstable in the other?","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/","article:published_time":"2026-08-25T01:47:47+00:00","article:modified_time":"2026-08-25T03:53:04+00:00","twitter:card":"summary","twitter:title":"Numerical (in)stability of recurrence relations","twitter:description":"Why are recurrence relations stable in one direction and unstable in the other?","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247737","title":null,"description":"Why are recurrence relations stable in one direction and unstable in the other?","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-25 00:55:15","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tNumerical (in)stability of recurrence relations\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Numerical (in)stability of recurrence relations","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247737","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247737"}],"version-history":[{"count":2,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247737\/revisions"}],"predecessor-version":[{"id":247740,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247737\/revisions\/247740"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247737"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247737"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247737"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247726,"date":"2026-08-24T09:14:55","date_gmt":"2026-08-24T14:14:55","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247726"},"modified":"2026-08-26T07:17:44","modified_gmt":"2026-08-26T12:17:44","slug":"three-term-recurrences","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/","title":{"rendered":"Three-term recurrences"},"content":{"rendered":"<p>There many examples of families of functions where each function can be computed as a linear combination of the two previous terms<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence.svg\" alt=\"f_{n+1}(x) = a(x) f_n(x) + b(x) f_{n-1}(x)\" width=\"276\" height=\"18\" \/><\/p>\n<p>where\u00a0<em>a<\/em> and\u00a0<em>b<\/em> are functions of\u00a0<em>x<\/em> but not on <em>n<\/em>. This is called a three-term recurrence formula.<\/p>\n<p>It&#8217;s amazing how often you can run into three-term recurrence formulas. There are theorems that give conditions for such recurrences to hold, but I haven&#8217;t reached the bottom of that rabbit hole [1].<\/p>\n<p>For this post I just want to give examples.<\/p>\n<p>NB: before using any of the recurrences below, see the <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/numerical-instability-recurrece\/\">next post<\/a> for a numerical pitfall to avoid.<\/p>\n<p><strong>Bessel functions<\/strong> of the first and second kind:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence_bessel.svg\" alt=\"\\begin{align*} J_{\\nu+1}(x) &amp;= \\frac{2\\nu}{x}\\,J_\\nu(x) - J_{\\nu-1}(x) \\\\ Y_{\\nu+1}(x) &amp;= \\frac{2\\nu}{x}\\,Y_\\nu(x) - Y_{\\nu-1}(x) \\end{align*}\" width=\"237\" height=\"88\" \/><\/p>\n<p><strong>Modified Bessel functions<\/strong> of the first and second kind:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence_modified_bessel.svg\" alt=\"\\begin{align*} I_{\\nu+1}(x) &amp;= I_{\\nu-1}(x) - \\frac{2\\nu}{x}\\,I_\\nu(x) \\\\ K_{\\nu+1}(x) &amp;= K_{\\nu-1}(x) + \\frac{2\\nu}{x}\\,K_\\nu(x) \\end{align*}\" width=\"245\" height=\"88\" \/><\/p>\n<p><strong>Chebyshev polynomials<\/strong> of the first and second kind:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence_chebyshev.svg\" alt=\"\\begin{align*} T_{n+1}(x) &amp;= 2x\\,T_n(x) - T_{n-1}(x) \\\\ U_{n+1}(x) &amp;= 2x\\,U_n(x) - U_{n-1}(x) \\end{align*}\" width=\"244\" height=\"47\" \/><\/p>\n<p><strong>Hermite polynomials<\/strong> (physicists&#8217; convention):<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence_hermite.svg\" alt=\"H_{n+1}(x) = 2x\\,H_n(x) - 2n\\,H_{n-1}(x)\" width=\"271\" height=\"18\" \/><\/p>\n<p><strong>Legendre polynomials<\/strong>:<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/recurrence_legendre.svg\" alt=\"P_{n+1}(x) = \\frac{2n+1}{n+1}\\,x\\,P_n(x) - \\frac{n}{n+1}\\,P_{n-1}(x)\" width=\"335\" height=\"40\" \/><\/p>\n<p>[1] See Bochner&#8217;s theorem for orthogonal polynomials, the Nikiforov\u2013Uvarov method, and Infeld-Hull factorization.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There many examples of families of functions where each function can be computed as a linear combination of the two previous terms where\u00a0a and\u00a0b are functions of\u00a0x but not on n. This is called a three-term recurrence formula. It&#8217;s amazing how often you can run into three-term recurrence formulas. There are theorems that give conditions [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[129],"class_list":["post-247726","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Three-term recurrence relations are surprisingly common. Eight examples.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Three-term recurrences\" \/>\n\t\t<meta property=\"og:description\" content=\"Three-term recurrence relations are surprisingly common. Eight examples.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-24T14:14:55+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-26T12:17:44+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Three-term recurrences\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Three-term recurrence relations are surprisingly common. Eight examples.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Three-term recurrences","description":"Three-term recurrence relations are surprisingly common. Eight examples.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/","robots":"max-image-preview:large","keywords":"special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Three-term recurrences","og:description":"Three-term recurrence relations are surprisingly common. Eight examples.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/","article:published_time":"2026-08-24T14:14:55+00:00","article:modified_time":"2026-08-26T12:17:44+00:00","twitter:card":"summary","twitter:title":"Three-term recurrences","twitter:description":"Three-term recurrence relations are surprisingly common. Eight examples.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247726","title":null,"description":"Three-term recurrence relations are surprisingly common. Eight examples.","keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-24 12:21:41","updated":"2026-08-26 14:21:58","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/uncategorized\/\" title=\"Uncategorized\">Uncategorized<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tThree-term recurrences\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Uncategorized","link":"https:\/\/www.johndcook.com\/blog\/category\/uncategorized\/"},{"label":"Three-term recurrences","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/three-term-recurrences\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247726","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247726"}],"version-history":[{"count":6,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247726\/revisions"}],"predecessor-version":[{"id":247750,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247726\/revisions\/247750"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247726"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247726"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247726"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247719,"date":"2026-08-24T09:14:25","date_gmt":"2026-08-24T14:14:25","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247719"},"modified":"2026-08-24T09:14:25","modified_gmt":"2026-08-24T14:14:25","slug":"von-mises-fisher","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/","title":{"rendered":"The von Mises-Fisher distribution"},"content":{"rendered":"<p>Probability density function must integrate to 1, and so if you know a density function up to a constant, the constant is determined.<\/p>\n<p>When you&#8217;re looking at a probability density\u00a0<em>f<\/em>(<em>x<\/em>) for the first time, it helps to ignore the normalizing constant. Concentrate on the part of the function involving <em>x<\/em> and know that the normalizing constant is whatever it has to be. For example, about half of the ink that it takes to write down a beta or chi-squared density is devoted to the normalization constant; the rest of the expression is easier to understand.<\/p>\n<p>This post will do the opposite of the advice above and focus on normalization constants because this ties into the <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/\">previous post<\/a>\u00a0on modified Bessel functions.<\/p>\n<p>The <strong>von Mises<\/strong> probability distribution on a circle has two parameters, \u03bc and \u03ba, and its density function is<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/vonmises.svg\" alt=\"f(x \\mid \\mu, \\kappa) = \\frac{\\exp(\\kappa \\cos(x - \\mu))}{2\\pi I_0(\\kappa)}\" width=\"250\" height=\"45\" \/><\/p>\n<p>The normalizing constant is 2\u03c0 <em>I<\/em><sub>0<\/sub>(\u03ba). The factor of 2\u03c0 is unsurprising for anything defined on a circle. The more interesting part is <em>I<\/em><sub>0<\/sub>, the modified Bessel function of order 0.<\/p>\n<p>The <strong>von Mises-Fisher<\/strong> distribution is the generalization of the von Mises distribution to a sphere in\u00a0<em>p<\/em> dimensions. The density function is<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/vonmises_fisher.svg\" alt=\"f(\\mathbf{x} \\mid \\boldsymbol{\\mu}, \\kappa) = C_{p}(\\kappa) \\exp \\left( {\\kappa \\boldsymbol{\\mu}^\\mathsf{T} \\mathbf{x} } \\right)\" width=\"247\" height=\"36\" \/><\/p>\n<p>where the normalization constant <em>C<\/em><sub><em>p<\/em><\/sub>(\u03ba) is<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/vonmises_fisher_norm.svg\" alt=\"C_{p}(\\kappa)=\\frac {\\kappa^{p\/2-1}} {(2\\pi)^{p\/2}I_{p\/2-1}(\\kappa)}\" width=\"206\" height=\"52\" \/><\/p>\n<p>where <em>I<\/em><sub><em>p<\/em>\/2 \u2212 1<\/sub> is the modified Bessel function of order <em>p<\/em>\/2 \u2212 1. The values of\u00a0<strong>x<\/strong> and <strong>\u03bc<\/strong> are in bold face because they are now vectors, points on the unit sphere.<\/p>\n<p>When\u00a0<em>p<\/em> = 2, we have the &#8220;sphere&#8221; in two dimensions, i.e. the circle, and the von Mises-Fisher distribution reduces to the von Mises distribution. But where did the cosine go? The inner product of <strong>x<\/strong> and <strong>\u03bc<\/strong> is the cosine of the angle between the two vectors.<\/p>\n<p>When <em>p<\/em> = 3, obviously an important special case, the von Mises-Fisher distribution is known as the <strong>Fisher<\/strong> distribution. In that case the normalizing constant <em>C<\/em><sub>3<\/sub>(\u03ba) can be written without using modified Bessel functions because when \u03bd = \u00bd + <em>n<\/em> for an integer <em>n<\/em>, <em>I<\/em><sub>\u03bd<\/sub>(<em>x<\/em>) is an elementary function.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Probability density function must integrate to 1, and so if you know a density function up to a constant, the constant is determined. When you&#8217;re looking at a probability density\u00a0f(x) for the first time, it helps to ignore the normalizing constant. Concentrate on the part of the function involving x and know that the normalizing [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[105,129],"class_list":["post-247719","post","type-post","status-publish","format-standard","hentry","category-math","tag-probability","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"probability,special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"von Mises probability distribution | von Mises-Fisher\" \/>\n\t\t<meta property=\"og:description\" content=\"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-24T14:14:25+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-24T14:14:25+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"von Mises probability distribution | von Mises-Fisher\" \/>\n\t\t<meta name=\"twitter:description\" content=\"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"von Mises probability distribution | von Mises-Fisher","description":"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/","robots":"max-image-preview:large","keywords":"probability,special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"von Mises probability distribution | von Mises-Fisher","og:description":"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/","article:published_time":"2026-08-24T14:14:25+00:00","article:modified_time":"2026-08-24T14:14:25+00:00","twitter:card":"summary","twitter:title":"von Mises probability distribution | von Mises-Fisher","twitter:description":"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247719","title":"von Mises probability distribution | von Mises-Fisher","description":"The von Mises probability distribution on a circle generalizes to the von Mises-Fisher distribution on a sphere. Connection to modified Bessel functions.","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-23 19:18:20","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tThe von Mises-Fisher distribution\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"The von Mises-Fisher distribution","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/24\/von-mises-fisher\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247719","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247719"}],"version-history":[{"count":3,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247719\/revisions"}],"predecessor-version":[{"id":247724,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247719\/revisions\/247724"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247719"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247719"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247719"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247707,"date":"2026-08-23T13:40:57","date_gmt":"2026-08-23T18:40:57","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247707"},"modified":"2026-08-23T19:59:42","modified_gmt":"2026-08-24T00:59:42","slug":"modified-bessel-function","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/","title":{"rendered":"What exactly is modified about a modified Bessel function?"},"content":{"rendered":"<p>Special functions often have arcane names that not very helpful without some context. The <a href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/\">previous post<\/a> goes into some reasons for this. This post will expand on a point at the end of the post about &#8220;modified&#8221; functions.<\/p>\n<p>Things are given their names for reasons. Discovering those reasons may help you understand their motivation and use.<\/p>\n<h2>Pure math perspective<\/h2>\n<p>For each integer <em>n<\/em>, the modified Bessel function <em>I<sub>n<\/sub><\/em> is essentially the Bessel function <em>J<sub>n<\/sub><\/em> evaluated along the imaginary axis. Specifically,<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/modified_bessel2.svg\" alt=\"I_n(x) = i^{-n} J_n(ix)\" width=\"135\" height=\"18\" \/><\/p>\n<p>From a certain shallow perspective, that&#8217;s the end of the story: modified Bessel functions are modified in the sense that the argument is multiplied by\u00a0<em>i<\/em>. And there&#8217;s a fiddly constant term up front for no apparent reason.<\/p>\n<p>But of course that&#8217;s not the end of the story or else this wouldn&#8217;t be worth an entire post.<\/p>\n<p>The equation above is analogous to the relationships between circular and hyperbolic functions<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/modified_bessel3.svg\" alt=\"\\begin{align*} \\sin(ix) &amp;= i \\sinh(x) \\\\ \\cos(ix) &amp;= \\phantom{i} \\cosh(x) \\\\ \\tan(ix) &amp;= \\phantom{i} \\tanh(x) \\end{align*}\" width=\"154\" height=\"76\" \/><\/p>\n<p>These relationships are interesting because the circular and hyperbolic functions are independently meaningful. If you view these equations merely as definitions you lose their significance. Circular and hyperbolic functions were widely used before Euler discovered the connection between them.<\/p>\n<p>Similarly, there&#8217;s a reason the modified Bessel functions were given a name their own. If you were led to Bessel functions and modified Bessel functions separately by different applications, you would regard the equation<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/modified_bessel2.svg\" alt=\"I_n(x) = i^{-n} J_n(ix)\" width=\"135\" height=\"18\" \/><\/p>\n<p>as a <strong>discovery<\/strong> rather than just a definition. The following section explains why someone would be interested in modified Bessel functions.<\/p>\n<p>Before we move on, I&#8217;d like to explain the reason for the term <em>i<\/em><sup>\u2212<em>n<\/em><\/sup> term. In general<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/modified_bessel4.svg\" alt=\"I_\\nu(x) = \\exp(\\nu\\pi i\/2) J_n(ix)\" width=\"202\" height=\"18\" \/><\/p>\n<p>for all real \u03bd.\u00a0The reason for the exp(\u03bd\u03c0<em>i<\/em>\/2) term is that it makes <em>I<\/em><sub>\u03bd<\/sub>(<em>x<\/em>) real for all real <em>x<\/em>.<\/p>\n<h2>Applied math perspective<\/h2>\n<p>Bessel functions often arise from solving problems with <strong>radial symmetry<\/strong>. Solving the <strong>wave equation<\/strong> in cylindrical coordinates using separation of variables leads to Bessel&#8217;s differential equation<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/bessel_equation.svg\" alt=\"x^2 y'' + x y' + (x^2 - \\nu^2) y = 0\" width=\"212\" height=\"20\" \/><\/p>\n<p>and its solutions\u00a0<em>J<sub>n<\/sub><\/em> and\u00a0<em>Y<sub>n<\/sub><\/em>, Bessel functions of the first and second kind.<\/p>\n<p>Solving the <strong>heat equation<\/strong> in cylindrical coordinates with separation of variables leads to the <em>modified<\/em> Bessel equation<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter\" style=\"background-color: white;\" src=\"https:\/\/www.johndcook.com\/modified_bessel5.svg\" alt=\"x^2 y^{\\prime \\prime} + x y^{\\prime} - (x^2 + \\nu^2) y = 0\" width=\"225\" height=\"22\" \/><\/p>\n<p>and its solutions\u00a0<em>I<sub>n<\/sub><\/em> and\u00a0<em>K<sub>n<\/sub><\/em>, the\u00a0<em>modified<\/em> Bessel functions of the first and second kind.<\/p>\n<p>This is the reason behind the complex analysis perspective above: the change of variables sending\u00a0<em>x<\/em> to\u00a0<em>ix<\/em> changes the sign of the <em>x<\/em>\u00b2 term in Bessel&#8217;s equation.<\/p>\n<p>Bessel functions describe radially symmetric <strong>oscillations<\/strong>, such as the vibrations of a drum head. Modified Bessel functions describe radially symmetric <strong>exponential<\/strong> growth or decay [1], such as in the heat in a cylinder.<\/p>\n<h2>Other modified functions<\/h2>\n<p><strong>Struve functions<\/strong> are closely related to Bessel functions. The (modified) Struve functions also satisfy Bessel&#8217;s (modified) differential equation, but with a non-zero right hand side. The modified Struve functions are proportional to the unmodified Struve functions evaluated along the imaginary axis, with a proportionality constant that makes the modified Struve functions real for real arguments.<\/p>\n<p>There&#8217;s a similar relationship between the <strong>Mathieu functions<\/strong> and modified Mathieu functions. The general pattern is that &#8220;modified&#8221; in the context of special functions means &#8220;evaluated at\u00a0<em>ix<\/em> and multiplied by a constant to make the function real for real arguments.&#8221;<\/p>\n<p>&nbsp;<\/p>\n<p>[1] The functions <em>I<sub>n<\/sub><\/em> grow exponentially and the functions <em>K<sub>n<\/sub><\/em> decay exponentially. For this reason, <a href=\"https:\/\/www.johndcook.com\/blog\/2017\/02\/26\/function-on-cover-of-abramowitz-stegun\/\">A&amp;S<\/a> didn&#8217;t tabulate <em>I<sub>n<\/sub><\/em> and\u00a0<em>K<sub>n<\/sub><\/em> per se. Instead it tabulated <em>e<\/em><sup>\u2212<em>x<\/em><\/sup><em>I<sub>n<\/sub><\/em> and\u00a0<em>e<\/em><sup><em>x<\/em><\/sup><em>K<sub>n<\/sub><\/em> because these functions varied less over their range.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Special functions often have arcane names that not very helpful without some context. The previous post goes into some reasons for this. This post will expand on a point at the end of the post about &#8220;modified&#8221; functions. Things are given their names for reasons. Discovering those reasons may help you understand their motivation and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[47,129],"class_list":["post-247707","post","type-post","status-publish","format-standard","hentry","category-math","tag-differential-equations","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other &quot;modified&quot; functions.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"differential equations,special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"What exactly is modified about a modified Bessel function?\" \/>\n\t\t<meta property=\"og:description\" content=\"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other &quot;modified&quot; functions.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-23T18:40:57+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-24T00:59:42+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"What exactly is modified about a modified Bessel function?\" \/>\n\t\t<meta name=\"twitter:description\" content=\"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other &quot;modified&quot; functions.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"What exactly is modified about a modified Bessel function?","description":"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other \"modified\" functions.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/","robots":"max-image-preview:large","keywords":"differential equations,special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"What exactly is modified about a modified Bessel function?","og:description":"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other &quot;modified&quot; functions.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/","article:published_time":"2026-08-23T18:40:57+00:00","article:modified_time":"2026-08-24T00:59:42+00:00","twitter:card":"summary","twitter:title":"What exactly is modified about a modified Bessel function?","twitter:description":"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other &quot;modified&quot; functions.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247707","title":null,"description":"What exactly is modified about modified Bessel functions? An explanation from pure math and applied math perspective. Other \"modified\" functions.","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-23 12:21:57","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWhat exactly is modified about a modified Bessel function?\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"What exactly is modified about a modified Bessel function?","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/modified-bessel-function\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247707","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247707"}],"version-history":[{"count":10,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247707\/revisions"}],"predecessor-version":[{"id":247723,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247707\/revisions\/247723"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247707"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247707"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247707"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247705,"date":"2026-08-23T12:56:03","date_gmt":"2026-08-23T17:56:03","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247705"},"modified":"2026-08-23T20:05:36","modified_gmt":"2026-08-24T01:05:36","slug":"arcane-terminology","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/","title":{"rendered":"Why special function terminology is arcane"},"content":{"rendered":"<p>Special functions are special because they&#8217;re useful. They can also be shrouded in arcane terminology. These two facts are related.<\/p>\n<p>The more widely useful a function is, the more likely it is that the function will be discovered independently multiple times. Independent discoveries lead to varying definitions and notations. For example, there are two widely used definitions of Hermite polynomials, one used in <a href=\"https:\/\/www.johndcook.com\/blog\/2017\/12\/20\/hermite-polynomials-expected-values-and-integration\/\">probability<\/a> and another used in physics, that only differ by a scaling factor. This also explains why there are so many variations on the definitions of the <a href=\"https:\/\/www.johndcook.com\/blog\/2022\/03\/20\/reverse-engineering-fourier-conventions\/\">Fourier transform<\/a> and <a href=\"https:\/\/www.johndcook.com\/blog\/2023\/08\/12\/spherical-coordinate-rosetta-stone\/\">spherical coordinates<\/a>.<\/p>\n<p>Special functions were discovered and applied before they were studied systematically. As with most mathematics, practice preceded theory. In hindsight, some names and conventions were less than ideal, at least from the perspective of someone seeking to organize a theory.<\/p>\n<p>Functions can have arcane names for several reasons, one being that their usefulness became apparent long ago. If you&#8217;re instinct is that things with strange names are no longer important, you&#8217;re instinct might be backward. The strange name may be an indication that something is so important that its usefulness became apparent long ago.<\/p>\n<p>Sometimes special functions have bland, uninformative names because the names stuck before anybody could think of something better. Bob looks into an interesting family of functions [1], then later he finds another interesting family of functions. These become known as &#8220;Bob&#8217;s functions of the first kind&#8221; and &#8220;Bob&#8217;s functions of the second kind.&#8221; These names are quite understandable at the time, though in the future people will want to know what distinguishes the functions, other than the fact that Bob discovered them, and what the groupings have in common other than the order in which Bob found them.<\/p>\n<p>I started this post intending to discuss modified Bessel functions and explain what exactly is modified about them, but my preface became its own post. &#8220;Modified&#8221; is an example of the bland terminology mentioned above. There are Bessel functions and modified Bessel functions. Without more context, the &#8220;modified&#8221; term isn&#8217;t very informative. But it does provide a clue that there&#8217;s some kind of close relationship between the modified and unmodified functions. That&#8217;ll be the topic of my next post.<\/p>\n<p>&nbsp;<\/p>\n<p>[1] Math education doesn&#8217;t place much emphasis on history and motivation. You may have to do some digging to find out why Bob was interested in his functions. What else was Bob known for? Maybe they&#8217;re related.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Special functions are special because they&#8217;re useful. They can also be shrouded in arcane terminology. These two facts are related. The more widely useful a function is, the more likely it is that the function will be discovered independently multiple times. Independent discoveries lead to varying definitions and notations. For example, there are two widely [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[129],"class_list":["post-247705","post","type-post","status-publish","format-standard","hentry","category-math","tag-special-functions"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"special functions\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Why special function terminology is arcane\" \/>\n\t\t<meta property=\"og:description\" content=\"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-23T17:56:03+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-24T01:05:36+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Why special function terminology is arcane\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Why special function terminology is arcane","description":"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/","robots":"max-image-preview:large","keywords":"special functions","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Why special function terminology is arcane","og:description":"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/","article:published_time":"2026-08-23T17:56:03+00:00","article:modified_time":"2026-08-24T01:05:36+00:00","twitter:card":"summary","twitter:title":"Why special function terminology is arcane","twitter:description":"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247705","title":null,"description":"Why do special functions have arcane names and sometimes competing definitions? The answer is related to how useful these functions are.","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-23 11:12:26","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tWhy special function terminology is arcane\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"Why special function terminology is arcane","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/23\/arcane-terminology\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247705","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247705"}],"version-history":[{"count":5,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247705\/revisions"}],"predecessor-version":[{"id":247725,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247705\/revisions\/247725"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247705"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247705"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247705"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247702,"date":"2026-08-22T19:01:10","date_gmt":"2026-08-23T00:01:10","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247702"},"modified":"2026-08-22T19:01:10","modified_gmt":"2026-08-23T00:01:10","slug":"inclination","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/","title":{"rendered":"The difference orbit inclination makes"},"content":{"rendered":"<p>Suppose you wanted to find the distance between Earth and Mars over time. To first approximation, both planets orbit the sun in elliptic orbits in the same plane.<\/p>\n<p>If you wanted to be more accurate, you&#8217;d need to take into account the fact that the orbit of Mars is tilted about 1.85\u00b0 relative to the Earth&#8217;s orbit. How much difference does that make?<\/p>\n<p>To simplify things, let&#8217;s assume the Earth orbits the sun in a circle of radius 1 and Mars orbits the sun in a circle of radius 1.5. The distance between Earth and Mars over time would be basically sinusoidal.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/mars_distance0.png\" width=\"480\" height=\"360\" \/><\/p>\n<p>How much does inclination contribute to this distance? In other words, what is the difference between the distance accounting for the inclination of Mars&#8217; orbit and the distance if we assume the two orbits are in the same plane?<\/p>\n<p>This plot gives the answer.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-medium\" src=\"https:\/\/www.johndcook.com\/mars_distance1.png\" width=\"480\" height=\"360\" \/><\/p>\n<p>The effect is not large, about three orders of magnitude smaller than the main effect, but it&#8217;s interesting how erratic it is.<\/p>\n<p>The plots were made with the following code.<\/p>\n<pre>from numpy import *\r\n\r\nR = 1.5\r\nT = R**1.5 # Kepler's third law\r\n\r\ndef f(t, theta):\r\n    return sqrt(\r\n        (cos(t) - R*cos(t\/T)*cos(theta))**2 +\r\n        (sin(t) - R*sin(t\/T))**2 +\r\n        (R*sin(theta)*cos(t\/T))**2\r\n    )\r\n<\/pre>\n<p>The first plot graphs <em>f<\/em>(<em>t<\/em>, \u03b8) and the second graphs <em>f<\/em>(<em>t<\/em>, \u03b8) \u2212 <em>f<\/em>(<em>t<\/em>, 0).<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Suppose you wanted to find the distance between Earth and Mars over time. To first approximation, both planets orbit the sun in elliptic orbits in the same plane. If you wanted to be more accurate, you&#8217;d need to take into account the fact that the orbit of Mars is tilted about 1.85\u00b0 relative to the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[213],"class_list":["post-247702","post","type-post","status-publish","format-standard","hentry","category-math","tag-orbital-mechanics"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"orbital mechanics\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"The difference orbit inclination makes\" \/>\n\t\t<meta property=\"og:description\" content=\"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-23T00:01:10+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-23T00:01:10+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"The difference orbit inclination makes\" \/>\n\t\t<meta name=\"twitter:description\" content=\"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"The difference orbit inclination makes","description":"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/","robots":"max-image-preview:large","keywords":"orbital mechanics","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"The difference orbit inclination makes","og:description":"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/","article:published_time":"2026-08-23T00:01:10+00:00","article:modified_time":"2026-08-23T00:01:10+00:00","twitter:card":"summary","twitter:title":"The difference orbit inclination makes","twitter:description":"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247702","title":null,"description":"To first approximation, all the planets in our solar system orbit in the same plane. What difference does accounting for inclination make?","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-22 23:30:55","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/math\/\" title=\"Math\">Math<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tThe difference orbit inclination makes\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Math","link":"https:\/\/www.johndcook.com\/blog\/category\/math\/"},{"label":"The difference orbit inclination makes","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/inclination\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247702","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247702"}],"version-history":[{"count":2,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247702\/revisions"}],"predecessor-version":[{"id":247704,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247702\/revisions\/247704"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247702"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247702"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247702"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}},{"id":247699,"date":"2026-08-22T10:34:11","date_gmt":"2026-08-22T15:34:11","guid":{"rendered":"https:\/\/www.johndcook.com\/blog\/?p=247699"},"modified":"2026-08-22T10:34:11","modified_gmt":"2026-08-22T15:34:11","slug":"coming-soon","status":"publish","type":"post","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/","title":{"rendered":"Coming soon"},"content":{"rendered":"<p>There&#8217;s a pizza shop near my home with a sign out front that says &#8220;Coming Soon.&#8221; When I drove by it this morning I thought about how you would model the time until an event happens that is &#8220;coming soon.&#8221;<\/p>\n<p>Suppose I look at the sign one day and guess how many days until the pizza shop will open. When I drive by a week later and guess again, should my guess be smaller? You might argue that the shop will open some day, fixed in time but unknown to me, and so every day I&#8217;m one day closer to the eventual opening.<\/p>\n<p>You might model the pizza shop opening like radioactive decay and say that the estimated number of days until it opens is always the same until the day it actually opens.<\/p>\n<p>Now I think this shop has been &#8220;coming soon&#8221; for over a year. So instead of decreasing, every day I increase my estimate of the time until the shop opens. Something has gone wrong that the owners didn&#8217;t expect when they put up the sign.<\/p>\n<p>Maybe the reasonable thing would be for estimated days until opening to decrease over time, but only up to a point. After some point, the longer a business has been &#8220;coming soon&#8221; the less like that it is coming soon, or coming at all.<\/p>\n<p>This brings up an interesting point about modeling. There are two probability distributions at work: the probability that the shop will eventually open, and the time until opening assuming it eventually opens.<\/p>\n<p>When the sign first goes up saying the business is coming soon, there&#8217;s some change that it is in fact not coming. Maybe you&#8217;re optimistic and think this probability is small, but it would seem unreasonable to think the probability is zero. That means the\u00a0<em>expected<\/em> number of days until opening is always infinite. If there&#8217;s a probability \u03b5 that the shop never opens, the expected time to opening is<\/p>\n<p style=\"padding-left: 40px;\">\u03b5 \u00d7 \u221e + (1 \u2212 \u03b5) \u00d7 something = \u221e.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>There&#8217;s a pizza shop near my home with a sign out front that says &#8220;Coming Soon.&#8221; When I drove by it this morning I thought about how you would model the time until an event happens that is &#8220;coming soon.&#8221; Suppose I look at the sign one day and guess how many days until the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[17],"tags":[106],"class_list":["post-247699","post","type-post","status-publish","format-standard","hentry","category-statistics","tag-probability-and-statistics"],"acf":[],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.0.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"How would you model the time until a business opens that is &quot;coming soon&quot;?\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"John\"\/>\n\t<meta name=\"keywords\" content=\"probability and statistics\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.0.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"John D. Cook | Applied Mathematics Consulting\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Coming soon\" \/>\n\t\t<meta property=\"og:description\" content=\"How would you model the time until a business opens that is &quot;coming soon&quot;?\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-08-22T15:34:11+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-08-22T15:34:11+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Coming soon\" \/>\n\t\t<meta name=\"twitter:description\" content=\"How would you model the time until a business opens that is &quot;coming soon&quot;?\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Coming soon","description":"How would you model the time until a business opens that is \"coming soon\"?","canonical_url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/","robots":"max-image-preview:large","keywords":"probability and statistics","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"en_US","og:site_name":"John D. Cook | Applied Mathematics Consulting","og:type":"article","og:title":"Coming soon","og:description":"How would you model the time until a business opens that is &quot;coming soon&quot;?","og:url":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/","article:published_time":"2026-08-22T15:34:11+00:00","article:modified_time":"2026-08-22T15:34:11+00:00","twitter:card":"summary","twitter:title":"Coming soon","twitter:description":"How would you model the time until a business opens that is &quot;coming soon&quot;?","twitter:image":"https:\/\/www.johndcook.com\/blog\/wp-content\/uploads\/2022\/05\/twittercard.png"},"aioseo_meta_data":{"post_id":"247699","title":null,"description":"How would you model the time until a business opens that is \"coming soon\"?","keywords":null,"keyphrases":{"focus":[],"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"Article","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","location":null,"local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"created":"2026-08-22 15:15:49","updated":"2026-08-26 12:08:28","ai":{"faqs":[],"keyPoints":[],"schemas":[],"titles":[],"descriptions":[],"socialPosts":{"email":{"subject":"","preview":"","content":""},"linkedin":[],"twitter":[],"facebook":[],"instagram":[]}},"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/www.johndcook.com\/blog\/category\/statistics\/\" title=\"Statistics\">Statistics<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tComing soon\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/www.johndcook.com\/blog"},{"label":"Statistics","link":"https:\/\/www.johndcook.com\/blog\/category\/statistics\/"},{"label":"Coming soon","link":"https:\/\/www.johndcook.com\/blog\/2026\/08\/22\/coming-soon\/"}],"_links":{"self":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247699","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/comments?post=247699"}],"version-history":[{"count":2,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247699\/revisions"}],"predecessor-version":[{"id":247701,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/posts\/247699\/revisions\/247701"}],"wp:attachment":[{"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/media?parent=247699"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/categories?post=247699"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.johndcook.com\/blog\/wp-json\/wp\/v2\/tags?post=247699"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}]