Compilation is right but 'Installation test' is wrong?

Issue #12 new
郑策
created an issue

Hi, Zoltan I runned the 'ITE_install.m'. The compilation is corrected. But the installation test is wrong and shows. Can you help me with that?1.png

Comments (3)

  1. Zoltán Szabó repo owner

    Hi,

    Thanks for the comment.

    It looks like either 'annmex' did not compile successfully for you, or it does not show up on your Matlab path.

    A few questions:

    1) What operating system (Linux/Windows/...), architecture (32-bit/64-bit), C++ compiler [I have good experience with gcc (Linux), Microsoft Visual C++ (Windows)] are you using?

    2) Do you see the mex file under 'code/shared/embedded/ann_wrapperM/@ ann/private'? For me (=64-bit Linux) it is called 'annmex.mexa64; the precise extension depends on your answer to '1)'.

    3) Does it help if you add to the Matlab path all the sub-folders of 'code'? You can do it by cd-ing to 'code' and issuing 'addpath(genpath(pwd))'. Then rerun the relevant test:

    Y = rand(3,100); Q = rand(3,200); knn(Q,Y,1);

    I only ask this question for safety reason, this operation is in 'ITE_install.m' so it should have been run by default.

    Best, Zoltan

    P.s.: You can also check out "https://bitbucket.org/szzoli/ite-in-python". It contains all the relevant estimators, and it only relies on the standard SciPy ecosystem. One of the reasons I created Python ITE is precisely to get rid of all external dependencies & compilations.

  2. 郑策 reporter

    Hi, Zoltan 1. It's windows 10 and I installed the 'MinGW64 Compiler (C++)'. During the installation process, it goes well at first. But when it comes to the ‘Installation test’, it goes wrong:2.png 2. I found two files: 'annmex.cpp' and 'annmex.h'. But no 'annmex.mexa64'. What do you mean answer '1'? 3. It does not help adding the path. Running the test goes well. But I want to measure the KL divergence, which is no possible right now. I ran the example 6 in your 'documentation', and it returns this: 1.png I think it is still 'annmex' missing. Thanks for your reply. I will try with the python.

  3. Zoltán Szabó repo owner
    • The ending is not always '.mexa64'; you can check yours by the recipe given at https://uk.mathworks.com/help/matlab/ref/mexext.html
    • You can try alternative C++ compilers on Windows, e.g. Microsoft Visual C++.
    • The relevant part of the kNN computation is in 'kNN_squared_distances.m'; you can also check the 'ANN' alternatives. They can be used in the same way as 'ANN' in KL divergence/... estimation.
    • On the longer term, I suggest you to use Python.

    Best,

    Zoltan

  4. Log in to comment