* installing to library ‘/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages’
* installing *source* package ‘fastkmedoids’ ...
** this is package ‘fastkmedoids’ version ‘1.7’
** package ‘fastkmedoids’ successfully unpacked and MD5 sums checked
** using staged installation
** libs
using C++ compiler: ‘g++-16 (Debian 16.2.0-1) 16.2.0’
make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpMwZvkI/R.INSTALL1c94ab69dfdaa3/fastkmedoids/src'
g++-16 -std=gnu++20 -I"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/include" -DNDEBUG  -I'/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/Rcpp/include' -I/usr/local/include -D_FORTIFY_SOURCE=3   -fpic  -g -O2 -Wall -pedantic -mtune=native   -c RcppExports.cpp -o RcppExports.o
g++-16 -std=gnu++20 -I"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/include" -DNDEBUG  -I'/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/Rcpp/include' -I/usr/local/include -D_FORTIFY_SOURCE=3   -fpic  -g -O2 -Wall -pedantic -mtune=native   -c pam.cpp -o pam.o
In file included from pam.cpp:22:
pam.h: In member function ‘int Xoroshiro128Random::nextInt(int)’:
pam.h:58:55: warning: suggest parentheses around ‘-’ in operand of ‘&’ [-Wparentheses]
   58 |         int r =  (int)((n & -n) == n ? nextLong() & n - 1 // power of two
      |                                                     ~~^~~
pam.h: In member function ‘std::vector<int> Xoroshiro128Random::randomSample(int, int)’:
pam.h:83:35: warning: comparison of integer expressions of different signedness: ‘std::unordered_map<int, bool>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   83 |         while (sample_dict.size() < samplesize) {
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
pam.h: At global scope:
pam.h:466:25: warning: ‘virtual Assignment& Assignment::operator=(const Assignment&)’ was hidden [-Woverloaded-virtual=]
  466 |     virtual Assignment& operator=(const Assignment& other);
      |                         ^~~~~~~~
pam.h:534:7: note:   by ‘FastAssignment& FastAssignment::operator=(const FastAssignment&)’
  534 | class FastAssignment : public Assignment
      |       ^~~~~~~~~~~~~~
pam.cpp: In member function ‘double LAB::getMinDist(int, std::vector<int>&, std::vector<double>&)’:
pam.cpp:133:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  133 |         for (int i=0; i<medids.size(); ++i) {
      |                       ~^~~~~~~~~~~~~~
pam.cpp: In member function ‘virtual std::vector<int> LAB::run(const std::vector<int>&, int)’:
pam.cpp:167:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  167 |             for (int j=0; j<tempd.size(); ++j) tempd[j] = DBL_MIN;
      |                           ~^~~~~~~~~~~~~
pam.cpp:192:25: warning: comparison of integer expressions of different signedness: ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  192 |     while(medids.size() < k) {
      |           ~~~~~~~~~~~~~~^~~
pam.cpp:204:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  204 |             for (int j=0; j<tempd.size(); ++j) tempd[j] = DBL_MIN;
      |                           ~^~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double PAM::assignToNearestCluster(std::vector<int>&)’:
pam.cpp:375:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  375 |         for (int j=0; j<means.size(); ++j) {
      |                       ~^~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double FastPAM::run(std::vector<int>&, int)’:
pam.cpp:449:9: warning: variable ‘fastswaps’ set but not used [-Wunused-but-set-variable=]
  449 |     int fastswaps = 0; // For statistics
      |         ^~~~~~~~~
pam.cpp: In member function ‘void FastPAM::findBestSwaps(std::vector<int>&, std::vector<int>&, std::vector<double>&, std::vector<double>&)’:
pam.cpp:523:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘long unsigned int’} [-Wsign-compare]
  523 |         for (int j=0; j<n_medoids; ++j) cost[j] = -nearest[h];
      |                       ~^~~~~~~~~~
pam.cpp:528:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  528 |         for(int i = 0; i < cost.size(); i++) {
      |                        ~~^~~~~~~~~~~~~
pam.cpp: In member function ‘virtual void FastPAM::computeReassignmentCost(int, std::vector<double>&)’:
pam.cpp:567:37: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  567 |             for(int pi = pj + 1; pi < cost.size(); pi++) {
      |                                  ~~~^~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double FastPAM::assignToNearestCluster(std::vector<int>&)’:
pam.cpp:609:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  609 |         for (int h=0; h< means.size(); ++h) {
      |                       ~^~~~~~~~~~~~~~
pam.cpp: In member function ‘int FastPAM::argmin(const std::vector<double>&)’:
pam.cpp:643:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<double>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  643 |     for(int i = 0; i < best.size(); i++) {
      |                    ~~^~~~~~~~~~~~~
pam.cpp: In member function ‘int FastPAM::updateSecondNearest(int, std::vector<int>&, int, double, int)’:
pam.cpp:720:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  720 |     for (int i=0; i<medoids.size(); ++i) {
      |                   ~^~~~~~~~~~~~~~~
pam.cpp: In static member function ‘static std::vector<int> PAMUtils::randomSample(Xoroshiro128Random&, int, int, const std::vector<int>&)’:
pam.cpp:744:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  744 |     for (int i=0; i<previous.size(); ++i) {
      |                   ~^~~~~~~~~~~~~~~~
pam.cpp:752:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  752 |     for (int i=0; i<rest_rnds.size(); ++i) {
      |                   ~^~~~~~~~~~~~~~~~~
pam.cpp:760:28: warning: comparison of integer expressions of different signedness: ‘std::unordered_map<int, bool>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  760 |     if (sample_dict.size() < samplesize) {
      |         ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
pam.cpp:765:58: warning: comparison of integer expressions of different signedness: ‘std::unordered_map<int, bool>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
  765 |         for (int i=0; i<samplesize && sample_dict.size() < samplesize; ++i) {
      |                                       ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
pam.cpp: In member function ‘virtual double CLARA::run()’:
pam.cpp:826:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  826 |             for (int k=0; k<bestmedoids.size(); ++k ) {
      |                           ~^~~~~~~~~~~~~~~~~~~
pam.cpp: In member function ‘double CLARA::assignRemainingToNearestCluster(std::vector<int>&, std::vector<int>&, std::vector<int>&, std::vector<int>&)’:
pam.cpp:848:20: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  848 |     for (int j=0; j<r_assignment.size(); ++j) {
      |                   ~^~~~~~~~~~~~~~~~~~~~
pam.cpp:860:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  860 |         for (int i=0; i<means.size(); ++i) {
      |                       ~^~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double FastCLARA::run()’:
pam.cpp:920:28: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
  920 |             for (int k=0; k<bestmedoids.size(); ++k ) {
      |                           ~^~~~~~~~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double Assignment::recompute(int, int, double, int, double)’:
pam.cpp:1123:22: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1123 |     for(int i = 0; i < medoids.size(); i++) {
      |                    ~~^~~~~~~~~~~~~~~~
pam.cpp: In member function ‘virtual bool Assignment::hasMedoid(int)’:
pam.cpp:1161:24: warning: comparison of integer expressions of different signedness: ‘int’ and ‘std::vector<int>::size_type’ {aka ‘long unsigned int’} [-Wsign-compare]
 1161 |         for (int i=0; i<medoids.size(); ++i) {
      |                       ~^~~~~~~~~~~~~~~
pam.cpp: In member function ‘virtual double PAM::run(std::vector<int>&, int)’:
pam.cpp:345:30: warning: ‘bestid’ may be used uninitialized [-Wmaybe-uninitialized]
  345 |         medoids[bestcluster] =  bestid;
pam.cpp:314:9: note: ‘bestid’ was declared here
  314 |     int bestid;
      |         ^~~~~~
In file included from /usr/include/c++/16/bits/stl_iterator.h:78,
                 from /usr/include/c++/16/bits/stl_algobase.h:66,
                 from /usr/include/c++/16/bits/stl_tree.h:65,
                 from /usr/include/c++/16/map:64,
                 from pam.cpp:14:
In function ‘constexpr _Tp* std::construct_at(_Tp*, _Args&& ...) [with _Tp = int; _Args = {const int&}]’,
    inlined from ‘static constexpr void std::allocator_traits<std::allocator<_Up> >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = int; _Args = {const int&}; _Tp = int]’ at /usr/include/c++/16/bits/alloc_traits.h:716:21,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::_M_realloc_append(_Args&& ...) [with _Args = {const int&}; _Tp = int; _Alloc = std::allocator<int>]’ at /usr/include/c++/16/bits/vector.tcc:594:26,
    inlined from ‘constexpr void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = int; _Alloc = std::allocator<int>]’ at /usr/include/c++/16/bits/stl_vector.h:1417:21,
    inlined from ‘virtual std::vector<int> BUILD::run(const std::vector<int>&, int)’ at pam.cpp:63:25:
/usr/include/c++/16/bits/stl_construct.h:110:16: warning: ‘bestid’ may be used uninitialized [-Wmaybe-uninitialized]
  110 |         return ::new(__loc) _Tp(std::forward<_Args>(__args)...);
      |                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
pam.cpp: In member function ‘virtual std::vector<int> BUILD::run(const std::vector<int>&, int)’:
pam.cpp:43:9: note: ‘bestid’ was declared here
   43 |     int bestid;
      |         ^~~~~~
g++-16 -std=gnu++20 -I"/home/hornik/tmp/R.check/r-patched-gcc/Work/build/include" -DNDEBUG  -I'/home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/Rcpp/include' -I/usr/local/include -D_FORTIFY_SOURCE=3   -fpic  -g -O2 -Wall -pedantic -mtune=native   -c rcpp_fastkmedoids.cpp -o rcpp_fastkmedoids.o
In file included from rcpp_fastkmedoids.cpp:19:
pam.h: In member function ‘int Xoroshiro128Random::nextInt(int)’:
pam.h:58:55: warning: suggest parentheses around ‘-’ in operand of ‘&’ [-Wparentheses]
   58 |         int r =  (int)((n & -n) == n ? nextLong() & n - 1 // power of two
      |                                                     ~~^~~
pam.h: In member function ‘std::vector<int> Xoroshiro128Random::randomSample(int, int)’:
pam.h:83:35: warning: comparison of integer expressions of different signedness: ‘std::unordered_map<int, bool>::size_type’ {aka ‘long unsigned int’} and ‘int’ [-Wsign-compare]
   83 |         while (sample_dict.size() < samplesize) {
      |                ~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~
pam.h: At global scope:
pam.h:466:25: warning: ‘virtual Assignment& Assignment::operator=(const Assignment&)’ was hidden [-Woverloaded-virtual=]
  466 |     virtual Assignment& operator=(const Assignment& other);
      |                         ^~~~~~~~
pam.h:534:7: note:   by ‘FastAssignment& FastAssignment::operator=(const FastAssignment&)’
  534 | class FastAssignment : public Assignment
      |       ^~~~~~~~~~~~~~
g++-16 -std=gnu++20 -shared -L/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib -Wl,-O1 -o fastkmedoids.so RcppExports.o pam.o rcpp_fastkmedoids.o -L/home/hornik/tmp/R.check/r-patched-gcc/Work/build/lib -lR
make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpMwZvkI/R.INSTALL1c94ab69dfdaa3/fastkmedoids/src'
make[1]: Entering directory '/home/hornik/tmp/scratch/RtmpMwZvkI/R.INSTALL1c94ab69dfdaa3/fastkmedoids/src'
make[1]: Leaving directory '/home/hornik/tmp/scratch/RtmpMwZvkI/R.INSTALL1c94ab69dfdaa3/fastkmedoids/src'
installing to /home/hornik/tmp/R.check/r-patched-gcc/Work/build/Packages/00LOCK-fastkmedoids/00new/fastkmedoids/libs
** R
** byte-compile and prepare package for lazy loading
** help
*** installing help indices
  converting help for package ‘fastkmedoids’
    finding HTML links ... done
    KmedoidsResult-class                    html  
    fastclara                               html  
    fastclarans                             html  
    fastkmedoids-package                    html  
    fastpam                                 html  
    pam                                     html  
** building package indices
** testing if installed package can be loaded from temporary location
** checking absolute paths in shared objects and dynamic libraries
** testing if installed package can be loaded from final location
** testing if installed package keeps a record of temporary installation path
* DONE (fastkmedoids)