<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Issue 2463: [fund.ts] Incorrect complexity for sample() algorithm</title>
<meta property="og:title" content="Issue 2463: [fund.ts] Incorrect complexity for sample() algorithm">
<meta property="og:description" content="C++ library issue. Status: TS">
<meta property="og:url" content="https://cplusplus.github.io/LWG/issue2463.html">
<meta property="og:type" content="website">
<meta property="og:image" content="http://cplusplus.github.io/LWG/images/cpp_logo.png">
<meta property="og:image:alt" content="C++ logo">
<style>
  p {text-align:justify}
  li {text-align:justify}
  pre code.backtick::before { content: "`" }
  pre code.backtick::after { content: "`" }
  blockquote.note
  {
    background-color:#E0E0E0;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 1px;
    padding-bottom: 1px;
  }
  ins {background-color:#A0FFA0}
  del {background-color:#FFA0A0}
  table.issues-index { border: 1px solid; border-collapse: collapse; }
  table.issues-index th { text-align: center; padding: 4px; border: 1px solid; }
  table.issues-index td { padding: 4px; border: 1px solid; }
  table.issues-index td:nth-child(1) { text-align: right; }
  table.issues-index td:nth-child(2) { text-align: left; }
  table.issues-index td:nth-child(3) { text-align: left; }
  table.issues-index td:nth-child(4) { text-align: left; }
  table.issues-index td:nth-child(5) { text-align: center; }
  table.issues-index td:nth-child(6) { text-align: center; }
  table.issues-index td:nth-child(7) { text-align: left; }
  table.issues-index td:nth-child(5) span.no-pr { color: red; }
  @media (prefers-color-scheme: dark) {
     html {
        color: #ddd;
        background-color: black;
     }
     ins {
        background-color: #225522
     }
     del {
        background-color: #662222
     }
     a {
        color: #6af
     }
     a:visited {
        color: #6af
     }
     blockquote.note
     {
        background-color: rgba(255, 255, 255, .10)
     }
  }
</style>
</head>
<body>
<hr>
<p><em>This page is a snapshot from the LWG issues list, see the <a href="lwg-active.html">Library Active Issues List</a> for more information and the meaning of <a href="lwg-active.html#TS">TS</a> status.</em></p>
<h3 id="2463"><a href="lwg-defects.html#2463">2463</a>. [fund.ts] Incorrect complexity for <code>sample()</code> algorithm</h3>
<p><b>Section:</b> 10.3 <a href="https://cplusplus.github.io/fundamentals-ts/v1.html#alg.random.sample">[fund.ts::alg.random.sample]</a> <b>Status:</b> <a href="lwg-active.html#TS">TS</a>
 <b>Submitter:</b> Joe Gottman <b>Opened:</b> 2014-12-17 <b>Last modified:</b> 2017-07-30</p>
<p><b>Priority: </b>0
</p>
<p><b>View all issues with</b> <a href="lwg-status.html#TS">TS</a> status.</p>
<p><b>Discussion:</b></p>
<p><b>Addresses: fund.ts</b></p>
<p>
According to paragraph 10.1 of the Library Fundamentals 1 draft, the complexity of the new 
<code>std::experimental::sample</code> template function is &#x1d4aa;(<code>n</code>). Note that <code>n</code> is actually 
a parameter of this function, corresponding to the sample size. But both common algorithms for 
sampling, the selection algorithm and the reservoir algorithm, are linear with respect to the 
population size, which is often many orders of magnitude bigger than the sample size.
</p>

<p><i>[2015-02, Cologne]</i></p>

<p>
AM: I suggest we make this a DR against the Fundamentals TS.<br/> 
GR: Agreed, this is a no-brainer. 
</p>


<p id="res-2463"><b>Proposed resolution:</b></p>
<p>This wording is relative to N4335 in regard to fundamental-ts changes.</p>

<ol>
<li><p>Change 10.3 <a href="https://cplusplus.github.io/fundamentals-ts/v1.html#alg.random.sample">[fund.ts::alg.random.sample]</a> p5 to read:</p>

<blockquote>
<p>
-5- <i>Complexity</i>: &#x1d4aa;(<code><del>n</del><ins>last - first</ins></code>). 
</p>
</blockquote>
</li>
</ol>





</body>
</html>
