<p>hanks for the pull request I think, this is the first step to get the GSOC 'Dataset and experimentation tools' project started.</p>

<p>I took a quick look over the pull request and have some comments:</p>

<ul>
<li>Instead of returning a tuple that contains the train and test data, I would go with references, to be more consistent with the other mlpack code that has functions like this.</li>
</ul>

<p><code>TrainTestSplit(const MatType&amp; input, MatType&amp; train, MatType&amp; test)</code></p>

<ul>
<li>You can create a random vector of indexes using armadillo instead of using an std::vector.</li>
</ul>

<p><code>'arma::Col&lt;size_t&gt; order = arma::shuffle(arma::linspace&lt;arma::Col&lt;size_t&gt; &gt;(0, (details::extractSize(input) - 1), details::extractSize(input)));</code>`</p>

<p>I guess this is just a preference of mine, because your code is absolutely fine. I've seen this code fragment a couple of times, so I guess I'm biased.</p>

<ul>
<li>Please use camel casing for all names. Capitalize class and method names.</li>
</ul>

<p>Another thing that crossed my mind is, can we modify the code in a why that it also works with data matrices with more than one dimension. Imagine a dataset of images with more than one channel per image.</p>

<p style="font-size:small;-webkit-text-size-adjust:none;color:#666;">&mdash;<br>Reply to this email directly or <a href="https://github.com/mlpack/mlpack/pull/523#issuecomment-188802055">view it on GitHub</a>.<img alt="" height="1" src="https://github.com/notifications/beacon/AJ4bFAVALDv5XKW9MK75kn7OArR9deusks5pnwS6gaJpZM4HhWF3.gif" width="1" /></p>
<div itemscope itemtype="http://schema.org/EmailMessage">
<div itemprop="action" itemscope itemtype="http://schema.org/ViewAction">
  <link itemprop="url" href="https://github.com/mlpack/mlpack/pull/523#issuecomment-188802055"></link>
  <meta itemprop="name" content="View Pull Request"></meta>
</div>
<meta itemprop="description" content="View this Pull Request on GitHub"></meta>
</div>