GithubHelp home page GithubHelp logo

clang-7 debugging error about cppad HOT 6 CLOSED

coin-or avatar coin-or commented on July 23, 2024
clang-7 debugging error

from cppad.

Comments (6)

bradbell avatar bradbell commented on July 23, 2024

Thanks for the bug report. It would help if you created an example.

Perhaps you could
cp bug/template.sh bug/check_simple_vector.sh
and then edit check_simple_vector.sh so that it demonstrates the bug
and I would then be able to reproduce the problem by executing
bug/check_simple_vector.sh

Perhaps check_simple_vector.sh would be very short and you could just past it into the comment window for this bug.

from cppad.

bradbell avatar bradbell commented on July 23, 2024

I added an example test clang compliation of checking simple vectors:
https://github.com/coin-or/CppAD/blob/master/bug/clang_simple.sh

It works fine with clang version 6.0.0 (tags/RELEASE_600/final)
Please try running
bug/clang_simple.sh
to see if it fails with clang 7

from cppad.

han-so1omon avatar han-so1omon commented on July 23, 2024

I'm going to try to debug this problem today and tomorrow. My suspicion is that the error is somehow expected behavior but with a strange error message. The stack trace seems related to this call, which does some type casting:

    CppAD::vector<CppAD::AD<double>> outputVar(n);
    outputVar = tiny_dnn::convertToAdVec<CppAD::AD<double>>(v->at(i).out);

    CppAD::Independent(outputVar);
   
    CppAD::vector<CppAD::AD<double>> objectiveVar(m);
    objectiveVar[0] = tiny_dnn::convertToAdVec<CppAD::AD<double>>(objective(outputVar,
        v->at(i).advantageValues, v->at(i).in,
        v->at(i).value, v->at(i).valueTarget, policy));
    
    CppAD::ADFun<double> surrogateVars(outputVar,objectiveVar); 

    v->at(i).objectiveValue = (double)objectiveVar[0];

    tiny_dnn::vec_t x(n);
    x = v->at(i).out;
    v->at(i).gradientValues = surrogateVars.Jacobian(x);

tiny_dnn::vec_t is: typedef std::vector<float_t, aligned_allocator<float_t, 64>> vec_t;

from cppad.

bradbell avatar bradbell commented on July 23, 2024

I have fixed the conversion warnings, in the Cppad source, generated by clang 6.0; see 08-13 on
https://coin-or.github.io/CppAD/doc/whats_new_18.htm#08-13

There are still warnings on some of the supporting software, like Ipopt and Adolc
(perhaps CppAD should treat these packages like eigen; i.e., give up on them fixing their warnings
and treat the corresponding include directories like system directories).

You can use clang to build the CppAD tests, that do not use adolc or ipopt, using:
bin/run_cmake.sh --no_adolc --no_ipopt --clang
cd build
make check

You can build and run one test using
bin/test_one.sh dir/file.cpp
where dir/file.cpp is the path the individual test.

from cppad.

bradbell avatar bradbell commented on July 23, 2024

Is this still a problem for you ? If not, would you please close this issue.

from cppad.

bradbell avatar bradbell commented on July 23, 2024

@han-so1omon I am closing this bug. If it is still a problem for you, please re-open it.

from cppad.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.