#90 Thread-safe generation of random numbers

Next_Release
closed
None
1
2013-05-24
2012-11-10
andy_panov
No

Please find attached file with thread-safe generation of random numbers. More info is available in readme file inside archive.

PS I did not check if doxigen generates correct documentation from patched sources.

1 Attachments

Discussion

1 2 > >> (Page 1 of 2)
  • andy_panov
    andy_panov
    2012-11-12

    I've updated a patch code after the testing with SSE2 enabled. Unfortunately we still unable to enable SSE2 support permanently on msvc since it has problems with data alignment in thread-local storage.

     
    Attachments
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-14

    I have attached a code review for your first patch (patch.zip). Please have a look and comment. Another issue is that cmake file should be modified in order to compile with omp enabled. For gcc you need to specify -fopenmp command line parameter, not sure how this is done in Visual Studio. Also tests have to be run on as many platforms as possible.

     
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-14

    • assigned_to: Bogdan Cristea
     
  • andy_panov
    andy_panov
    2012-11-14

    Hi Bogdan,

    Thank you for the review and feedback. I'll go through the review items and fix the code accordingly. As for cmake support, I am not a cmake guru (frankly speaking, I have no idea how it works at all), but I think it should be optional to compile itpp with/without omp. I'll try to look into it, but I am not sure I can fix it - I am running windows and do not have gcc-linux environment set-up now.

    Andy.

     
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-14

    Hi
    Don't worry for cmake, I'll take care of that, but I need to know how to enable openmp with Visual Studio. Also, the tests should be able to tell if the openmp support has been enabled or not.
    regards
    Bogdan

     
  • andy_panov
    andy_panov
    2012-11-14

    MSVC Express does not support OMP without some unofficial tweaks, so I assume, you'll be running the full version or express version appropriately tweaked ;-) to support OMP (it is fully legal, there are a lot of descriptions for this tweak in the internet).

    MSVC compiler option responsible for the OMP support is "/openmp", so you just need to add it to other compiler options. You should also add VCOMP.lib (or VCOMPD.lib for Debug configurations) to the list of the libraries to build itpp with.

    The resulting library will have a dependencies on dynamic library vcomp100.dll (vcompd100d.dll for Debug configs) These libraries should be available on the path while running the application build with itpp.

     
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-14

    I'd put that into a text file (later to be transferred into IT++ documentation), also describing how VS express can be patched. On my side I'll use VS 2010 Premium.

     
  • andy_panov
    andy_panov
    2012-11-14

    You should not have any problems with Premium version at all. Just mark "Project->Properties->C/C++->Language->OpenMP support" in IDE and rebuild the library.

    The application using the itpp with omp support should be built with VCOMP.lib/VCOMPD.lib in order to resolve additional dependencies

     
  • andy_panov
    andy_panov
    2012-11-15

    Hi Bogdan,

    Here is the review comments:
    Review items:
    1.replace if(std::abs(r - ref_result1[i]) > tol)... with gtest macros
    -Done. I still can not use gtest macros inside parallel code though.

    2.Add header names with full path and angle brackets
    -Fixed.

    3.Fix doxygen comments
    -Fixed. (At least I hope so.)

    4.Spelling
    -Fixed

    5.Why are some template parameters (MASK32_1, MASK32_2, etc) removed?

    -DFMT masks were passed twice as template parameters - first time as 64-bit masks and
    second time - as 32-bits masks. Just to make a maintenance easier and less error-prone,
    (Actually, there WAS an error in one of typedefs) I removed 32-bit masks from template
    parameters and added static constants to define them from 64-bit values.
    This should not affect 32-bit code, since 32-bit compilers support 64-bit data types (I've tested it on 32-bit version of Windows).

    6.test case - multithreading with maximum number of threads
    -Fixed.

    Please find fixed files in attachment.

    Andy.

     
    Attachments
  • andy_panov
    andy_panov
    2012-11-15

    Sorry for the late corrections, but here is one more fix for possible problems with initialization order of global objects.

     
    Attachments
    • Bogdan Cristea
      Bogdan Cristea
      2012-11-16

      Hi

      I have started to integrate your patch, but it seems that many other unit tests are broken after integration. We could rewrite those tests, but I would prefer not to break source compatibility. So, could you have a look and try to fix this, so that all other tests pass with no modification ?

      Minor issues:
      - I don't see why you included omp.h in gtests/rng_core_test.cpp, but not in tests/rng_core_test.cpp. If possible, remove it.
      - in itpp/base/random_dsfmt.h, lines 333 and 334 a typename is missing (otherwise gcc compilation fails)
      - when writing unit tests, bear in mind that openmp might not be available, but the unit tests should still pass

      regards
      Bogdan

       
      Last edit: Bogdan Cristea 2012-11-16
  • andy_panov
    andy_panov
    2012-11-16

    Hi Bogdan

    some tests can be broken because of the different initial state of RNG (it just generates different sequence of numbers). I can either set the initial state to the old one (for the first initialized thread) or go through all the tests and add RNG_reset(4257U) to failed tests. Which approach is better?

    • I don't see why you included omp.h in gtests/rng_core_test.cpp, but not in tests/rng_core_test.cpp. If possible, remove it.
      I thought you do want not support old-style tests, so I did not introduce the latest changes to tests/rng_core_test.cpp. Sure, this file can be removed.

    • in itpp/base/random_dsfmt.h, lines 333 and 334 a typename is missing (otherwise gcc compilation fails)
      Are you talking about these lines? -
      Context::w128_t lung = status[N];
      do_recursion(&status[0], &status[0], &status[POS1], &lung);

    • please ensure that your unit tests pass when openmp is not installed and when it is installed
      I've just tested gtests/rng_core_test.cpp with and without omp - it passes.
     
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-16

    Hi
    - I think that source compatibility should be kept, so set the initial state to the old one for the first thread (some explanations in the doxygen help about this would be helpful)
    - The lines generating compilations errors are:
    typename Context::w128_t *status = _context.status;
    typename Context::w128_t lung = status[N];
    - we still have to use old-style tests, since the tests using gtest are not fully implemented. Providing both kind of tests is a good option for now.

    Issues not mentioned in my previous post:
    - please use astyle to format your sources and remove trailing whitespaces
    - I have renamed rng_core_test.cpp to rand_core_test.cpp since we already have a rand_test.cpp

     
  • andy_panov
    andy_panov
    2012-11-16

    Bogdan,

    OK, i'll try to set the initial state to the old one. I've changed an initial state for a couple of tests and they passed smoothly, so it is definitely initial state problem. I'll update the old-style rng_core_test.cpp in tests folder and rename the files, also i'll try to look what can i do with astyle on windows.

    Thanks for comments.
    Andy.

     
  • andy_panov
    andy_panov
    2012-11-16

    Bogdan, could you please suggest astyle options for itpp sources? As I noticed, tab indent should be equal to 2, but what else should I set?

     
  • andy_panov
    andy_panov
    2012-11-18

    Hi Bogdan,
    Here is the new patch:
    -default seed for the first thread is implemented. All tests are passed on my pc.
    -some comments regarding default seeds generation are added
    -typename is added to the couple of lines in random_dsfmt.h
    -old-style test is changed to reflect the gtest-style test. Both tests are doing the same thing now. omp.h is still included in both tests when you compile with omp enabled (in won't be included otherwise). It is impossible to remove it if you want MAXIMUM number of available threads in the thread pool. Otherwise omp will use SOME (library-machine dependent) number of threads to parallelize some of the loop iterations. It's impossible to set-query number of threads in compile time using omp pragmas only.
    -trailing whitespaces removed, tabs are replaced with spaces (2 spaces per tab)
    -test files renamed to rand_core_test.cpp

    Andy.

     
    Attachments
  • Bogdan Cristea
    Bogdan Cristea
    2012-11-25

    Hi Andy

    Sorry for the late reply. I have integrated your last changes locally, but the unit tests based on gtest no longer link:

    CMakeFiles/itpp_gtests.dir/bch_test.cpp.o: In function itpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047295u, 4│ 294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::DSFMT()': │ bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│ 49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EEC2Ev[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm│ 4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE│ C5Ev]+0xf): undefined reference toitpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047295u, 4294966079u, 1048063u│
    , 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::initialized' │
    CMakeFiles/itpp_gtests.dir/bch_test.cpp.o: In function itpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047295u, 4│ 294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::init_gen_rand(unsigned i│ nt)': │ bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│ 49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE13init_gen_randEj[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm449810│ 2069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm443291606232│ 1256576ELm1EE13init_gen_randEj]+0x16): undefined reference toitpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047│
    295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::status' │
    bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│
    49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE13init_gen_randEj[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm449810│
    2069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm443291606232│

    1256576ELm1EE13init_gen_randEj]
    +0xd5): undefined reference to itpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047│ 295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::idx' │ bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│ 49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE13init_gen_randEj[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm449810│ 2069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm443291606232│ 1256576ELm1EE13init_gen_randEj]+0x13d): undefined reference toitpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 104│
    7295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::sse2_param_mask'│
    bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│
    49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE13init_gen_randEj[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm449810│
    2069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm443291606232│

    1256576ELm1EE13init_gen_randEj]
    +0x143): undefined reference to itpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 104│ 7295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::initialized' │ bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│ 49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE13init_gen_randEj[_ZN4itpp5DSFMTILi19937ELi117ELi19ELm449810│ 2069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm443291606232│ 1256576ELm1EE13init_gen_randEj]+0x14d): undefined reference toitpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 104│
    7295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::last_seed' │
    CMakeFiles/itpp_gtests.dir/bch_test.cpp.o: In function itpp::DSFMT<19937, 117, 19, 4498102069230399ul, 4501400546508797ul, 1047295u, 4│ 294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::genrand_close1_open2()':│ bch_test.cpp:(.text._ZN4itpp5DSFMTILi19937ELi117ELi19ELm4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj42373611│ 49ELm10376655713290109737ELm4291106551315987578ELm4432916062321256576ELm1EE20genrand_close1_open2Ev[_ZN4itpp5DSFMTILi19937ELi117ELi19EL│ m4498102069230399ELm4501400546508797ELj1047295ELj4294966079ELj1048063ELj4237361149ELm10376655713290109737ELm4291106551315987578ELm44329│ 16062321256576ELm1EE20genrand_close1_open2Ev]+0xc): undefined reference toitpp::DSFMT<19937, 117, 19, 4498102069230399ul, 45014005465│
    08797ul, 1047295u, 4294966079u, 1048063u, 4237361149u, 10376655713290109737ul, 4291106551315987578ul, 4432916062321256576ul, 1ul>::stat│
    us'

    Also, there are a number of minor issues (mostly code refactoring): see attached file.

    regards
    Bogdan

     
    • andy_panov
      andy_panov
      2012-11-26

      Hi Bogdan,

      Here is the modified code and my comments on latest review.

      -ASSERT_TRUE<->ASSERT_EQ
      fixed

      -void RNG_get_state(ivec &state) declared twice.
      First declaration (line 130) is inside the comment block

      -static const unsigned int deafult_first_seed = 4257U;
      It should be fine with any modern compiler. Static constants of integral type can be initialized in class declaration. It is dated back to C++'99.
      Sure, it can be replaced with enum {default_first_seed = 4257}, but:
      1.it makes code a bit more unclear regarding explicit declaration.
      2.I would prefer to have default_first_seed unsigned, which is impossible with enum and C++'03-compartible compilers (enum constants are signed integers according to standard).

      -"deafult" typo
      Fixed

      -setters/getters renamed to make them consistent with other itpp code. Usually I use slightly different coding style. Sorry.

      -int<->uint conversions.
      All conversions changed to explicit ones. Historically, rng states were saved in ivec. I did not want to change this behavior. Unfortunately, itpp does not provide Vec<unsigned int> specialization.

      -"_first_seed_given is already false here, why setting again ?"
      It is a bug. Thank you!!! Changed to _first_seed_given = true;

      -"no need to use a temporary vector, st, use instead state.set_size(), then copy directly using state vector."
      Fixed

      -"the user might be confused by the fact that you save in the same place
      the states and some index. Please provide different output variables and
      explain what they mean"
      Index is the implementation detail of RNG state. I do not really want users to mess with it (basically, rng state is a cache and idx is used to fetch the next pseudo-random value from it). Also, RNG_get_state() interface was there for quite a long time and I do not want to change it. Otherwise I'll brake some users code. So, I've just added explicit conversions for code clarity. I would prefer to use reinterpret_cast, but stack overflow c++ gurus suggest static_cast (see http://stackoverflow.com/questions/1751346/interpret-signed-as-unsigned discussion).

      As for linking errors, I was unable to reproduce them with msvc. I've added bch_test.cpp to my gtest project and test passed without any errors. As a suggestion: bch_test.cpp uses old (not patched) random_dsfmt.h in your setup, since linker reports missing members from DSFMT class with 14 template parameters.
      Patched DSFMT definition uses 9 template parameters, so it is definitely related to inclusion of wrong headers.

      Thank you,
      Andy.

       
      • andy_panov
        andy_panov
        2012-11-26

        Oops, forgot an attachment...

         
        Last edit: andy_panov 2012-11-26
        Attachments
  • andy_panov
    andy_panov
    2012-11-26

    Here is one more patch to fix generation with default seed

     
    Attachments
  • Bogdan Cristea
    Bogdan Cristea
    2012-12-01

    patch merged into trunk branch. Please test using cmake compilation system (tested only on openSUSE 12.2 x86_64)

     
  • andy_panov
    andy_panov
    2012-12-02

    Bogdan,

    I've tried to build a solution with itpp tests on 32-bit windows 7 from rev 1916 library sources and library passed all tests.

    Then, I've installed cmake & acml 4.4.0 (previously i used atlas/lapack/fftw dlls built with cygwin) to test the build system, but it seems cmake can not find acml library (it should find the libraries as i learned from scripts in /cmake folder, but it does not). What should I do to point cmake to installed acml library?

     
  • Bogdan Cristea
    Bogdan Cristea
    2012-12-02

    Hi
    On Windows you need to set in the cmake GUI the following variables:

    BLA_VENDOR=ACML
    CMAKE_Fortran_COMPILER_ID=Intel

    These steps are described in the new documentation. Please let me know if you have other problems.
    Bogdan

     
    • andy_panov
      andy_panov
      2012-12-02

      It worked! Thank you. I used CMAKE_Fortran_COMPILER_ID=PGI since AMD recommends pgi builds on msvc/windows.

       
    • andy_panov
      andy_panov
      2012-12-02

      Hi,

      I've managed to build the library, but have some issues with INSTALL project. Here is the build log:

      ------ Build started: Project: INSTALL, Configuration: Release Win32 ------
      3> -- Install configuration: "Release"
      3> -- Installing: D:/Development/ITPP_1916/lib/itpp_static.lib
      3> -- Installing: D:/Development/ITPP_1916/include/itpp
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/cholesky.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/det.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/eigen.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/inv.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/lapack.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/ls_solve.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/lu.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/qr.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/schur.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/algebra/svd.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/array.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/bessel
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/bessel/bessel_internal.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/bessel.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/binary.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/binfile.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/blas.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/circular_buffer.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/converters.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/copy_vector.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/factory.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/fastmath.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/gf2mat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/help_functions.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/itassert.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/itcompat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/itfile.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/ittypes.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/mat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/matfunc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/elem_math.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/error.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/integration.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/log_exp.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/min_max.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/misc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/math/trig_hyp.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/operators.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/parser.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/random.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/random_dsfmt.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/smat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/sort.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/specmat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/stack.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/svec.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/timing.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/base/vec.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/CMakeFiles
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/bch.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/channel.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/channel_code.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/commfunc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/convcode.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/crc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/egolay.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/error_counters.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/exit.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/galois.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/hammcode.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/interleave.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/ldpc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/llr.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/modulator.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/modulator_nd.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/ofdm.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/pulse_shape.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/punct_convcode.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/rec_syst_conv_code.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/reedsolomon.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/sequence.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/siso.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/spread.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/stc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/comm/turbo.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/config_msvc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/cfix.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/cfixed.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fix.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fixed.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fix_base.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fix_factory.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fix_functions.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/fixed/fix_operators.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itbase.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itcomm.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itfixed.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itmex.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itoptim.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itprotocol.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itsignal.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itsrccode.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/itstat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/optim
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/optim/newton_search.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/events.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/front_drop_queue.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/packet.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/packet_channel.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/packet_generator.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/selective_repeat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/signals_slots.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/tcp.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/protocol/tcp_client_server.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/fastica.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/filter.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/filter_design.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/freq_filt.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/poly.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/resampling.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/sigfun.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/source.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/transforms.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/signal/window.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/audiofile.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/gmm.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/lpcfunc.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/pnm.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/vq.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/srccode/vqtrain.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/histogram.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/misc_stat.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/mog_diag.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/mog_diag_em.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/mog_diag_kmeans.h
      3> -- Installing: D:/Development/ITPP_1916/include/itpp/stat/mog_generic.h
      3> CMake Error at itpp/cmake_install.cmake:47 (FILE):
      3> file INSTALL cannot find "D:/Development/itpp/itpp_build/itpp/config.h".
      3> Call Stack (most recent call first):
      3> cmake_install.cmake:32 (INCLUDE)
      3>
      3>
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: The command "setlocal
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: C:\Portable\cmake-2.8.10.2-win32-x86\bin\cmake.exe -DBUILD_TYPE=Release -P cmake_install.cmake
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :cmEnd
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmEnd
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: endlocal & call :cmErrorLevel %errorlevel% & goto :cmDone
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmErrorLevel
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: exit /b %1
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :cmDone
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: if %errorlevel% neq 0 goto :VCEnd
      3>C:\Program Files\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(113,5): error MSB3073: :VCEnd" exited with code 1.

      One more thing - INSTALL is unable to install the library to the default location (c:\Program Files\ITPP) since it can not create ITPP folder without administrative rights.

       
1 2 > >> (Page 1 of 2)