Bounded, skewed “bell” curve.












0














I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:




  • easy to compute - so it should be in closed form, no integrals or infinite sums;

  • easy to adjust the domain and range;

  • easy to tune the skewness;

  • not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);

  • finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.


I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.



The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.



Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.










share|cite|improve this question



























    0














    I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:




    • easy to compute - so it should be in closed form, no integrals or infinite sums;

    • easy to adjust the domain and range;

    • easy to tune the skewness;

    • not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);

    • finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.


    I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.



    The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.



    Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.










    share|cite|improve this question

























      0












      0








      0







      I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:




      • easy to compute - so it should be in closed form, no integrals or infinite sums;

      • easy to adjust the domain and range;

      • easy to tune the skewness;

      • not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);

      • finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.


      I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.



      The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.



      Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.










      share|cite|improve this question













      I am writing a program which uses a bounded bell-curve (i.e. with bounded support) to modulate light intensity. I'm using a raised cosine distribution at the moment, which works well. However I would now like to introduce a skew to the curve for a different effect. What are some formulæ I can use? The ideal formula would have the following properties:




      • easy to compute - so it should be in closed form, no integrals or infinite sums;

      • easy to adjust the domain and range;

      • easy to tune the skewness;

      • not merely the truncation of some taylor/fourier sum (because this would be inelegant and difficult to tune);

      • finally and most difficult: easily computable with integer arithmetic, since I am doing this on a microprocessor without a floating-point unit.


      I think the latter criterion might be a bridge too far which is why I separated it from the first one. Note that there is no need to be a probability distribution, but that is a natural area to look.



      The most promising family of functions seems to be the Beta distribution, but in order to adjust the skewness one most adjust the parameters and therefore the quotient involving the $Gamma$ function which is not closed-form. If I were not varying the skewness this would just be some constant factor I could compute beforehand, but I don't want to have to approximate the $Gamma$ function on-the-fly.



      Other possibilities include "tilted" trigonometric functions of which some are enumerated in this question but the explicitly defined answer there, and likely any such answer, is hard to tune because as the skewness changes, the position (and the value, in fact) of the minima also change, so I would need to be calculating those values constantly to keep my curve's endpoints anchored.







      functions probability-distributions closed-form






      share|cite|improve this question













      share|cite|improve this question











      share|cite|improve this question




      share|cite|improve this question










      asked Nov 24 at 14:21









      Chris Le Sueur

      1012




      1012



























          active

          oldest

          votes











          Your Answer





          StackExchange.ifUsing("editor", function () {
          return StackExchange.using("mathjaxEditing", function () {
          StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
          StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["$", "$"], ["\\(","\\)"]]);
          });
          });
          }, "mathjax-editing");

          StackExchange.ready(function() {
          var channelOptions = {
          tags: "".split(" "),
          id: "69"
          };
          initTagRenderer("".split(" "), "".split(" "), channelOptions);

          StackExchange.using("externalEditor", function() {
          // Have to fire editor after snippets, if snippets enabled
          if (StackExchange.settings.snippets.snippetsEnabled) {
          StackExchange.using("snippets", function() {
          createEditor();
          });
          }
          else {
          createEditor();
          }
          });

          function createEditor() {
          StackExchange.prepareEditor({
          heartbeatType: 'answer',
          autoActivateHeartbeat: false,
          convertImagesToLinks: true,
          noModals: true,
          showLowRepImageUploadWarning: true,
          reputationToPostImages: 10,
          bindNavPrevention: true,
          postfix: "",
          imageUploader: {
          brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
          contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
          allowUrls: true
          },
          noCode: true, onDemand: true,
          discardSelector: ".discard-answer"
          ,immediatelyShowMarkdownHelp:true
          });


          }
          });














          draft saved

          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3011610%2fbounded-skewed-bell-curve%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes
















          draft saved

          draft discarded




















































          Thanks for contributing an answer to Mathematics Stack Exchange!


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          Use MathJax to format equations. MathJax reference.


          To learn more, see our tips on writing great answers.





          Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


          Please pay close attention to the following guidance:


          • Please be sure to answer the question. Provide details and share your research!

          But avoid



          • Asking for help, clarification, or responding to other answers.

          • Making statements based on opinion; back them up with references or personal experience.


          To learn more, see our tips on writing great answers.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3011610%2fbounded-skewed-bell-curve%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown





















































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown

































          Required, but never shown














          Required, but never shown












          Required, but never shown







          Required, but never shown







          Popular posts from this blog

          Plaza Victoria

          Puebla de Zaragoza

          Musa