'Controversial' Ordering












1












$begingroup$


This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.



On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".



I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.



And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.










share|cite|improve this question











$endgroup$

















    1












    $begingroup$


    This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.



    On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".



    I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.



    And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.










    share|cite|improve this question











    $endgroup$















      1












      1








      1





      $begingroup$


      This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.



      On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".



      I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.



      And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.










      share|cite|improve this question











      $endgroup$




      This is seemingly simple question that naturally fell into the ambit of my attention recently. And it's oddly reflexively referential in a certain way also.



      On a certain webforum that I frequent (not this one - a far far less 'respectable' one than this one ... but not 4chan, I hasten to add! (in fact 4chan doesn't have any votes - there wouldn't be any point, as everyone's score would just go to $-infty$ within a few minutes!)), there are several options for listing the posts: there is one that does it by nett voting-score; a chronological one (these are pretty obvious ones to have): but there is another one designated 'controversial'. I wrote to the moderator asking what this ordering means, and he replied saying that it's puts a premium on a post according as it has a large number of both upvotes and downvotes. My instantaneous thought was "that's simple enough" ... but then I went on to think ... "but exactly what formula would you use?".



      I have decided eventually that, if I were writing the code for the forum, I would use $$sqrt{m^2+n^2}operatorname{atn}frac{2mn}{|m^2-n^2|} ,$$ with $m$ & $n$ being the vote-numbers - whichever-whichever. (It begs normalisation by a $2/pi$ ... but that doesn't matter if it's just for the sake of comparison.) The reasoning is that this recipe is proportional to the magnitude of the vote 'vector', but scaled by the angle by which it departs from either comprising purely upvotes or purely downvotes. It looks ridiculously complicated for such a simple thing ... but then it's all on computer: & what is calculating that compared to image-processing, & stuff like that.



      And I wonder whether anyone could either suggest something else, or tell me what coders of web-fora actually use.







      statistics






      share|cite|improve this question















      share|cite|improve this question













      share|cite|improve this question




      share|cite|improve this question








      edited Dec 9 '18 at 22:51







      AmbretteOrrisey

















      asked Dec 9 '18 at 22:23









      AmbretteOrriseyAmbretteOrrisey

      54210




      54210






















          1 Answer
          1






          active

          oldest

          votes


















          0












          $begingroup$

          I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).



          This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).



          Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.



          If you want your rating not purely on how controversial it is, you can also use something like
          $$m-n + csqrt{mn}$$
          where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 22:48












          • $begingroup$
            @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
            $endgroup$
            – celtschk
            Dec 9 '18 at 22:54












          • $begingroup$
            This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
            $endgroup$
            – Jair Taylor
            Dec 9 '18 at 23:04












          • $begingroup$
            @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
            $endgroup$
            – celtschk
            Dec 9 '18 at 23:12










          • $begingroup$
            @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 23:20













          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%2f3033116%2fcontroversial-ordering%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          0












          $begingroup$

          I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).



          This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).



          Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.



          If you want your rating not purely on how controversial it is, you can also use something like
          $$m-n + csqrt{mn}$$
          where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 22:48












          • $begingroup$
            @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
            $endgroup$
            – celtschk
            Dec 9 '18 at 22:54












          • $begingroup$
            This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
            $endgroup$
            – Jair Taylor
            Dec 9 '18 at 23:04












          • $begingroup$
            @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
            $endgroup$
            – celtschk
            Dec 9 '18 at 23:12










          • $begingroup$
            @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 23:20


















          0












          $begingroup$

          I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).



          This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).



          Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.



          If you want your rating not purely on how controversial it is, you can also use something like
          $$m-n + csqrt{mn}$$
          where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.






          share|cite|improve this answer











          $endgroup$













          • $begingroup$
            Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 22:48












          • $begingroup$
            @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
            $endgroup$
            – celtschk
            Dec 9 '18 at 22:54












          • $begingroup$
            This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
            $endgroup$
            – Jair Taylor
            Dec 9 '18 at 23:04












          • $begingroup$
            @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
            $endgroup$
            – celtschk
            Dec 9 '18 at 23:12










          • $begingroup$
            @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 23:20
















          0












          0








          0





          $begingroup$

          I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).



          This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).



          Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.



          If you want your rating not purely on how controversial it is, you can also use something like
          $$m-n + csqrt{mn}$$
          where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.






          share|cite|improve this answer











          $endgroup$



          I don't know what coders of web fora actually use, but I'd say the simplest formula would be to just use the product of up- and downvotes, or if linear scaling with the total number of votes is considered important, the geometric mean (that is, the square root of the product).



          This is because for a given sum (that is, a given total number of votes), the product is maximal when the number of up- and downvotes are equal, and falls down to zero when one of them goes to zero (a post that has all its vote in one direction clearly is not controversial at all).



          Moreover, the product has the advantage that it is simple, which means less chance of implementation bugs, and fast, which means you won't have it as performance bottleneck even for large numbers of posts.



          If you want your rating not purely on how controversial it is, you can also use something like
          $$m-n + csqrt{mn}$$
          where $c$ tells how much being controversial should be weighted; c=0 would be ordering purely after score (that is, number of positive minus number of negative votes, like e.g. here on Stack Exchange), a large value for $c$ would mean that being highly controversial is the main sorting criterion.







          share|cite|improve this answer














          share|cite|improve this answer



          share|cite|improve this answer








          edited Dec 10 '18 at 0:04

























          answered Dec 9 '18 at 22:33









          celtschkceltschk

          29.9k755101




          29.9k755101












          • $begingroup$
            Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 22:48












          • $begingroup$
            @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
            $endgroup$
            – celtschk
            Dec 9 '18 at 22:54












          • $begingroup$
            This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
            $endgroup$
            – Jair Taylor
            Dec 9 '18 at 23:04












          • $begingroup$
            @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
            $endgroup$
            – celtschk
            Dec 9 '18 at 23:12










          • $begingroup$
            @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 23:20




















          • $begingroup$
            Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 22:48












          • $begingroup$
            @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
            $endgroup$
            – celtschk
            Dec 9 '18 at 22:54












          • $begingroup$
            This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
            $endgroup$
            – Jair Taylor
            Dec 9 '18 at 23:04












          • $begingroup$
            @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
            $endgroup$
            – celtschk
            Dec 9 '18 at 23:12










          • $begingroup$
            @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
            $endgroup$
            – AmbretteOrrisey
            Dec 9 '18 at 23:20


















          $begingroup$
          Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
          $endgroup$
          – AmbretteOrrisey
          Dec 9 '18 at 22:48






          $begingroup$
          Yes - mine is probably overly fussy, insisting that it be exactly proportional to the product of the magnitude of the 'vector' and the lesser of its angular departures from the axes. But as for implementation bugs, atn is so elementary a function, I'm not sure that would really be an issue. But then ... I suppose it just might be. I think you would need to take the square root though - as you said - the geometric mean, rather than just use the product, to keep a rudimentary quasiproportionality to the magnitude of the vector ¶ And of course, thanks for your contribution.
          $endgroup$
          – AmbretteOrrisey
          Dec 9 '18 at 22:48














          $begingroup$
          @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
          $endgroup$
          – celtschk
          Dec 9 '18 at 22:54






          $begingroup$
          @AmbretteOrrisey: As long as it only for ordering, the square root doesn't matter because it is a strictly monotonous growing function, which means it is order-preserving. The square root only matters if you want to display something like a “controversality score” that for constant vote ratio is proportional to the number of votes. As of possible implementation bugs; the first thin I notice is that your formula as given doesn't work for $m=n$ (equal number of up- and downvotes), so that case would have to be special cased; forgetting or mishandling special cases is a common source of bugs.
          $endgroup$
          – celtschk
          Dec 9 '18 at 22:54














          $begingroup$
          This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
          $endgroup$
          – Jair Taylor
          Dec 9 '18 at 23:04






          $begingroup$
          This would lead to some strange incentives - like if a post had many upvotes and no downvotes, you could give one downvote to hugely increase the total score.
          $endgroup$
          – Jair Taylor
          Dec 9 '18 at 23:04














          $begingroup$
          @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
          $endgroup$
          – celtschk
          Dec 9 '18 at 23:12




          $begingroup$
          @JairTaylor: A post that has no downvotes clearly is completely uncontroversial, don't you think? And if anyone wants to optimize the controversality rank, by the very definition of it a vote in minority direction would increase that rank more than a vote in majority direction, no matter which exact function you choose for ordering.
          $endgroup$
          – celtschk
          Dec 9 '18 at 23:12












          $begingroup$
          @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
          $endgroup$
          – AmbretteOrrisey
          Dec 9 '18 at 23:20






          $begingroup$
          @celtschk -- I admit it did slip from my mind that it's safe orderingwise not to take the square root, even over a two-variable function - obviously now you mention it. ¶ The zero i think wouldn't matter - depends how rudimentary the coding language is, whether you use the atn2 function as it's often called, whether the language 'accomodates' the division by zero with an infinity flag. ¶ And what was that someone's just said about possible pathological behaviours - part of the reason I suggested my rather complicated (but with a simple logic to it) formula is robustitude that way.
          $endgroup$
          – AmbretteOrrisey
          Dec 9 '18 at 23:20




















          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.




          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fmath.stackexchange.com%2fquestions%2f3033116%2fcontroversial-ordering%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

          Berounka

          Fiat S.p.A.

          Type 'String' is not a subtype of type 'int' of 'index'