commit e4c8529305efc0167105dd422871384be056f009 Author: Ivan Date: Tue Jun 28 10:36:24 2022 +0300 v1 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ca15b82 --- /dev/null +++ b/.gitignore @@ -0,0 +1,10 @@ +*.pro +*.pro.user +*.pro.user* +build* +build-* +*.o +*.so +*.a +*.so.* +thirdparty/libzip-1.1.1 \ No newline at end of file diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..3cb3cd6 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "thirdparty/sse2neon"] + path = thirdparty/sse2neon + url = https://github.com/jratcliff63367/sse2neon.git diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..73f69e0 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml +# Editor-based HTTP Client requests +/httpRequests/ diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 0000000..a41b30b --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +DSO \ No newline at end of file diff --git a/.idea/dso.iml b/.idea/dso.iml new file mode 100644 index 0000000..f08604b --- /dev/null +++ b/.idea/dso.iml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..79b3c94 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..667288a --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..fbfbadb --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/CHANGELOG b/CHANGELOG new file mode 100644 index 0000000..9c011d7 --- /dev/null +++ b/CHANGELOG @@ -0,0 +1,9 @@ + + + +========= 16.11.2016 ========== +* Added Sample output wrapper IOWrapper/OutputWrapper/SampleOutputWrapper.h. +* Added extensive comments to IOWrapper/Output3DWrapper.h. +* Added support for multiple 3DOutputWrapper simulataneously. +* Added options "quiet=1" and "sampleoutput=1". +* Did some minor code cleaning. diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..2973f1c --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,135 @@ +SET(PROJECT_NAME DSO) + +PROJECT(${PROJECT_NAME}) +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) +#set(CMAKE_VERBOSE_MAKEFILE ON) + + +set(BUILD_TYPE Release) +#set(BUILD_TYPE RelWithDebInfo) + +set(EXECUTABLE_OUTPUT_PATH bin) +set(LIBRARY_OUTPUT_PATH lib) +set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake) + +# required libraries +find_package(SuiteParse REQUIRED) +find_package(Eigen3 REQUIRED) +find_package(Boost COMPONENTS system thread) + +# optional libraries +find_package(LibZip QUIET) +set(Pangolin_DIR "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src") +#find_package(Pangolin 0.2 QUIET) +find_package(Pangolin) +set(OpenCV_DIR "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build") +find_package(OpenCV) + +# flags +add_definitions("-DENABLE_SSE") +set(CMAKE_CXX_FLAGS + "${SSE_FLAGS} -O3 -g -std=c++0x -march=native" +# "${SSE_FLAGS} -O3 -g -std=c++0x -fno-omit-frame-pointer" +) + +if (MSVC) + set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHsc") +endif (MSVC) + +# Sources files +set(dso_SOURCE_FILES + ${PROJECT_SOURCE_DIR}/src/FullSystem/FullSystem.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/FullSystemOptimize.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/FullSystemOptPoint.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/FullSystemDebugStuff.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/FullSystemMarginalize.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/Residuals.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/CoarseTracker.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/CoarseInitializer.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/ImmaturePoint.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/HessianBlocks.cpp + ${PROJECT_SOURCE_DIR}/src/FullSystem/PixelSelector2.cpp + ${PROJECT_SOURCE_DIR}/src/OptimizationBackend/EnergyFunctional.cpp + ${PROJECT_SOURCE_DIR}/src/OptimizationBackend/AccumulatedTopHessian.cpp + ${PROJECT_SOURCE_DIR}/src/OptimizationBackend/AccumulatedSCHessian.cpp + ${PROJECT_SOURCE_DIR}/src/OptimizationBackend/EnergyFunctionalStructs.cpp + ${PROJECT_SOURCE_DIR}/src/util/settings.cpp + ${PROJECT_SOURCE_DIR}/src/util/Undistort.cpp + ${PROJECT_SOURCE_DIR}/src/util/globalCalib.cpp +) + + + +include_directories( + ${PROJECT_SOURCE_DIR}/src + ${PROJECT_SOURCE_DIR}/thirdparty/Sophus + ${PROJECT_SOURCE_DIR}/thirdparty/sse2neon + ${EIGEN3_INCLUDE_DIR} +) + + +# decide if we have pangolin +if (Pangolin_FOUND) + message("--- found PANGOLIN, compiling dso_pangolin library.") + include_directories( ${Pangolin_INCLUDE_DIRS} ) + set(dso_pangolin_SOURCE_FILES + ${PROJECT_SOURCE_DIR}/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp + ${PROJECT_SOURCE_DIR}/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp) + set(HAS_PANGOLIN 1) +else () + message("--- could not find PANGOLIN, not compiling dso_pangolin library.") + message(" this means there will be no 3D display / GUI available for dso_dataset.") + set(dso_pangolin_SOURCE_FILES ) + set(HAS_PANGOLIN 0) +endif () + +# decide if we have openCV +if (OpenCV_FOUND) + message("--- found OpenCV, compiling dso_opencv library.") + include_directories( ${OpenCV_INCLUDE_DIRS} ) + set(dso_opencv_SOURCE_FILES + ${PROJECT_SOURCE_DIR}/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp + ${PROJECT_SOURCE_DIR}/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp) + set(HAS_OPENCV 1) +else () + message("--- could not find OpenCV, not compiling dso_opencv library.") + message(" this means there will be no image display, and image read / load functionality.") + set(dso_opencv_SOURCE_FILES + ${PROJECT_SOURCE_DIR}/src/IOWrapper/ImageDisplay_dummy.cpp + ${PROJECT_SOURCE_DIR}/src/IOWrapper/ImageRW_dummy.cpp) + set(HAS_OPENCV 0) +endif () + +# decide if we have ziplib. +if (LIBZIP_LIBRARY) + message("--- found ziplib (${LIBZIP_VERSION}), compiling with zip capability.") + add_definitions(-DHAS_ZIPLIB=1) + include_directories( ${LIBZIP_INCLUDE_DIR_ZIP} ${LIBZIP_INCLUDE_DIR_ZIPCONF} ) +else() + message("--- not found ziplib (${LIBZIP_LIBRARY}), compiling without zip capability.") + set(LIBZIP_LIBRARY "") +endif() + + +# compile main library. +include_directories( ${CSPARSE_INCLUDE_DIR} ${CHOLMOD_INCLUDE_DIR}) +add_library(dso ${dso_SOURCE_FILES} ${dso_opencv_SOURCE_FILES} ${dso_pangolin_SOURCE_FILES}) + +#set_property( TARGET dso APPEND_STRING PROPERTY COMPILE_FLAGS -Wall ) + + +if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin") # OSX + set(BOOST_THREAD_LIBRARY boost_thread-mt) +else() + set(BOOST_THREAD_LIBRARY boost_thread) +endif() + +# build main executable (only if we have both OpenCV and Pangolin) +if (OpenCV_FOUND AND Pangolin_FOUND) + message("--- compiling dso_dataset.") + add_executable(dso_dataset ${PROJECT_SOURCE_DIR}/src/main_dso_pangolin.cpp ) + target_link_libraries(dso_dataset dso boost_system cxsparse ${BOOST_THREAD_LIBRARY} ${LIBZIP_LIBRARY} ${Pangolin_LIBRARIES} ${OpenCV_LIBS}) +else() + message("--- not building dso_dataset, since either don't have openCV or Pangolin.") +endif() + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..ef7e7ef --- /dev/null +++ b/LICENSE @@ -0,0 +1,674 @@ +GNU GENERAL PUBLIC LICENSE + Version 3, 29 June 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU General Public License is a free, copyleft license for +software and other kinds of works. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +the GNU General Public License is intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. We, the Free Software Foundation, use the +GNU General Public License for most of our software; it applies also to +any other work released this way by its authors. You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + To protect your rights, we need to prevent others from denying you +these rights or asking you to surrender the rights. Therefore, you have +certain responsibilities if you distribute copies of the software, or if +you modify it: responsibilities to respect the freedom of others. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must pass on to the recipients the same +freedoms that you received. You must make sure that they, too, receive +or can get the source code. And you must show them these terms so they +know their rights. + + Developers that use the GNU GPL protect your rights with two steps: +(1) assert copyright on the software, and (2) offer you this License +giving you legal permission to copy, distribute and/or modify it. + + For the developers' and authors' protection, the GPL clearly explains +that there is no warranty for this free software. For both users' and +authors' sake, the GPL requires that modified versions be marked as +changed, so that their problems will not be attributed erroneously to +authors of previous versions. + + Some devices are designed to deny users access to install or run +modified versions of the software inside them, although the manufacturer +can do so. This is fundamentally incompatible with the aim of +protecting users' freedom to change the software. The systematic +pattern of such abuse occurs in the area of products for individuals to +use, which is precisely where it is most unacceptable. Therefore, we +have designed this version of the GPL to prohibit the practice for those +products. If such problems arise substantially in other domains, we +stand ready to extend this provision to those domains in future versions +of the GPL, as needed to protect the freedom of users. + + Finally, every program is threatened constantly by software patents. +States should not allow patents to restrict development and use of +software on general-purpose computers, but in those that do, we wish to +avoid the special danger that patents applied to a free program could +make it effectively proprietary. To prevent this, the GPL assures that +patents cannot be used to render the program non-free. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Use with the GNU Affero General Public License. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU Affero General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the special requirements of the GNU Affero General Public License, +section 13, concerning interaction through a network will apply to the +combination as such. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + {one line to give the program's name and a brief idea of what it does.} + Copyright (C) {year} {name of author} + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If the program does terminal interaction, make it output a short +notice like this when it starts in an interactive mode: + + {project} Copyright (C) {year} {fullname} + This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, your program's commands +might be different; for a GUI interface, you would use an "about box". + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU GPL, see +. + + The GNU General Public License does not permit incorporating your program +into proprietary programs. If your program is a subroutine library, you +may consider it more useful to permit linking proprietary applications with +the library. If this is what you want to do, use the GNU Lesser General +Public License instead of this License. But first, please read +. diff --git a/README.md b/README.md new file mode 100644 index 0000000..50a9f59 --- /dev/null +++ b/README.md @@ -0,0 +1,281 @@ +# DSO: Direct Sparse Odometry + +For more information see +[https://vision.in.tum.de/dso](https://vision.in.tum.de/dso) + +### 1. Related Papers +* **Direct Sparse Odometry**, *J. Engel, V. Koltun, D. Cremers*, In arXiv:1607.02565, 2016 +* **A Photometrically Calibrated Benchmark For Monocular Visual Odometry**, *J. Engel, V. Usenko, D. Cremers*, In arXiv:1607.02555, 2016 + +Get some datasets from [https://vision.in.tum.de/mono-dataset](https://vision.in.tum.de/mono-dataset) . + +### 2. Installation + + git clone https://github.com/JakobEngel/dso.git + +#### 2.1 Required Dependencies + +##### suitesparse and eigen3 (required). +Required. Install with + + sudo apt-get install libsuitesparse-dev libeigen3-dev libboost-all-dev + + + +#### 2.2 Optional Dependencies + +##### OpenCV (highly recommended). +Used to read / write / display images. +OpenCV is **only** used in `IOWrapper/OpenCV/*`. Without OpenCV, respective +dummy functions from `IOWrapper/*_dummy.cpp` will be compiled into the library, which do nothing. +The main binary will not be created, since it is useless if it can't read the datasets from disk. +Feel free to implement your own version of these functions with your prefered library, +if you want to stay away from OpenCV. + +Install with + + sudo apt-get install libopencv-dev + + +##### Pangolin (highly recommended). +Used for 3D visualization & the GUI. +Pangolin is **only** used in `IOWrapper/Pangolin/*`. You can compile without Pangolin, +however then there is not going to be any visualization / GUI capability. +Feel free to implement your own version of `Output3DWrapper` with your preferred library, +and use it instead of `PangolinDSOViewer` + +Install from [https://github.com/stevenlovegrove/Pangolin](https://github.com/stevenlovegrove/Pangolin) + + +##### ziplib (recommended). +Used to read datasets with images as .zip, as e.g. in the TUM monoVO dataset. +You can compile without this, however then you can only read images directly (i.e., have +to unzip the dataset image archives before loading them). + + sudo apt-get install zlib1g-dev + cd dso/thirdparty + tar -zxvf libzip-1.1.1.tar.gz + cd libzip-1.1.1/ + ./configure + make + sudo make install + sudo cp lib/zipconf.h /usr/local/include/zipconf.h # (no idea why that is needed). + +##### sse2neon (required for ARM builds). +After cloning, just run `git submodule update --init` to include this. It translates Intel-native SSE functions to ARM-native NEON functions during the compilation process. + +#### 2.3 Build + + cd dso + mkdir build + cd build + cmake .. + make -j4 + +this will compile a library `libdso.a`, which can be linked from external projects. +It will also build a binary `dso_dataset`, to run DSO on datasets. However, for this +OpenCV and Pangolin need to be installed. + + + + + + +### 3 Usage +Run on a dataset from [https://vision.in.tum.de/mono-dataset](https://vision.in.tum.de/mono-dataset) using + + bin/dso_dataset \ + files=XXXXX/sequence_XX/images.zip \ + calib=XXXXX/sequence_XX/camera.txt \ + gamma=XXXXX/sequence_XX/pcalib.txt \ + vignette=XXXXX/sequence_XX/vignette.png \ + preset=0 \ + mode=0 + +See [https://github.com/JakobEngel/dso_ros](https://github.com/JakobEngel/dso_ros) for a minimal example on +how the library can be used from another project. It should be straight forward to implement extentions for +other camera drivers, to use DSO interactively without ROS. + + + +#### 3.1 Dataset Format. +The format assumed is that of [https://vision.in.tum.de/mono-dataset](https://vision.in.tum.de/mono-dataset). +However, it should be easy to adapt it to your needs, if required. The binary is run with: + +- `files=XXX` where XXX is either a folder or .zip archive containing images. They are sorted *alphabetically*. for .zip to work, need to comiple with ziplib support. + +- `gamma=XXX` where XXX is a gamma calibration file, containing a single row with 256 values, mapping [0..255] to the respective irradiance value, i.e. containing the *discretized inverse response function*. See TUM monoVO dataset for an example. + +- `vignette=XXX` where XXX is a monochrome 16bit or 8bit image containing the vignette as pixelwise attenuation factors. See TUM monoVO dataset for an example. + +- `calib=XXX` where XXX is a geometric camera calibration file. See below. + + + +##### Geometric Calibration File. + + +###### Calibration File for Pre-Rectified Images + + Pinhole fx fy cx cy 0 + in_width in_height + "crop" / "full" / "none" / "fx fy cx cy 0" + out_width out_height + +###### Calibration File for FOV camera model: + + FOV fx fy cx cy omega + in_width in_height + "crop" / "full" / "fx fy cx cy 0" + out_width out_height + + +###### Calibration File for Radio-Tangential camera model + + RadTan fx fy cx cy k1 k2 r1 r2 + in_width in_height + "crop" / "full" / "fx fy cx cy 0" + out_width out_height + + +###### Calibration File for Equidistant camera model + + EquiDistant fx fy cx cy k1 k2 k3 k4 + in_width in_height + "crop" / "full" / "fx fy cx cy 0" + out_width out_height + + +(note: for backwards-compatibility, "Pinhole", "FOV" and "RadTan" can be omitted). See the respective +`::distortCoordinates` implementation in `Undistorter.cpp` for the exact corresponding projection function. +Furthermore, it should be straight-forward to implement other camera models. + + +**Explanation:** + Across all models `fx fy cx cy` denotes the focal length / principal point **relative to the image width / height**, +i.e., DSO computes the camera matrix `K` as + + K(0,0) = width * fx + K(1,1) = height * fy + K(0,2) = width * cx - 0.5 + K(1,2) = height * cy - 0.5 +For backwards-compatibility, if the given `cx` and `cy` are larger than 1, DSO assumes all four parameters to directly be the entries of K, +and ommits the above computation. + + +**That strange "0.5" offset:** + Internally, DSO uses the convention that the pixel at integer position (1,1) in the image, i.e. the pixel in the second row and second column, +contains the integral over the continuous image function from (0.5,0.5) to (1.5,1.5), i.e., approximates a "point-sample" of the +continuous image functions at (1.0, 1.0). +In turn, there seems to be no unifying convention across calibration toolboxes whether the pixel at integer position (1,1) +contains the integral over (0.5,0.5) to (1.5,1.5), or the integral over (1,1) to (2,2). The above conversion assumes that +the given calibration in the calibration file uses the latter convention, and thus applies the -0.5 correction. +Note that this also is taken into account when creating the scale-pyramid (see `globalCalib.cpp`). + + +**Rectification modes:** + For image rectification, DSO either supports rectification to a user-defined pinhole model (`fx fy cx cy 0`), +or has an option to automatically crop the image to the maximal rectangular, well-defined region (`crop`). +`full` will preserve the full original field of view and is mainly meant for debugging - it will create black +borders in undefined image regions, which DSO does NOT ignore (i.e., this option will generate additional +outliers along those borders, and corrupt the scale-pyramid). + + + + +#### 3.2 Commandline Options +there are many command line options available, see `main_dso_pangolin.cpp`. some examples include +- `mode=X`: + - `mode=0` use iff a photometric calibration exists (e.g. TUM monoVO dataset). + - `mode=1` use iff NO photometric calibration exists (e.g. ETH EuRoC MAV dataset). + - `mode=2` use iff images are not photometrically distorted (e.g. synthetic datasets). + +- `preset=X` + - `preset=0`: default settings (2k pts etc.), not enforcing real-time execution + - `preset=1`: default settings (2k pts etc.), enforcing 1x real-time execution + - `preset=2`: fast settings (800 pts etc.), not enforcing real-time execution. WARNING: overwrites image resolution with 424 x 320. + - `preset=3`: fast settings (800 pts etc.), enforcing 5x real-time execution. WARNING: overwrites image resolution with 424 x 320. + +- `nolog=1`: disable logging of eigenvalues etc. (good for performance) +- `reverse=1`: play sequence in reverse +- `nogui=1`: disable gui (good for performance) +- `nomt=1`: single-threaded execution +- `prefetch=1`: load into memory & rectify all images before running DSO. +- `start=X`: start at frame X +- `end=X`: end at frame X +- `speed=X`: force execution at X times real-time speed (0 = not enforcing real-time) +- `save=1`: save lots of images for video creation +- `quiet=1`: disable most console output (good for performance) +- `sampleoutput=1`: register a "SampleOutputWrapper", printing some sample output data to the commandline. meant as example. + + + +#### 3.3 Runtime Options +Some parameters can be reconfigured from the Pangolin GUI at runtime. Feel free to add more. + + +#### 3.4 Accessing Data. +The easiest way to access the Data (poses, pointclouds, etc.) computed by DSO (in real-time) +is to create your own `Output3DWrapper`, and add it to the system, i.e., to `FullSystem.outputWrapper`. +The respective member functions will be called on various occations (e.g., when a new KF is created, +when a new frame is tracked, etc.), exposing the relevant data. + +See `IOWrapper/Output3DWrapper.h` for a description of the different callbacks available, +and some basic notes on where to find which data in the used classes. +See `IOWrapper/OutputWrapper/SampleOutputWrapper.h` for an example implementation, which just prints +some example data to the commandline (use the options `sampleoutput=1 quiet=1` to see the result). + +Note that these callbacks block the respective DSO thread, thus expensive computations should not +be performed in the callbacks, a better practice is to just copy over / publish / output the data you need. + +Per default, `dso_dataset` writes all keyframe poses to a file `result.txt` at the end of a sequence, +using the TUM RGB-D / TUM monoVO format ([timestamp x y z qx qy qz qw] of the cameraToWorld transformation). + + + +#### 3.5 Notes +- the initializer is very slow, and does not work very reliably. Maybe replace by your own way to get an initialization. +- see [https://github.com/JakobEngel/dso_ros](https://github.com/JakobEngel/dso_ros) for a minimal example project on how to use the library with your own input / output procedures. +- see `settings.cpp` for a LOT of settings parameters. Most of which you shouldn't touch. +- `setGlobalCalib(...)` needs to be called once before anything is initialized, and globally sets the camera intrinsics and video resolution for convenience. probably not the most portable way of doing this though. + + + + +### 4 General Notes for Good Results + +#### Accurate Geometric Calibration +- Please have a look at Chapter 4.3 from the DSO paper, in particular Figure 20 (Geometric Noise). Direct approaches suffer a LOT from bad geometric calibrations: Geometric distortions of 1.5 pixel already reduce the accuracy by factor 10. + +- **Do not use a rolling shutter camera**, the geometric distortions from a rolling shutter camera are huge. Even for high frame-rates (over 60fps). + +- Note that the reprojection RMSE reported by most calibration tools is the reprojection RMSE on the "training data", i.e., overfitted to the the images you used for calibration. If it is low, that does not imply that your calibration is good, you may just have used insufficient images. + +- try different camera / distortion models, not all lenses can be modelled by all models. + + +#### Photometric Calibration +Use a photometric calibration (e.g. using [https://github.com/tum-vision/mono_dataset_code](https://github.com/tum-vision/mono_dataset_code) ). + +#### Translation vs. Rotation +DSO cannot do magic: if you rotate the camera too much without translation, it will fail. Since it is a pure visual odometry, it cannot recover by re-localizing, or track through strong rotations by using previously triangulated geometry.... everything that leaves the field of view is marginalized immediately. + + +#### Computation Speed +If your computer is slow, try to use "fast" settings. Or run DSO on a dataset, without enforcing real-time. + + +#### Initialization +The current initializer is not very good... it is very slow and occasionally fails. +Make sure, the initial camera motion is slow and "nice" (i.e., a lot of translation and +little rotation) during initialization. +Possibly replace by your own initializer. + + +### 5 License +DSO was developed at the Technical University of Munich and Intel. +The open-source version is licensed under the GNU General Public License +Version 3 (GPLv3). +For commercial purposes, we also offer a professional version, see +[http://vision.in.tum.de/dso](http://vision.in.tum.de/dso) for +details. diff --git a/cmake-build-debug/CMakeCache.txt b/cmake-build-debug/CMakeCache.txt new file mode 100644 index 0000000..02fc499 --- /dev/null +++ b/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,545 @@ +# This is the CMakeCache file. +# For build in directory: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug +# It was generated by CMake: /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a library. +AMD_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libamd.so + +//The directory containing a CMake configuration file for Boost. +Boost_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0 + +//Path to a file. +Boost_INCLUDE_DIR:PATH=/usr/include + +Boost_SYSTEM_LIBRARY_RELEASE:STRING=/usr/lib/x86_64-linux-gnu/libboost_system.so.1.71.0 + +Boost_THREAD_LIBRARY_RELEASE:STRING=/usr/lib/x86_64-linux-gnu/libboost_thread.so.1.71.0 + +//Path to a library. +CAMD_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcamd.so + +//Path to a file. +CHOLMOD_INCLUDE_DIR:PATH=/usr/include/suitesparse + +//Path to a library. +CHOLMOD_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcholmod.so + +//Path to a program. +CMAKE_ADDR2LINE:FILEPATH=/usr/bin/addr2line + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j4 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-9 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-9 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//No help, variable specified on the command line. +CMAKE_DEPENDS_USE_COMPILER:UNINITIALIZED=FALSE + +//Path to a program. +CMAKE_DLLTOOL:FILEPATH=CMAKE_DLLTOOL-NOTFOUND + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL= + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=DSO + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Path to a program. +CMAKE_READELF:FILEPATH=/usr/bin/readelf + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a file. +CSPARSE_INCLUDE_DIR:PATH=/usr/include/suitesparse + +//Path to a library. +CSPARSE_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libcxsparse.so + +//Value Computed by CMake +DSO_BINARY_DIR:STATIC=/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug + +//Value Computed by CMake +DSO_SOURCE_DIR:STATIC=/home/ivan/ivan/git/work_drivecast2/SLAM/dso + +//Path to a file. +EIGEN3_INCLUDE_DIR:PATH=/usr/include/eigen3 + +//Path to a file. +LIBZIP_INCLUDE_DIR_ZIP:PATH=/usr/local/include + +//Path to a file. +LIBZIP_INCLUDE_DIR_ZIPCONF:PATH=/usr/local/include + +//Path to a library. +LIBZIP_LIBRARY:FILEPATH=/usr/local/lib/libzip.so + +//Version number of libzip +LIBZIP_VERSION:STRING=1.1.1 + +//The directory containing a CMake configuration file for OpenCV. +OpenCV_DIR:PATH=/usr/local/share/OpenCV + +//pkg-config executable +PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config + +//The directory containing a CMake configuration file for Pangolin. +Pangolin_DIR:PATH=Pangolin_DIR-NOTFOUND + +//Path to a program. +ProcessorCount_cmd_nproc:FILEPATH=/usr/bin/nproc + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/usr/sbin/sysctl + +//Path to a library. +SUITESPARSECONFIG_LIBRARY:FILEPATH=/usr/lib/x86_64-linux-gnu/libsuitesparseconfig.so + +//The directory containing a CMake configuration file for boost_atomic. +boost_atomic_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_atomic-1.71.0 + +//The directory containing a CMake configuration file for boost_headers. +boost_headers_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0 + +//The directory containing a CMake configuration file for boost_system. +boost_system_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0 + +//The directory containing a CMake configuration file for boost_thread. +boost_thread_DIR:PATH=/usr/lib/x86_64-linux-gnu/cmake/boost_thread-1.71.0 + +//Path to a library. +pkgcfg_lib_PC_LIBZIP_z:FILEPATH=/usr/lib/x86_64-linux-gnu/libz.so + +//Path to a library. +pkgcfg_lib_PC_LIBZIP_zip:FILEPATH=/usr/local/lib/libzip.so + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: Boost_DIR +Boost_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_ADDR2LINE +CMAKE_ADDR2LINE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=20 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_DLLTOOL +CMAKE_DLLTOOL-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201710L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;9;__GNUC_MINOR__;3;__GNUC_PATCHLEVEL__;0;__VERSION__;"9.3.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1013;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570814527423731704357e+308L);__DBL_MIN__;((double)2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;((double)2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__HAVE_SPECULATION_SAFE_VALUE;1;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__CET__;3;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC__;1;__cplusplus;201402L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;9;__GNUC_MINOR__;3;__GNUC_PATCHLEVEL__;0;__VERSION__;"9.3.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;9;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__GXX_EXPERIMENTAL_CXX0X__;1;__cpp_binary_literals;201304;__cpp_hex_float;201603;__cpp_runtime_arrays;198712;__cpp_unicode_characters;200704;__cpp_raw_strings;200710;__cpp_unicode_literals;200710;__cpp_user_defined_literals;200809;__cpp_lambdas;200907;__cpp_range_based_for;200907;__cpp_static_assert;200410;__cpp_decltype;200707;__cpp_attributes;200809;__cpp_rvalue_reference;200610;__cpp_rvalue_references;200610;__cpp_variadic_templates;200704;__cpp_initializer_lists;200806;__cpp_delegating_constructors;200604;__cpp_nsdmi;200809;__cpp_inheriting_constructors;201511;__cpp_ref_qualifiers;200710;__cpp_alias_templates;200704;__cpp_return_type_deduction;201304;__cpp_init_captures;201304;__cpp_generic_lambdas;201304;__cpp_constexpr;201304;__cpp_decltype_auto;201304;__cpp_aggregate_nsdmi;201304;__cpp_variable_templates;201304;__cpp_digit_separators;201309;__cpp_sized_deallocation;201309;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1013;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570814527423731704357e+308L);__DBL_MIN__;double(2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;double(2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__HAVE_SPECULATION_SAFE_VALUE;1;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__CET__;3;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201710L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;9;__GNUC_MINOR__;3;__GNUC_PATCHLEVEL__;0;__VERSION__;"9.3.0";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1013;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__SCHAR_WIDTH__;8;__SHRT_WIDTH__;16;__INT_WIDTH__;32;__LONG_WIDTH__;64;__LONG_LONG_WIDTH__;64;__WCHAR_WIDTH__;32;__WINT_WIDTH__;32;__PTRDIFF_WIDTH__;64;__SIZE_WIDTH__;64;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__INTMAX_WIDTH__;64;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__SIG_ATOMIC_WIDTH__;32;__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST8_WIDTH__;8;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST16_WIDTH__;16;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST32_WIDTH__;32;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__INT_LEAST64_WIDTH__;64;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST8_WIDTH__;8;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST16_WIDTH__;64;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST32_WIDTH__;64;__INT_FAST64_MAX__;0x7fffffffffffffffL;__INT_FAST64_WIDTH__;64;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__INTPTR_WIDTH__;64;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__FLT_EVAL_METHOD_TS_18661_3__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859811704183484516925e+38F;__FLT_MIN__;1.17549435082228750796873653722224568e-38F;__FLT_EPSILON__;1.19209289550781250000000000000000000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092372958328991613e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570814527423731704357e+308L);__DBL_MIN__;((double)2.22507385850720138309023271733240406e-308L);__DBL_EPSILON__;((double)2.22044604925031308084726333618164062e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544176568792868221372e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502126385303097021e+4932L;__LDBL_MIN__;3.36210314311209350626267781732175260e-4932L;__LDBL_EPSILON__;1.08420217248550443400745280086994171e-19L;__LDBL_DENORM_MIN__;3.64519953188247460252840593361941982e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__FLT32_MANT_DIG__;24;__FLT32_DIG__;6;__FLT32_MIN_EXP__;(-125);__FLT32_MIN_10_EXP__;(-37);__FLT32_MAX_EXP__;128;__FLT32_MAX_10_EXP__;38;__FLT32_DECIMAL_DIG__;9;__FLT32_MAX__;3.40282346638528859811704183484516925e+38F32;__FLT32_MIN__;1.17549435082228750796873653722224568e-38F32;__FLT32_EPSILON__;1.19209289550781250000000000000000000e-7F32;__FLT32_DENORM_MIN__;1.40129846432481707092372958328991613e-45F32;__FLT32_HAS_DENORM__;1;__FLT32_HAS_INFINITY__;1;__FLT32_HAS_QUIET_NAN__;1;__FLT64_MANT_DIG__;53;__FLT64_DIG__;15;__FLT64_MIN_EXP__;(-1021);__FLT64_MIN_10_EXP__;(-307);__FLT64_MAX_EXP__;1024;__FLT64_MAX_10_EXP__;308;__FLT64_DECIMAL_DIG__;17;__FLT64_MAX__;1.79769313486231570814527423731704357e+308F64;__FLT64_MIN__;2.22507385850720138309023271733240406e-308F64;__FLT64_EPSILON__;2.22044604925031308084726333618164062e-16F64;__FLT64_DENORM_MIN__;4.94065645841246544176568792868221372e-324F64;__FLT64_HAS_DENORM__;1;__FLT64_HAS_INFINITY__;1;__FLT64_HAS_QUIET_NAN__;1;__FLT128_MANT_DIG__;113;__FLT128_DIG__;33;__FLT128_MIN_EXP__;(-16381);__FLT128_MIN_10_EXP__;(-4931);__FLT128_MAX_EXP__;16384;__FLT128_MAX_10_EXP__;4932;__FLT128_DECIMAL_DIG__;36;__FLT128_MAX__;1.18973149535723176508575932662800702e+4932F128;__FLT128_MIN__;3.36210314311209350626267781732175260e-4932F128;__FLT128_EPSILON__;1.92592994438723585305597794258492732e-34F128;__FLT128_DENORM_MIN__;6.47517511943802511092443895822764655e-4966F128;__FLT128_HAS_DENORM__;1;__FLT128_HAS_INFINITY__;1;__FLT128_HAS_QUIET_NAN__;1;__FLT32X_MANT_DIG__;53;__FLT32X_DIG__;15;__FLT32X_MIN_EXP__;(-1021);__FLT32X_MIN_10_EXP__;(-307);__FLT32X_MAX_EXP__;1024;__FLT32X_MAX_10_EXP__;308;__FLT32X_DECIMAL_DIG__;17;__FLT32X_MAX__;1.79769313486231570814527423731704357e+308F32x;__FLT32X_MIN__;2.22507385850720138309023271733240406e-308F32x;__FLT32X_EPSILON__;2.22044604925031308084726333618164062e-16F32x;__FLT32X_DENORM_MIN__;4.94065645841246544176568792868221372e-324F32x;__FLT32X_HAS_DENORM__;1;__FLT32X_HAS_INFINITY__;1;__FLT32X_HAS_QUIET_NAN__;1;__FLT64X_MANT_DIG__;64;__FLT64X_DIG__;18;__FLT64X_MIN_EXP__;(-16381);__FLT64X_MIN_10_EXP__;(-4931);__FLT64X_MAX_EXP__;16384;__FLT64X_MAX_10_EXP__;4932;__FLT64X_DECIMAL_DIG__;21;__FLT64X_MAX__;1.18973149535723176502126385303097021e+4932F64x;__FLT64X_MIN__;3.36210314311209350626267781732175260e-4932F64x;__FLT64X_EPSILON__;1.08420217248550443400745280086994171e-19F64x;__FLT64X_DENORM_MIN__;3.64519953188247460252840593361941982e-4951F64x;__FLT64X_HAS_DENORM__;1;__FLT64X_HAS_INFINITY__;1;__FLT64X_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__HAVE_SPECULATION_SAFE_VALUE;1;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__GCC_ASM_FLAG_OUTPUTS__;1;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__SEG_FS;1;__SEG_GS;1;__CET__;3;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Test CMAKE_HAVE_LIBC_PTHREAD +CMAKE_HAVE_LIBC_PTHREAD:INTERNAL= +//Have library pthreads +CMAKE_HAVE_PTHREADS_CREATE:INTERNAL= +//Have library pthread +CMAKE_HAVE_PTHREAD_CREATE:INTERNAL=1 +//Have include pthread.h +CMAKE_HAVE_PTHREAD_H:INTERNAL=1 +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/ivan/ivan/git/work_drivecast2/SLAM/dso +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_READELF +CMAKE_READELF-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/usr/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: EIGEN3_INCLUDE_DIR +EIGEN3_INCLUDE_DIR-ADVANCED:INTERNAL=1 +//Details about finding Boost +FIND_PACKAGE_MESSAGE_DETAILS_Boost:INTERNAL=[/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake][cfound components: system thread ][v1.71.0()] +//Details about finding Eigen3 +FIND_PACKAGE_MESSAGE_DETAILS_Eigen3:INTERNAL=[/usr/include/eigen3][TRUE][v(2.91.0)] +//Details about finding LIBZIP +FIND_PACKAGE_MESSAGE_DETAILS_LIBZIP:INTERNAL=[/usr/local/lib/libzip.so][/usr/local/include][/usr/local/include][v()] +//Details about finding OpenCV +FIND_PACKAGE_MESSAGE_DETAILS_OpenCV:INTERNAL=[/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build][v3.4.15()] +//Details about finding PkgConfig +FIND_PACKAGE_MESSAGE_DETAILS_PkgConfig:INTERNAL=[/usr/bin/pkg-config][v0.29.1()] +PC_LIBZIP_CFLAGS:INTERNAL=-I/usr/local/include;-I/usr/local/lib/libzip/include +PC_LIBZIP_CFLAGS_I:INTERNAL= +PC_LIBZIP_CFLAGS_OTHER:INTERNAL= +PC_LIBZIP_FOUND:INTERNAL=1 +PC_LIBZIP_INCLUDEDIR:INTERNAL=/usr/local/include +PC_LIBZIP_INCLUDE_DIRS:INTERNAL=/usr/local/include;/usr/local/lib/libzip/include +PC_LIBZIP_LDFLAGS:INTERNAL=-L/usr/local/lib;-lzip;-lz +PC_LIBZIP_LDFLAGS_OTHER:INTERNAL= +PC_LIBZIP_LIBDIR:INTERNAL=/usr/local/lib +PC_LIBZIP_LIBRARIES:INTERNAL=zip;z +PC_LIBZIP_LIBRARY_DIRS:INTERNAL=/usr/local/lib +PC_LIBZIP_LIBS:INTERNAL= +PC_LIBZIP_LIBS_L:INTERNAL= +PC_LIBZIP_LIBS_OTHER:INTERNAL= +PC_LIBZIP_LIBS_PATHS:INTERNAL= +PC_LIBZIP_MODULE_NAME:INTERNAL=libzip +PC_LIBZIP_PREFIX:INTERNAL=/usr/local +PC_LIBZIP_STATIC_CFLAGS:INTERNAL=-I/usr/local/include;-I/usr/local/lib/libzip/include +PC_LIBZIP_STATIC_CFLAGS_I:INTERNAL= +PC_LIBZIP_STATIC_CFLAGS_OTHER:INTERNAL= +PC_LIBZIP_STATIC_INCLUDE_DIRS:INTERNAL=/usr/local/include;/usr/local/lib/libzip/include +PC_LIBZIP_STATIC_LDFLAGS:INTERNAL=-L/usr/local/lib;-lzip;-lz +PC_LIBZIP_STATIC_LDFLAGS_OTHER:INTERNAL= +PC_LIBZIP_STATIC_LIBDIR:INTERNAL= +PC_LIBZIP_STATIC_LIBRARIES:INTERNAL=zip;z +PC_LIBZIP_STATIC_LIBRARY_DIRS:INTERNAL=/usr/local/lib +PC_LIBZIP_STATIC_LIBS:INTERNAL= +PC_LIBZIP_STATIC_LIBS_L:INTERNAL= +PC_LIBZIP_STATIC_LIBS_OTHER:INTERNAL= +PC_LIBZIP_STATIC_LIBS_PATHS:INTERNAL= +PC_LIBZIP_VERSION:INTERNAL=1.1.1 +PC_LIBZIP_libzip_INCLUDEDIR:INTERNAL= +PC_LIBZIP_libzip_LIBDIR:INTERNAL= +PC_LIBZIP_libzip_PREFIX:INTERNAL= +PC_LIBZIP_libzip_VERSION:INTERNAL= +//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE +PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_nproc +ProcessorCount_cmd_nproc-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 +__pkg_config_arguments_PC_LIBZIP:INTERNAL=QUIET;libzip +__pkg_config_checked_PC_LIBZIP:INTERNAL=1 +//ADVANCED property for variable: boost_atomic_DIR +boost_atomic_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: boost_headers_DIR +boost_headers_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: boost_system_DIR +boost_system_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: boost_thread_DIR +boost_thread_DIR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_PC_LIBZIP_z +pkgcfg_lib_PC_LIBZIP_z-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: pkgcfg_lib_PC_LIBZIP_zip +pkgcfg_lib_PC_LIBZIP_zip-ADVANCED:INTERNAL=1 +prefix_result:INTERNAL=/usr/local/lib + diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CMakeCCompiler.cmake b/cmake-build-debug/CMakeFiles/3.20.2/CMakeCCompiler.cmake new file mode 100644 index 0000000..c3d6fb2 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/3.20.2/CMakeCCompiler.cmake @@ -0,0 +1,78 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "9.3.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_C_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-9") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CMakeCXXCompiler.cmake b/cmake-build-debug/CMakeFiles/3.20.2/CMakeCXXCompiler.cmake new file mode 100644 index 0000000..5d092d2 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/3.20.2/CMakeCXXCompiler.cmake @@ -0,0 +1,91 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "9.3.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "14") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17;cxx_std_20") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "cxx_std_20") +set(CMAKE_CXX23_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_COMPILER_FRONTEND_VARIANT "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-9") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-9") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_MT "") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) + +foreach (lang C OBJC OBJCXX) + if (CMAKE_${lang}_COMPILER_ID_RUN) + foreach(extension IN LISTS CMAKE_${lang}_SOURCE_FILE_EXTENSIONS) + list(REMOVE_ITEM CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${extension}) + endforeach() + endif() +endforeach() + +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_BYTE_ORDER "LITTLE_ENDIAN") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES "/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include") +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_C.bin b/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000..a0cb2d4 Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_C.bin differ diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_CXX.bin b/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000..582f071 Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.20.2/CMakeDetermineCompilerABI_CXX.bin differ diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CMakeSystem.cmake b/cmake-build-debug/CMakeFiles/3.20.2/CMakeSystem.cmake new file mode 100644 index 0000000..442aabb --- /dev/null +++ b/cmake-build-debug/CMakeFiles/3.20.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-5.11.0-43-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "5.11.0-43-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-5.11.0-43-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "5.11.0-43-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/CMakeCCompilerId.c b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 0000000..7e3bd53 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,752 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a versio is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800 +# define COMPILER_ID "XL" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/a.out b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/a.out new file mode 100755 index 0000000..46f1233 Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/a.out differ diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 0000000..92e7655 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,743 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# if defined(__GNUC__) +# define SIMULATE_ID "GNU" +# endif + /* __INTEL_COMPILER = VRP prior to 2021, and then VVVV for 2021 and later, + except that a few beta releases use the old format with V=2021. */ +# if __INTEL_COMPILER < 2021 || __INTEL_COMPILER == 202110 || __INTEL_COMPILER == 202111 +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER_UPDATE) + /* The third version component from --version is an update index, + but no macro is provided for it. */ +# define COMPILER_VERSION_PATCH DEC(0) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +# elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif (defined(__clang__) && defined(__INTEL_CLANG_COMPILER)) || defined(__INTEL_LLVM_COMPILER) +# define COMPILER_ID "IntelLLVM" +#if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +#endif +#if defined(__GNUC__) +# define SIMULATE_ID "GNU" +#endif +/* __INTEL_LLVM_COMPILER = VVVVRP prior to 2021.2.0, VVVVRRPP for 2021.2.0 and + * later. Look for 6 digit vs. 8 digit version number to decide encoding. + * VVVV is no smaller than the current year when a versio is released. + */ +#if __INTEL_LLVM_COMPILER < 1000000L +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 10) +#else +# define COMPILER_VERSION_MAJOR DEC(__INTEL_LLVM_COMPILER/10000) +# define COMPILER_VERSION_MINOR DEC(__INTEL_LLVM_COMPILER/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__INTEL_LLVM_COMPILER % 100) +#endif +#if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +#endif +#if defined(__GNUC__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUC__) +#elif defined(__GNUG__) +# define SIMULATE_VERSION_MAJOR DEC(__GNUG__) +#endif +#if defined(__GNUC_MINOR__) +# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__) +#endif +#if defined(__GNUC_PATCHLEVEL__) +# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +#endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__ibmxl__) && defined(__clang__) +# define COMPILER_ID "XLClang" +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800 +# define COMPILER_ID "XL" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) + +#elif defined(__NVCOMPILER) +# define COMPILER_ID "NVHPC" +# define COMPILER_VERSION_MAJOR DEC(__NVCOMPILER_MAJOR__) +# define COMPILER_VERSION_MINOR DEC(__NVCOMPILER_MINOR__) +# if defined(__NVCOMPILER_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__NVCOMPILER_PATCHLEVEL__) +# endif + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__ghs__) +# define COMPILER_ID "GHS" +/* __GHS_VERSION_NUMBER = VVVVRP */ +# ifdef __GHS_VERSION_NUMBER +# define COMPILER_VERSION_MAJOR DEC(__GHS_VERSION_NUMBER / 100) +# define COMPILER_VERSION_MINOR DEC(__GHS_VERSION_NUMBER / 10 % 10) +# define COMPILER_VERSION_PATCH DEC(__GHS_VERSION_NUMBER % 10) +# endif + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__ARMCC_VERSION) && !defined(__clang__) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) && defined(__ARMCOMPILER_VERSION) +# define COMPILER_ID "ARMClang" + # define COMPILER_VERSION_MAJOR DEC(__ARMCOMPILER_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCOMPILER_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCOMPILER_VERSION % 10000) +# define COMPILER_VERSION_INTERNAL DEC(__ARMCOMPILER_VERSION) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) && defined(__ICCARM__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# elif defined(__VER__) && (defined(__ICCAVR__) || defined(__ICCRX__) || defined(__ICCRH850__) || defined(__ICCRL78__) || defined(__ICC430__) || defined(__ICCRISCV__) || defined(__ICCV850__) || defined(__ICC8051__) || defined(__ICCSTM8__)) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 100) +# define COMPILER_VERSION_MINOR DEC((__VER__) - (((__VER__) / 100)*100)) +# define COMPILER_VERSION_PATCH DEC(__SUBVERSION__) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# elif defined(__VXWORKS__) +# define PLATFORM_ID "VxWorks" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#elif defined(__INTEGRITY) +# if defined(INT_178B) +# define PLATFORM_ID "Integrity178" + +# else /* regular Integrity */ +# define PLATFORM_ID "Integrity" +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_ARM64EC) +# define ARCHITECTURE_ID "ARM64EC" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCRX__) +# define ARCHITECTURE_ID "RX" + +# elif defined(__ICCRH850__) +# define ARCHITECTURE_ID "RH850" + +# elif defined(__ICCRL78__) +# define ARCHITECTURE_ID "RL78" + +# elif defined(__ICCRISCV__) +# define ARCHITECTURE_ID "RISCV" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# elif defined(__ICC430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__ICCV850__) +# define ARCHITECTURE_ID "V850" + +# elif defined(__ICC8051__) +# define ARCHITECTURE_ID "8051" + +# elif defined(__ICCSTM8__) +# define ARCHITECTURE_ID "STM8" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__ghs__) +# if defined(__PPC64__) +# define ARCHITECTURE_ID "PPC64" + +# elif defined(__ppc__) +# define ARCHITECTURE_ID "PPC" + +# elif defined(__ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__x86_64__) +# define ARCHITECTURE_ID "x64" + +# elif defined(__i386__) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__TI_COMPILER_VERSION__) +# if defined(__TI_ARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__MSP430__) +# define ARCHITECTURE_ID "MSP430" + +# elif defined(__TMS320C28XX__) +# define ARCHITECTURE_ID "TMS320C28x" + +# elif defined(__TMS320C6X__) || defined(_TMS320C6X) +# define ARCHITECTURE_ID "TMS320C6x" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + +#if defined(__INTEL_COMPILER) && defined(_MSVC_LANG) && _MSVC_LANG < 201403L +# if defined(__INTEL_CXX11_MODE__) +# if defined(__cpp_aggregate_nsdmi) +# define CXX_STD 201402L +# else +# define CXX_STD 201103L +# endif +# else +# define CXX_STD 199711L +# endif +#elif defined(_MSC_VER) && defined(_MSVC_LANG) +# define CXX_STD _MSVC_LANG +#else +# define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 202002L + "23" +#elif CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXT_COMPUTE_LINUX_TARGET) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/a.out b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/a.out new file mode 100755 index 0000000..c868426 Binary files /dev/null and b/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/a.out differ diff --git a/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 0000000..fdbe0cf --- /dev/null +++ b/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/ivan/ivan/git/work_drivecast2/SLAM/dso") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/cmake-build-debug/CMakeFiles/CMakeError.log b/cmake-build-debug/CMakeFiles/CMakeError.log new file mode 100644 index 0000000..4ac2251 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/CMakeError.log @@ -0,0 +1,60 @@ +Performing C SOURCE FILE Test CMAKE_HAVE_LIBC_PTHREAD failed with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_2610f/fast && /usr/bin/make -f CMakeFiles/cmTC_2610f.dir/build.make CMakeFiles/cmTC_2610f.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_2610f.dir/src.c.o +/usr/bin/cc -DCMAKE_HAVE_LIBC_PTHREAD -o CMakeFiles/cmTC_2610f.dir/src.c.o -c /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp/src.c +Linking C executable cmTC_2610f +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2610f.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_2610f.dir/src.c.o -o cmTC_2610f +/usr/bin/ld: CMakeFiles/cmTC_2610f.dir/src.c.o: in function `main': +src.c:(.text+0x46): undefined reference to `pthread_create' +/usr/bin/ld: src.c:(.text+0x52): undefined reference to `pthread_detach' +/usr/bin/ld: src.c:(.text+0x5e): undefined reference to `pthread_cancel' +/usr/bin/ld: src.c:(.text+0x6f): undefined reference to `pthread_join' +collect2: error: ld returned 1 exit status +make[1]: *** [CMakeFiles/cmTC_2610f.dir/build.make:99: cmTC_2610f] Error 1 +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +make: *** [Makefile:127: cmTC_2610f/fast] Error 2 + + +Source file was: +#include + +static void* test_func(void* data) +{ + return data; +} + +int main(void) +{ + pthread_t thread; + pthread_create(&thread, NULL, test_func, NULL); + pthread_detach(thread); + pthread_cancel(thread); + pthread_join(thread, NULL); + pthread_atfork(NULL, NULL, NULL); + pthread_exit(NULL); + + return 0; +} + +Determining if the function pthread_create exists in the pthreads failed with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_ef6ea/fast && /usr/bin/make -f CMakeFiles/cmTC_ef6ea.dir/build.make CMakeFiles/cmTC_ef6ea.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_ef6ea.dir/CheckFunctionExists.c.o +/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_ef6ea.dir/CheckFunctionExists.c.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CheckFunctionExists.c +Linking C executable cmTC_ef6ea +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ef6ea.dir/link.txt --verbose=1 +/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_ef6ea.dir/CheckFunctionExists.c.o -o cmTC_ef6ea -lpthreads +/usr/bin/ld: cannot find -lpthreads +collect2: error: ld returned 1 exit status +make[1]: *** [CMakeFiles/cmTC_ef6ea.dir/build.make:99: cmTC_ef6ea] Error 1 +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +make: *** [Makefile:127: cmTC_ef6ea/fast] Error 2 + + + diff --git a/cmake-build-debug/CMakeFiles/CMakeOutput.log b/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 0000000..4ddcb8f --- /dev/null +++ b/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,471 @@ +The system is: Linux - 5.11.0-43-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/3.20.2/CompilerIdCXX/a.out" + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_c62d8/fast && /usr/bin/make -f CMakeFiles/cmTC_c62d8.dir/build.make CMakeFiles/cmTC_c62d8.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -v -o CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCCompilerABI.c +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cctBTZNR.s +GNU C17 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu) + compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C17 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu) + compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: bbf13931d8de1abe14040c9909cb6969 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o /tmp/cctBTZNR.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64' +Linking C executable cmTC_c62d8 +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c62d8.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -o cmTC_c62d8 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c62d8' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUZshnm.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c62d8 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c62d8' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' + + + +Parsed C implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make -f Makefile cmTC_c62d8/fast && /usr/bin/make -f CMakeFiles/cmTC_c62d8.dir/build.make CMakeFiles/cmTC_c62d8.dir/build] + ignore line: [make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -v -o CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCCompilerABI.c] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1 -quiet -v -imultiarch x86_64-linux-gnu /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCCompilerABI.c -quiet -dumpbase CMakeCCompilerABI.c -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cctBTZNR.s] + ignore line: [GNU C17 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C17 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: bbf13931d8de1abe14040c9909cb6969] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o /tmp/cctBTZNR.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o' '-c' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking C executable cmTC_c62d8] + ignore line: [/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c62d8.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -o cmTC_c62d8 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c62d8' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccUZshnm.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c62d8 /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccUZshnm.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c62d8] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_c62d8.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_53d5d/fast && /usr/bin/make -f CMakeFiles/cmTC_53d5d.dir/build.make CMakeFiles/cmTC_53d5d.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -v -o CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCXXCompilerABI.cpp +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczXu45R.s +GNU C++14 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu) + compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9" +ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed" +ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include" +#include "..." search starts here: +#include <...> search starts here: + /usr/include/c++/9 + /usr/include/x86_64-linux-gnu/c++/9 + /usr/include/c++/9/backward + /usr/lib/gcc/x86_64-linux-gnu/9/include + /usr/local/include + /usr/include/x86_64-linux-gnu + /usr/include +End of search list. +GNU C++14 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu) + compiled by GNU C version 9.3.0, GMP version 6.2.0, MPFR version 4.0.2, MPC version 1.1.0, isl version isl-0.22.1-GMP + +GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072 +Compiler executable checksum: 466f818abe2f30ba03783f22bd12d815 +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + as -v --64 -o CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o /tmp/cczXu45R.s +GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34 +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +Linking CXX executable cmTC_53d5d +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_53d5d.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_53d5d +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper +OFFLOAD_TARGET_NAMES=nvptx-none:hsa +OFFLOAD_TARGET_DEFAULT=1 +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr,hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_53d5d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvC8s6i.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_53d5d /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_53d5d' '-shared-libgcc' '-mtune=generic' '-march=x86-64' +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' + + + +Parsed CXX implicit include dir info from above output: rv=done + found start of include info + found start of implicit include info + add: [/usr/include/c++/9] + add: [/usr/include/x86_64-linux-gnu/c++/9] + add: [/usr/include/c++/9/backward] + add: [/usr/lib/gcc/x86_64-linux-gnu/9/include] + add: [/usr/local/include] + add: [/usr/include/x86_64-linux-gnu] + add: [/usr/include] + end of search list found + collapse include dir [/usr/include/c++/9] ==> [/usr/include/c++/9] + collapse include dir [/usr/include/x86_64-linux-gnu/c++/9] ==> [/usr/include/x86_64-linux-gnu/c++/9] + collapse include dir [/usr/include/c++/9/backward] ==> [/usr/include/c++/9/backward] + collapse include dir [/usr/lib/gcc/x86_64-linux-gnu/9/include] ==> [/usr/lib/gcc/x86_64-linux-gnu/9/include] + collapse include dir [/usr/local/include] ==> [/usr/local/include] + collapse include dir [/usr/include/x86_64-linux-gnu] ==> [/usr/include/x86_64-linux-gnu] + collapse include dir [/usr/include] ==> [/usr/include] + implicit include dirs: [/usr/include/c++/9;/usr/include/x86_64-linux-gnu/c++/9;/usr/include/c++/9/backward;/usr/lib/gcc/x86_64-linux-gnu/9/include;/usr/local/include;/usr/include/x86_64-linux-gnu;/usr/include] + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command(s):/usr/bin/make -f Makefile cmTC_53d5d/fast && /usr/bin/make -f CMakeFiles/cmTC_53d5d.dir/build.make CMakeFiles/cmTC_53d5d.dir/build] + ignore line: [make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) ] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/cc1plus -quiet -v -imultiarch x86_64-linux-gnu -D_GNU_SOURCE /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpbase CMakeCXXCompilerABI.cpp -mtune=generic -march=x86-64 -auxbase-strip CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -version -fasynchronous-unwind-tables -fstack-protector-strong -Wformat -Wformat-security -fstack-clash-protection -fcf-protection -o /tmp/cczXu45R.s] + ignore line: [GNU C++14 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/9"] + ignore line: [ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/include-fixed"] + ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-linux-gnu/9/../../../../x86_64-linux-gnu/include"] + ignore line: [#include "..." search starts here:] + ignore line: [#include <...> search starts here:] + ignore line: [ /usr/include/c++/9] + ignore line: [ /usr/include/x86_64-linux-gnu/c++/9] + ignore line: [ /usr/include/c++/9/backward] + ignore line: [ /usr/lib/gcc/x86_64-linux-gnu/9/include] + ignore line: [ /usr/local/include] + ignore line: [ /usr/include/x86_64-linux-gnu] + ignore line: [ /usr/include] + ignore line: [End of search list.] + ignore line: [GNU C++14 (Ubuntu 9.3.0-17ubuntu1~20.04) version 9.3.0 (x86_64-linux-gnu)] + ignore line: [ compiled by GNU C version 9.3.0 GMP version 6.2.0 MPFR version 4.0.2 MPC version 1.1.0 isl version isl-0.22.1-GMP] + ignore line: [] + ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072] + ignore line: [Compiler executable checksum: 466f818abe2f30ba03783f22bd12d815] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [ as -v --64 -o CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o /tmp/cczXu45R.s] + ignore line: [GNU assembler version 2.34 (x86_64-linux-gnu) using BFD version (GNU Binutils for Ubuntu) 2.34] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + ignore line: [Linking CXX executable cmTC_53d5d] + ignore line: [/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_53d5d.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_53d5d ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] + ignore line: [OFFLOAD_TARGET_NAMES=nvptx-none:hsa] + ignore line: [OFFLOAD_TARGET_DEFAULT=1] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 9.3.0-17ubuntu1~20.04' --with-bugurl=file:///usr/share/doc/gcc-9/README.Bugs --enable-languages=c ada c++ go brig d fortran objc obj-c++ gm2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-9 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32 m64 mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-9-HskZEa/gcc-9-9.3.0/debian/tmp-nvptx/usr hsa --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 9.3.0 (Ubuntu 9.3.0-17ubuntu1~20.04) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/9/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/9/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_53d5d' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/9/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper -plugin-opt=-fresolution=/tmp/ccvC8s6i.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_53d5d /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/9 -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/9/../../.. CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/9/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccvC8s6i.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_53d5d] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] + arg [CMakeFiles/cmTC_53d5d.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/Scrt1.o] ==> [/usr/lib/x86_64-linux-gnu/Scrt1.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crti.o] ==> [/usr/lib/x86_64-linux-gnu/crti.o] + collapse obj [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu/crtn.o] ==> [/usr/lib/x86_64-linux-gnu/crtn.o] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9] ==> [/usr/lib/gcc/x86_64-linux-gnu/9] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/9/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit objs: [/usr/lib/x86_64-linux-gnu/Scrt1.o;/usr/lib/x86_64-linux-gnu/crti.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtbeginS.o;/usr/lib/gcc/x86_64-linux-gnu/9/crtendS.o;/usr/lib/x86_64-linux-gnu/crtn.o] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/9;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + +Determining if the include file pthread.h exists passed with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_7105f/fast && /usr/bin/make -f CMakeFiles/cmTC_7105f.dir/build.make CMakeFiles/cmTC_7105f.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_7105f.dir/CheckIncludeFile.c.o +/usr/bin/cc -o CMakeFiles/cmTC_7105f.dir/CheckIncludeFile.c.o -c /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp/CheckIncludeFile.c +Linking C executable cmTC_7105f +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7105f.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_7105f.dir/CheckIncludeFile.c.o -o cmTC_7105f +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' + + + +Determining if the function pthread_create exists in the pthread passed with the following output: +Change Dir: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command(s):/usr/bin/make -f Makefile cmTC_0de57/fast && /usr/bin/make -f CMakeFiles/cmTC_0de57.dir/build.make CMakeFiles/cmTC_0de57.dir/build +make[1]: Entering directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_0de57.dir/CheckFunctionExists.c.o +/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -o CMakeFiles/cmTC_0de57.dir/CheckFunctionExists.c.o -c /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CheckFunctionExists.c +Linking C executable cmTC_0de57 +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0de57.dir/link.txt --verbose=1 +/usr/bin/cc -DCHECK_FUNCTION_EXISTS=pthread_create -rdynamic CMakeFiles/cmTC_0de57.dir/CheckFunctionExists.c.o -o cmTC_0de57 -lpthread +make[1]: Leaving directory '/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/CMakeTmp' + + + diff --git a/cmake-build-debug/CMakeFiles/Makefile.cmake b/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 0000000..378df11 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,87 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/PangolinConfig.cmake" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/PangolinConfigVersion.cmake" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/PangolinTargets.cmake" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/OpenCVConfig-version.cmake" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/OpenCVConfig.cmake" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/OpenCVModules.cmake" + "../CMakeLists.txt" + "CMakeFiles/3.20.2/CMakeCCompiler.cmake" + "CMakeFiles/3.20.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.20.2/CMakeSystem.cmake" + "../cmake/FindEigen3.cmake" + "../cmake/FindLibZip.cmake" + "../cmake/FindSuiteParse.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCInformation.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCXXInformation.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeCommonLanguageInclude.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeFindCodeBlocks.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeFindDependencyMacro.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeGenericSystem.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeInitializeConfigs.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeLanguageInformation.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeSystemSpecificInformation.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CheckCSourceCompiles.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CheckIncludeFile.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/CheckLibraryExists.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Compiler/GNU-C.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Compiler/GNU-CXX.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Compiler/GNU.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindBoost.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindPackageMessage.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindPkgConfig.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindThreads.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Internal/CheckSourceCompiles.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Platform/Linux-GNU-C.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Platform/Linux-GNU.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Platform/Linux.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/Platform/UnixPaths.cmake" + "/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/ProcessorCount.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfigVersion.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/BoostDetectToolset-1.71.0.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_atomic-1.71.0/boost_atomic-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_atomic-1.71.0/boost_atomic-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_atomic-1.71.0/libboost_atomic-variant-shared.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_atomic-1.71.0/libboost_atomic-variant-static.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_headers-1.71.0/boost_headers-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/boost_system-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/boost_system-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/libboost_system-variant-shared.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_system-1.71.0/libboost_system-variant-static.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_thread-1.71.0/boost_thread-config-version.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_thread-1.71.0/boost_thread-config.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_thread-1.71.0/libboost_thread-variant-shared.cmake" + "/usr/lib/x86_64-linux-gnu/cmake/boost_thread-1.71.0/libboost_thread-variant-static.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/dso_dataset.dir/DependInfo.cmake" + "CMakeFiles/dso.dir/DependInfo.cmake" + ) diff --git a/cmake-build-debug/CMakeFiles/Makefile2 b/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 0000000..0e92d2a --- /dev/null +++ b/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,140 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ivan/ivan/git/work_drivecast2/SLAM/dso + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug + +#============================================================================= +# Directory level rules for the build root directory + +# The main recursive "all" target. +all: CMakeFiles/dso_dataset.dir/all +all: CMakeFiles/dso.dir/all +.PHONY : all + +# The main recursive "preinstall" target. +preinstall: +.PHONY : preinstall + +# The main recursive "clean" target. +clean: CMakeFiles/dso_dataset.dir/clean +clean: CMakeFiles/dso.dir/clean +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/dso_dataset.dir + +# All Build rule for target. +CMakeFiles/dso_dataset.dir/all: CMakeFiles/dso.dir/all + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles --progress-num=24,25 "Built target dso_dataset" +.PHONY : CMakeFiles/dso_dataset.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/dso_dataset.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles 25 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/dso_dataset.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/dso_dataset.dir/rule + +# Convenience name for target. +dso_dataset: CMakeFiles/dso_dataset.dir/rule +.PHONY : dso_dataset + +# clean rule for target. +CMakeFiles/dso_dataset.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/clean +.PHONY : CMakeFiles/dso_dataset.dir/clean + +#============================================================================= +# Target rules for target CMakeFiles/dso.dir + +# All Build rule for target. +CMakeFiles/dso.dir/all: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/depend + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles --progress-num=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23 "Built target dso" +.PHONY : CMakeFiles/dso.dir/all + +# Build rule for subdir invocation for target. +CMakeFiles/dso.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles 23 + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/dso.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/dso.dir/rule + +# Convenience name for target. +dso: CMakeFiles/dso.dir/rule +.PHONY : dso + +# clean rule for target. +CMakeFiles/dso.dir/clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/clean +.PHONY : CMakeFiles/dso.dir/clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 0000000..db67cb1 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,4 @@ +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso_dataset.dir +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/edit_cache.dir +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir diff --git a/cmake-build-debug/CMakeFiles/clion-environment.txt b/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 0000000..270d93c --- /dev/null +++ b/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/cmake-build-debug/CMakeFiles/clion-log.txt b/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 0000000..cbd9e9d --- /dev/null +++ b/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,26 @@ +/home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -DCMAKE_DEPENDS_USE_COMPILER=FALSE -G "CodeBlocks - Unix Makefiles" /home/ivan/ivan/git/work_drivecast2/SLAM/dso +CMake Deprecation Warning at CMakeLists.txt:4 (CMAKE_MINIMUM_REQUIRED): + Compatibility with CMake < 2.8.12 will be removed from a future version of + CMake. + + Update the VERSION argument value or use a ... suffix to tell + CMake that the project does not need compatibility with older versions. + + +CMake Warning (dev) at /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/share/cmake-3.20/Modules/FindPackageHandleStandardArgs.cmake:438 (message): + The package name passed to `find_package_handle_standard_args` (LIBZIP) + does not match the name of the calling package (LibZip). This can lead to + problems in calling code that expects `find_package` result variables + (e.g., `_FOUND`) to follow a certain pattern. +Call Stack (most recent call first): + cmake/FindLibZip.cmake:24 (FIND_PACKAGE_HANDLE_STANDARD_ARGS) + CMakeLists.txt:21 (find_package) +This warning is for project developers. Use -Wno-dev to suppress it. + +--- found PANGOLIN, compiling dso_pangolin library. +--- found OpenCV, compiling dso_opencv library. +--- found ziplib (1.1.1), compiling with zip capability. +--- compiling dso_dataset. +-- Configuring done +-- Generating done +-- Build files have been written to: /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug diff --git a/cmake-build-debug/CMakeFiles/cmake.check_cache b/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 0000000..3dccd73 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/cmake-build-debug/CMakeFiles/dso.dir/CXX.includecache b/cmake-build-debug/CMakeFiles/dso.dir/CXX.includecache new file mode 100644 index 0000000..733899a --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/CXX.includecache @@ -0,0 +1,3694 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../src/FullSystem/FullSystem.h +deque +- +util/NumType.h +../src/FullSystem/util/NumType.h +util/globalCalib.h +../src/FullSystem/util/globalCalib.h +vector +../src/FullSystem/vector +iostream +- +fstream +- +util/NumType.h +../src/FullSystem/util/NumType.h +FullSystem/Residuals.h +../src/FullSystem/FullSystem/Residuals.h +FullSystem/HessianBlocks.h +../src/FullSystem/FullSystem/HessianBlocks.h +util/FrameShell.h +../src/FullSystem/util/FrameShell.h +util/IndexThreadReduce.h +../src/FullSystem/util/IndexThreadReduce.h +OptimizationBackend/EnergyFunctional.h +../src/FullSystem/OptimizationBackend/EnergyFunctional.h +FullSystem/PixelSelector2.h +../src/FullSystem/FullSystem/PixelSelector2.h +math.h +- + +../src/FullSystem/HessianBlocks.h +util/globalCalib.h +../src/FullSystem/util/globalCalib.h +vector +../src/FullSystem/vector +iostream +- +fstream +- +util/NumType.h +../src/FullSystem/util/NumType.h +FullSystem/Residuals.h +../src/FullSystem/FullSystem/Residuals.h +util/ImageAndExposure.h +../src/FullSystem/util/ImageAndExposure.h + +../src/FullSystem/ImmaturePoint.h +util/NumType.h +../src/FullSystem/util/NumType.h +FullSystem/HessianBlocks.h +../src/FullSystem/FullSystem/HessianBlocks.h + +../src/FullSystem/PixelSelector2.h +util/NumType.h +../src/FullSystem/util/NumType.h + +../src/FullSystem/Residuals.h +util/globalCalib.h +../src/FullSystem/util/globalCalib.h +vector +../src/FullSystem/vector +util/NumType.h +../src/FullSystem/util/NumType.h +iostream +- +fstream +- +util/globalFuncs.h +../src/FullSystem/util/globalFuncs.h +OptimizationBackend/RawResidualJacobian.h +../src/FullSystem/OptimizationBackend/RawResidualJacobian.h + +../src/IOWrapper/ImageDisplay.h +vector +- +util/NumType.h +../src/IOWrapper/util/NumType.h +util/MinimalImage.h +../src/IOWrapper/util/MinimalImage.h + +../src/IOWrapper/Output3DWrapper.h +vector +- +string +- +util/NumType.h +../src/IOWrapper/util/NumType.h +util/MinimalImage.h +../src/IOWrapper/util/MinimalImage.h +map +../src/IOWrapper/map + +../src/OptimizationBackend/EnergyFunctional.h +util/NumType.h +../src/OptimizationBackend/util/NumType.h +util/IndexThreadReduce.h +../src/OptimizationBackend/util/IndexThreadReduce.h +vector +../src/OptimizationBackend/vector +math.h +- +map +../src/OptimizationBackend/map + +../src/OptimizationBackend/RawResidualJacobian.h +util/NumType.h +../src/OptimizationBackend/util/NumType.h + +../src/util/FrameShell.h +util/NumType.h +../src/util/util/NumType.h +algorithm +../src/util/algorithm + +../src/util/ImageAndExposure.h +cstring +- +iostream +- + +../src/util/IndexThreadReduce.h +util/settings.h +../src/util/util/settings.h +boost/thread.hpp +../src/util/boost/thread.hpp +stdio.h +- +iostream +- + +../src/util/MinimalImage.h +util/NumType.h +../src/util/util/NumType.h +algorithm +../src/util/algorithm + +../src/util/NumType.h +Eigen/Core +../src/util/Eigen/Core +sophus/sim3.hpp +../src/util/sophus/sim3.hpp +sophus/se3.hpp +../src/util/sophus/se3.hpp + +../src/util/globalCalib.h +util/settings.h +../src/util/util/settings.h +util/NumType.h +../src/util/util/NumType.h + +../src/util/globalFuncs.h +util/settings.h +../src/util/util/settings.h +util/NumType.h +../src/util/util/NumType.h +IOWrapper/ImageDisplay.h +../src/util/IOWrapper/ImageDisplay.h +fstream +../src/util/fstream + +../src/util/settings.h +string.h +- +string +- +cmath +- + +../thirdparty/Sophus/sophus/rxso3.hpp +sophus.hpp +../thirdparty/Sophus/sophus/sophus.hpp +so3.hpp +../thirdparty/Sophus/sophus/so3.hpp + +../thirdparty/Sophus/sophus/se3.hpp +so3.hpp +../thirdparty/Sophus/sophus/so3.hpp + +../thirdparty/Sophus/sophus/sim3.hpp +rxso3.hpp +../thirdparty/Sophus/sophus/rxso3.hpp + +../thirdparty/Sophus/sophus/so3.hpp +sophus.hpp +../thirdparty/Sophus/sophus/sophus.hpp + +../thirdparty/Sophus/sophus/sophus.hpp +stdexcept +- +cmath +- +Eigen/Eigen +- +Eigen/Geometry +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h +pangolin/platform.h +- +typeinfo +- +type_traits +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/attach.h +iostream +- +string +- +cmath +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h +poll.h +- +pthread.h +- +sched.h +- +android/configuration.h +- +android/looper.h +- +android/native_activity.h +- +android/log.h +- +string +- +pangolin/utils/type_convert.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/display.h +pangolin/platform.h +- +pangolin/gl/glinclude.h +- +pangolin/handler/handler_enums.h +- +pangolin/utils/params.h +- +pangolin/display/window.h +- +functional +- +string +- +memory +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h +pangolin/platform.h +- +pangolin/utils/simple_math.h +- +vector +- +Eigen/Core +- +Eigen/Geometry +- +cstring +- +TooN/TooN.h +- +TooN/se3.h +- +pangolin/compat/ovr.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/view.h +functional +- +vector +- +pangolin/display/viewport.h +- +pangolin/display/attach.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h +pangolin/gl/glinclude.h +- +pangolin/display/opengl_render_state.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h +pangolin/display/view.h +- +pangolin/var/var.h +- +pangolin/handler/handler.h +- +pangolin/gl/glfont.h +- +functional +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/window.h +exception +- +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h +cmath +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h +pangolin/platform.h +- +pangolin/gl2engine.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h +pangolin/display/viewport.h +- +pangolin/gl/glinclude.h +- +pangolin/image/image_io.h +- +Eigen/Core +- +cstdlib +- +iostream +- +math.h +- +pangolin/gl/gl.hpp +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp +pangolin/gl/gl.h +- +pangolin/gl/glpixformat.h +- +pangolin/display/display.h +- +pangolin/image/image_io.h +- +algorithm +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h +pangolin/gl/glplatform.h +- +map +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h +pangolin/gl/glinclude.h +- +pangolin/gl/glformattraits.h +- +pangolin/display/opengl_render_state.h +- +vector +- +math.h +- +Eigen/Core +- +Eigen/src/Geometry/AlignedBox.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h +pangolin/gl/gltext.h +- +cstdio +- +cstdarg +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h +pangolin/gl/glplatform.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h +pangolin/gl/glplatform.h +- +pangolin/gl/compat/gl_es_compat.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h +pangolin/gl/glplatform.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h +pangolin/gl/glplatform.h +- +pangolin/gl/glformattraits.h +- +pangolin/image/pixel_format.h +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h +pangolin/platform.h +- +Windows.h +- +GL/glew.h +- +EGL/egl.h +- +GLES2/gl2.h +- +GLES2/gl2ext.h +- +GLES/gl.h +- +GLES/glext.h +- +OpenGLES/ES2/gl.h +- +OpenGLES/ES2/glext.h +- +OpenGL/gl.h +- +GL/gl.h +- +pangolin/gl/glpangoglu.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h +sstream +- +fstream +- +algorithm +- +vector +- +map +- +cctype +- +pangolin/gl/glplatform.h +- +pangolin/gl/colour.h +- +pangolin/utils/file_utils.h +- +pangolin/display/opengl_render_state.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h +pangolin/gl/glinclude.h +- +stack +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h +pangolin/gl/gl.h +- +pangolin/gl/glchar.h +- +vector +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h +pangolin/gl/gl.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h +pangolin/display/opengl_render_state.h +- +pangolin/handler/handler_enums.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/copy.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image.h +pangolin/platform.h +- +pangolin/image/memcpy.h +- +cstddef +- +functional +- +limits +- +cstring +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h +pangolin/platform.h +- +pangolin/image/typed_image.h +- +pangolin/utils/file_extension.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h +pangolin/image/image.h +- +pangolin/image/copy.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h +pangolin/platform.h +- +cstring +- +cuda_runtime.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h +pangolin/image/managed_image.h +- +pangolin/image/pixel_format.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/pangolin.h +pangolin/platform.h +- +pangolin/gl/gl.h +- +pangolin/gl/gldraw.h +- +pangolin/gl/glvbo.h +- +pangolin/gl/glstate.h +- +pangolin/gl/colour.h +- +pangolin/display/display.h +- +pangolin/display/view.h +- +pangolin/display/device/display_android.h +- +pangolin/plot/plotter.h +- +pangolin/var/varextra.h +- +pangolin/display/widgets/widgets.h +- +pangolin/video/video.h +- +pangolin/video/video_input.h +- +pangolin/video/video_output.h +- +pangolin/image/image_io.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/platform.h +pangolin/config.h +- +pangolin/pangolin_export.h +- +cuda_runtime.h +- +pangolin/utils/assert.h +- +pangolin/utils/log.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h +pangolin/platform.h +- +algorithm +- +limits +- +memory +- +mutex +- +stdexcept +- +string +- +vector +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h +limits +- +pangolin/display/view.h +- +pangolin/gl/colour.h +- +pangolin/gl/gl.h +- +pangolin/gl/glfont.h +- +pangolin/gl/glsl.h +- +pangolin/handler/handler.h +- +pangolin/plot/datalog.h +- +pangolin/plot/range.h +- +set +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/range.h +pangolin/platform.h +- +limits +- +algorithm +- +cmath +- +Eigen/Core +- +Eigen/src/Geometry/AlignedBox.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h +pangolin/platform.h +- +pangolin/utils/format_string.h +- +iostream +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h +pangolin/platform.h +- +string +- +vector +- +algorithm +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h +sstream +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/log.h +cstdio +- +android/log.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/params.h +pangolin/platform.h +- +pangolin/utils/type_convert.h +- +string +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h +algorithm +- +cstdio +- +cstdlib +- +cstring +- +iostream +- +iterator +- +limits +- +map +- +stdexcept +- +string +- +vector +- +pangolin/compat/type_traits.h +- +cmath +- +float.h +- +mathimf.h +- +math.h +- +errno.h +- +inttypes.h +- +locale.h +- +algorithm +- +sstream +- +float.h +- +limits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h +iostream +- +string.h +- +algorithm +- +stdarg.h +- +cmath +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h +iostream +- +sstream +- +functional +- +pangolin/compat/type_traits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h +pangolin/platform.h +- +pangolin/utils/params.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/var.h +stdexcept +- +string.h +- +cmath +- +pangolin/var/varvalue.h +- +pangolin/var/varwrapper.h +- +pangolin/var/varstate.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h +pangolin/platform.h +- +pangolin/var/var.h +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h +map +- +vector +- +pangolin/platform.h +- +pangolin/var/varvalue.h +- +pangolin/utils/file_utils.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h +pangolin/var/varvaluet.h +- +pangolin/var/varwrapper.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h +pangolin/var/varvaluegeneric.h +- +pangolin/compat/type_traits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h +pangolin/var/varvaluegeneric.h +- +pangolin/compat/type_traits.h +- +pangolin/utils/type_convert.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h +pangolin/image/image.h +- +pangolin/image/pixel_format.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video.h +pangolin/utils/uri.h +- +pangolin/video/video_exception.h +- +pangolin/video/video_interface.h +- +pangolin/video/video_output_interface.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h +exception +- +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h +pangolin/video/video.h +- +pangolin/video/video_output.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h +pangolin/utils/picojson.h +- +pangolin/video/stream_info.h +- +memory +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h +pangolin/video/video_output_interface.h +- +pangolin/utils/uri.h +- +memory +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h +vector +- +pangolin/platform.h +- +pangolin/video/stream_info.h +- +pangolin/utils/picojson.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/opencv_modules.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/core.hpp +opencv2/calib3d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/calib3d.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/features2d.hpp +opencv2/dnn.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/dnn.hpp +opencv2/flann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/flann.hpp +opencv2/highgui.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/highgui.hpp +opencv2/imgcodecs.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/imgcodecs.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/imgproc.hpp +opencv2/ml.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/ml.hpp +opencv2/objdetect.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/objdetect.hpp +opencv2/photo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/photo.hpp +opencv2/shape.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/shape.hpp +opencv2/stitching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/stitching.hpp +opencv2/superres.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/superres.hpp +opencv2/video.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/video.hpp +opencv2/videoio.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/videoio.hpp +opencv2/videostab.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/videostab.hpp +opencv2/viz.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/viz.hpp +opencv2/cudaarithm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaarithm.hpp +opencv2/cudabgsegm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudabgsegm.hpp +opencv2/cudacodec.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudacodec.hpp +opencv2/cudafeatures2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudafeatures2d.hpp +opencv2/cudafilters.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudafilters.hpp +opencv2/cudaimgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaimgproc.hpp +opencv2/cudaobjdetect.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaobjdetect.hpp +opencv2/cudaoptflow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaoptflow.hpp +opencv2/cudastereo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudastereo.hpp +opencv2/cudawarping.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudawarping.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/features2d.hpp +opencv2/core/affine.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/core/affine.hpp +opencv2/calib3d/calib3d_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/calib3d/calib3d_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp +opencv2/calib3d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/opencv2/calib3d.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvdef.h +opencv2/core/base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/base.hpp +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvstd.hpp +opencv2/core/traits.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/traits.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/matx.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/types.hpp +opencv2/core/mat.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/mat.hpp +opencv2/core/persistence.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/persistence.hpp +opencv2/core/operations.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/operations.hpp +opencv2/core/cvstd.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvstd.inl.hpp +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/utility.hpp +opencv2/core/optim.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/optim.hpp +opencv2/core/ovx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/ovx.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp +opencv2/core.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp +opencv2/core/mat.hpp +- +chrono +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/opencv_modules.hpp +climits +- +algorithm +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvstd.hpp +opencv2/core/neon_utils.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/neon_utils.hpp +opencv2/core/vsx_utils.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/vsx_utils.hpp +opencv2/core/check.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/check.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp +opencv2/core/base.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h +opencv2/core/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types_c.h +cxcore.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cxcore.h +cxcore.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cxcore.h +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/utility.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp +opencv2/core/cuda_types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda_types.hpp +opencv2/opencv.hpp +- +opencv2/core/cuda.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h +cv_cpu_config.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_config.h +cv_cpu_helper.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h +emmintrin.h +- +pmmintrin.h +- +tmmintrin.h +- +smmintrin.h +- +nmmintrin.h +- +nmmintrin.h +- +popcntintrin.h +- +immintrin.h +- +arm_neon.h +- +immintrin.h +- +immintrin.h +- +immintrin.h +- +Intrin.h +- +arm_neon.h +- +arm_neon.h +- +arm_neon.h +- +altivec.h +- +hal/msa_macros.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h +wasm_simd128.h +- +emmintrin.h +- +Intrin.h +- +arm_neon.h +- +arm_neon.h +- +altivec.h +- +immintrin.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h +opencv2/core/version.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/version.hpp +cvconfig.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvconfig.h +limits +- +limits.h +- +opencv2/core/hal/interface.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/hal/interface.h +cv_cpu_dispatch.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h +intrin.h +- +array +- +cstdint +- +stdint.h +- +stdint.h +- +opencv2/core/fast_math.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/fast_math.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +cstddef +- +cstring +- +cctype +- +string +- +algorithm +- +utility +- +cstdlib +- +cmath +- +opencv2/core/ptr.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/ptr.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp +complex +- +ostream +- +sstream +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +cmath +- +fastmath.h +- +math.h +- +emmintrin.h +- +altivec.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h +cstddef +- +stddef.h +- +stdbool.h +- +cstdint +- +stdint.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h +msa.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa.h +stdint.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/matx.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types.hpp +opencv2/core/bufferpool.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/bufferpool.hpp +type_traits +- +opencv2/core/mat.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/mat.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/base.hpp +opencv2/core/traits.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/traits.hpp +opencv2/core/saturate.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/saturate.hpp +initializer_list +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp +cstdio +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp +cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types.hpp +opencv2/core/mat.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/mat.hpp +opencv2/opencv.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/opencv.hpp +time.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp +algorithm +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/fast_math.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/fast_math.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp +climits +- +cfloat +- +vector +- +limits +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvstd.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/matx.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h +ipl.h +- +ipl/ipl.h +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +assert.h +- +stdlib.h +- +string.h +- +float.h +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp +ostream +- +functional +- +opencv2/core/utils/instrumentation.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/utils/instrumentation.hpp +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp +opencv2/core/utility.hpp +- +opencv2/core/utils/tls.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +assert.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp +opencv2/dnn/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp +opencv2/core.hpp +- +map +- +ostream +- +opencv2/dnn/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp +vector +- +opencv2/core.hpp +- +opencv2/core/async.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/opencv2/core/async.hpp +opencv2/dnn/dict.hpp +- +opencv2/dnn/layer.hpp +- +opencv2/dnn/dnn.inl.hpp +- +opencv2/dnn/utils/inference_engine.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp +opencv2/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp +opencv2/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp +../dnn.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/opencv_modules.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/core.hpp +opencv2/flann/miniflann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/flann/miniflann.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/core.hpp +opencv2/flann/miniflann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/flann/miniflann.hpp +opencv2/flann/flann_base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/flann/flann_base.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kdtree_single_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +composite_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +linear_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +hierarchical_clustering_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h +lsh_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h +autotuned_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +stdlib.h +- +stdio.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +stdexcept +- +ostream +- +typeinfo +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h +sstream +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +ground_truth.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h +index_testing.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h +sampling.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kdtree_single_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +composite_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +linear_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +config.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +cmath +- +cstdlib +- +string.h +- +stdint.h +- +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +Intrin.h +- +arm_neon.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/arm_neon.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +boost/dynamic_bitset.hpp +- +limits.h +- +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp +vector +- +cstdio +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +params.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +all_indices.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +algorithm +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h +algorithm +- +map +- +limits +- +cmath +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h +cstring +- +cmath +- +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h +timer.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +algorithm +- +map +- +cstring +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dynamic_bitset.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +algorithm +- +map +- +cstring +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +algorithm +- +map +- +limits +- +cmath +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h +stdio.h +- +stdarg.h +- +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h +algorithm +- +cstring +- +map +- +vector +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +lsh_table.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h +algorithm +- +iostream +- +iomanip +- +limits.h +- +unordered_map +- +map +- +math.h +- +stddef.h +- +dynamic_bitset.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +stdio.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp +opencv2/flann/defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/flann/defines.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +params.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h +any.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +iostream +- +map +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +algorithm +- +cstdlib +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +algorithm +- +cstring +- +iostream +- +limits +- +set +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +cstring +- +vector +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h +time.h +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core/utility.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/core.hpp +opencv2/imgcodecs.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/imgcodecs.hpp +opencv2/videoio.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/videoio.hpp +opencv2/highgui/highgui_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/highgui/highgui_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp +opencv2/highgui.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/highgui.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/core/core_c.h +opencv2/imgproc/imgproc_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/imgproc/imgproc_c.h +opencv2/imgcodecs/imgcodecs_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/imgcodecs/imgcodecs_c.h +opencv2/videoio/videoio_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/videoio/videoio_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/opencv2/core.hpp +opencv2/imgproc/imgproc_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/opencv2/imgproc/imgproc_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h +opencv2/imgproc/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/imgproc/types_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/opencv2/core.hpp +float.h +- +map +- +iostream +- +opencv2/ml/ml.inl.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/core.hpp +opencv2/objdetect/detection_based_tracker.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/objdetect/detection_based_tracker.hpp +opencv2/objdetect/objdetect_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/objdetect/objdetect_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp +opencv2/core.hpp +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/opencv2/core/core_c.h +deque +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/imgproc.hpp +opencv2/photo/photo_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/photo/photo_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp +opencv2/shape/emdL1.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/emdL1.hpp +opencv2/shape/shape_transformer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/shape_transformer.hpp +opencv2/shape/hist_cost.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/hist_cost.hpp +opencv2/shape/shape_distance.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/shape_distance.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp +opencv2/shape/hist_cost.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/shape/hist_cost.hpp +opencv2/shape/shape_transformer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/shape/shape_transformer.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/features2d.hpp +opencv2/stitching/warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/warpers.hpp +opencv2/stitching/detail/matchers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/matchers.hpp +opencv2/stitching/detail/motion_estimators.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/motion_estimators.hpp +opencv2/stitching/detail/exposure_compensate.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/exposure_compensate.hpp +opencv2/stitching/detail/seam_finders.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/seam_finders.hpp +opencv2/stitching/detail/blenders.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/blenders.hpp +opencv2/stitching/detail/camera.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/camera.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp +opencv2/xfeatures2d/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/xfeatures2d/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +matchers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +util.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp +camera.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp +set +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp +list +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +util_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp +queue +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +util.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core/cuda.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/imgproc.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp +warpers_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp +limits +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp +opencv2/stitching/detail/warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/opencv2/stitching/detail/warpers.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/opencv2/core.hpp +opencv2/superres/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/opencv2/superres/optical_flow.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp +opencv2/video/tracking.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/tracking.hpp +opencv2/video/background_segm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/background_segm.hpp +opencv2/video/tracking_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/tracking_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h +opencv2/imgproc/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/imgproc/types_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp +opencv2/videostab/stabilizer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/opencv2/videostab/stabilizer.hpp +opencv2/videostab/ring_buffer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/opencv2/videostab/ring_buffer.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp +cmath +- +queue +- +algorithm +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +fast_marching_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp +opencv2/videostab/fast_marching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/fast_marching.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp +vector +- +fstream +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/opencv_modules.hpp +opencv2/videostab/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/optical_flow.hpp +opencv2/videostab/motion_core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_core.hpp +opencv2/videostab/outlier_rejection.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/outlier_rejection.hpp +opencv2/cudaimgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/cudaimgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/optical_flow.hpp +opencv2/videostab/fast_marching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/fast_marching.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/photo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/photo.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp +cmath +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp +vector +- +utility +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/opencv_modules.hpp +opencv2/cudaoptflow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/cudaoptflow.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/motion_core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp +vector +- +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp +vector +- +ctime +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/imgproc.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/videostab/motion_stabilizing.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_stabilizing.hpp +opencv2/videostab/frame_source.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/frame_source.hpp +opencv2/videostab/log.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/log.hpp +opencv2/videostab/inpainting.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/inpainting.hpp +opencv2/videostab/deblurring.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/deblurring.hpp +opencv2/videostab/wobble_suppression.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/wobble_suppression.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core/cuda.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/videostab/log.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/log.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- +opencv2/viz/viz3d.hpp +- +opencv2/viz/vizcore.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp +string +- +opencv2/core.hpp +- +opencv2/core/affine.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp +opencv2/core.hpp +- +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- +opencv2/viz/viz3d.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp +opencv2/viz/types.hpp +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.h +Eigen/Core +- +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/util/NumType.h +pangolin/pangolin.h +- +sstream +- +fstream +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp +PangolinDSOViewer.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h +KeyFrameDisplay.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.h +util/settings.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/util/settings.h +util/globalCalib.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/util/globalCalib.h +FullSystem/HessianBlocks.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/FullSystem/HessianBlocks.h +FullSystem/FullSystem.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/FullSystem/FullSystem.h +FullSystem/ImmaturePoint.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/FullSystem/ImmaturePoint.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h +pangolin/pangolin.h +- +boost/thread.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/boost/thread.hpp +util/MinimalImage.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/util/MinimalImage.h +IOWrapper/Output3DWrapper.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/IOWrapper/Output3DWrapper.h +map +- +deque +- +opencv2/core/core.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/core/core.hpp +opencv2/imgproc/imgproc.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/imgproc/imgproc.hpp +opencv2/calib3d/calib3d.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/calib3d/calib3d.hpp +opencv2/highgui/highgui.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/highgui/highgui.hpp + +/usr/include/eigen3/Eigen/Cholesky +Core +/usr/include/eigen3/Eigen/Core +Jacobi +/usr/include/eigen3/Eigen/Jacobi +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Cholesky/LLT.h +/usr/include/eigen3/Eigen/src/Cholesky/LLT.h +src/Cholesky/LDLT.h +/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/Cholesky/LLT_LAPACKE.h +/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +cuda_runtime.h +- +new +- +src/Core/util/Macros.h +/usr/include/eigen3/Eigen/src/Core/util/Macros.h +complex +- +src/Core/util/MKL_support.h +/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h +malloc.h +- +immintrin.h +- +mmintrin.h +- +emmintrin.h +- +xmmintrin.h +- +pmmintrin.h +- +tmmintrin.h +- +smmintrin.h +- +nmmintrin.h +- +immintrin.h +- +altivec.h +- +altivec.h +- +arm_neon.h +- +vecintrin.h +- +vector_types.h +- +host_defines.h +- +cuda_fp16.h +- +omp.h +- +cerrno +- +cstddef +- +cstdlib +- +cmath +- +cassert +- +functional +- +iosfwd +- +cstring +- +string +- +limits +- +climits +- +algorithm +- +type_traits +- +iostream +- +intrin.h +- +src/Core/util/Constants.h +/usr/include/eigen3/Eigen/src/Core/util/Constants.h +src/Core/util/Meta.h +/usr/include/eigen3/Eigen/src/Core/util/Meta.h +src/Core/util/ForwardDeclarations.h +/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +src/Core/util/StaticAssert.h +/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h +src/Core/util/XprHelper.h +/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h +src/Core/util/Memory.h +/usr/include/eigen3/Eigen/src/Core/util/Memory.h +src/Core/NumTraits.h +/usr/include/eigen3/Eigen/src/Core/NumTraits.h +src/Core/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/MathFunctions.h +src/Core/GenericPacketMath.h +/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h +src/Core/MathFunctionsImpl.h +/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +src/Core/arch/Default/ConjHelper.h +/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/AVX/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +src/Core/arch/AVX512/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +src/Core/arch/AVX512/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/SSE/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +src/Core/arch/SSE/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +src/Core/arch/AVX/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +src/Core/arch/AVX/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +src/Core/arch/AVX/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +src/Core/arch/AVX/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +src/Core/arch/SSE/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/SSE/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +src/Core/arch/SSE/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +src/Core/arch/SSE/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +src/Core/arch/AltiVec/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +src/Core/arch/AltiVec/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +src/Core/arch/AltiVec/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +src/Core/arch/NEON/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +src/Core/arch/NEON/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +src/Core/arch/NEON/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +src/Core/arch/ZVector/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +src/Core/arch/ZVector/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +src/Core/arch/ZVector/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +src/Core/arch/CUDA/Half.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h +src/Core/arch/CUDA/PacketMathHalf.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +src/Core/arch/CUDA/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h +src/Core/arch/CUDA/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h +src/Core/arch/CUDA/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h +src/Core/arch/Default/Settings.h +/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +src/Core/functors/TernaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +src/Core/functors/BinaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +src/Core/functors/UnaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +src/Core/functors/NullaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +src/Core/functors/StlFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +src/Core/functors/AssignmentFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +src/Core/arch/CUDA/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +src/Core/IO.h +/usr/include/eigen3/Eigen/src/Core/IO.h +src/Core/DenseCoeffsBase.h +/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +src/Core/DenseBase.h +/usr/include/eigen3/Eigen/src/Core/DenseBase.h +src/Core/MatrixBase.h +/usr/include/eigen3/Eigen/src/Core/MatrixBase.h +src/Core/EigenBase.h +/usr/include/eigen3/Eigen/src/Core/EigenBase.h +src/Core/Product.h +/usr/include/eigen3/Eigen/src/Core/Product.h +src/Core/CoreEvaluators.h +/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h +src/Core/AssignEvaluator.h +/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h +src/Core/Assign.h +/usr/include/eigen3/Eigen/src/Core/Assign.h +src/Core/ArrayBase.h +/usr/include/eigen3/Eigen/src/Core/ArrayBase.h +src/Core/util/BlasUtil.h +/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h +src/Core/DenseStorage.h +/usr/include/eigen3/Eigen/src/Core/DenseStorage.h +src/Core/NestByValue.h +/usr/include/eigen3/Eigen/src/Core/NestByValue.h +src/Core/ReturnByValue.h +/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h +src/Core/NoAlias.h +/usr/include/eigen3/Eigen/src/Core/NoAlias.h +src/Core/PlainObjectBase.h +/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h +src/Core/Matrix.h +/usr/include/eigen3/Eigen/src/Core/Matrix.h +src/Core/Array.h +/usr/include/eigen3/Eigen/src/Core/Array.h +src/Core/CwiseTernaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +src/Core/CwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +src/Core/CwiseUnaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +src/Core/CwiseNullaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +src/Core/CwiseUnaryView.h +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +src/Core/SelfCwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +src/Core/Dot.h +/usr/include/eigen3/Eigen/src/Core/Dot.h +src/Core/StableNorm.h +/usr/include/eigen3/Eigen/src/Core/StableNorm.h +src/Core/Stride.h +/usr/include/eigen3/Eigen/src/Core/Stride.h +src/Core/MapBase.h +/usr/include/eigen3/Eigen/src/Core/MapBase.h +src/Core/Map.h +/usr/include/eigen3/Eigen/src/Core/Map.h +src/Core/Ref.h +/usr/include/eigen3/Eigen/src/Core/Ref.h +src/Core/Block.h +/usr/include/eigen3/Eigen/src/Core/Block.h +src/Core/VectorBlock.h +/usr/include/eigen3/Eigen/src/Core/VectorBlock.h +src/Core/Transpose.h +/usr/include/eigen3/Eigen/src/Core/Transpose.h +src/Core/DiagonalMatrix.h +/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +src/Core/Diagonal.h +/usr/include/eigen3/Eigen/src/Core/Diagonal.h +src/Core/DiagonalProduct.h +/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h +src/Core/Redux.h +/usr/include/eigen3/Eigen/src/Core/Redux.h +src/Core/Visitor.h +/usr/include/eigen3/Eigen/src/Core/Visitor.h +src/Core/Fuzzy.h +/usr/include/eigen3/Eigen/src/Core/Fuzzy.h +src/Core/Swap.h +/usr/include/eigen3/Eigen/src/Core/Swap.h +src/Core/CommaInitializer.h +/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h +src/Core/GeneralProduct.h +/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h +src/Core/Solve.h +/usr/include/eigen3/Eigen/src/Core/Solve.h +src/Core/Inverse.h +/usr/include/eigen3/Eigen/src/Core/Inverse.h +src/Core/SolverBase.h +/usr/include/eigen3/Eigen/src/Core/SolverBase.h +src/Core/PermutationMatrix.h +/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h +src/Core/Transpositions.h +/usr/include/eigen3/Eigen/src/Core/Transpositions.h +src/Core/TriangularMatrix.h +/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h +src/Core/SelfAdjointView.h +/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h +src/Core/products/GeneralBlockPanelKernel.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +src/Core/products/Parallelizer.h +/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h +src/Core/ProductEvaluators.h +/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h +src/Core/products/GeneralMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +src/Core/products/GeneralMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +src/Core/SolveTriangular.h +/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h +src/Core/products/GeneralMatrixMatrixTriangular.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +src/Core/products/SelfadjointMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +src/Core/products/SelfadjointMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +src/Core/products/SelfadjointProduct.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +src/Core/products/SelfadjointRank2Update.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +src/Core/products/TriangularMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +src/Core/products/TriangularMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +src/Core/products/TriangularSolverMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +src/Core/products/TriangularSolverVector.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +src/Core/BandMatrix.h +/usr/include/eigen3/Eigen/src/Core/BandMatrix.h +src/Core/CoreIterators.h +/usr/include/eigen3/Eigen/src/Core/CoreIterators.h +src/Core/ConditionEstimator.h +/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h +src/Core/BooleanRedux.h +/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h +src/Core/Select.h +/usr/include/eigen3/Eigen/src/Core/Select.h +src/Core/VectorwiseOp.h +/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h +src/Core/Random.h +/usr/include/eigen3/Eigen/src/Core/Random.h +src/Core/Replicate.h +/usr/include/eigen3/Eigen/src/Core/Replicate.h +src/Core/Reverse.h +/usr/include/eigen3/Eigen/src/Core/Reverse.h +src/Core/ArrayWrapper.h +/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h +src/Core/products/GeneralMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +src/Core/products/GeneralMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +src/Core/products/SelfadjointMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +src/Core/products/SelfadjointMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +src/Core/products/TriangularMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +src/Core/products/TriangularMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +src/Core/products/TriangularSolverMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +src/Core/Assign_MKL.h +/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h +src/Core/GlobalFunctions.h +/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Dense +Core +/usr/include/eigen3/Eigen/Core +LU +/usr/include/eigen3/Eigen/LU +Cholesky +/usr/include/eigen3/Eigen/Cholesky +QR +/usr/include/eigen3/Eigen/QR +SVD +/usr/include/eigen3/Eigen/SVD +Geometry +/usr/include/eigen3/Eigen/Geometry +Eigenvalues +/usr/include/eigen3/Eigen/Eigenvalues + +/usr/include/eigen3/Eigen/Eigen +Dense +/usr/include/eigen3/Eigen/Dense +Sparse +/usr/include/eigen3/Eigen/Sparse + +/usr/include/eigen3/Eigen/Eigenvalues +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Cholesky +/usr/include/eigen3/Eigen/Cholesky +Jacobi +/usr/include/eigen3/Eigen/Jacobi +Householder +/usr/include/eigen3/Eigen/Householder +LU +/usr/include/eigen3/Eigen/LU +Geometry +/usr/include/eigen3/Eigen/Geometry +src/misc/RealSvd2x2.h +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h +src/Eigenvalues/Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +src/Eigenvalues/RealSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +src/Eigenvalues/EigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +src/Eigenvalues/SelfAdjointEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +src/Eigenvalues/HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +src/Eigenvalues/ComplexSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +src/Eigenvalues/ComplexEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +src/Eigenvalues/RealQZ.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +src/Eigenvalues/GeneralizedEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +src/Eigenvalues/MatrixBaseEigenvalues.h +/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/Eigenvalues/RealSchur_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +src/Eigenvalues/ComplexSchur_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Geometry +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +SVD +/usr/include/eigen3/Eigen/SVD +LU +/usr/include/eigen3/Eigen/LU +limits +- +src/Geometry/OrthoMethods.h +/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +src/Geometry/EulerAngles.h +/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h +src/Geometry/Homogeneous.h +/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h +src/Geometry/RotationBase.h +/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h +src/Geometry/Rotation2D.h +/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h +src/Geometry/Quaternion.h +/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h +src/Geometry/AngleAxis.h +/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h +src/Geometry/Transform.h +/usr/include/eigen3/Eigen/src/Geometry/Transform.h +src/Geometry/Translation.h +/usr/include/eigen3/Eigen/src/Geometry/Translation.h +src/Geometry/Scaling.h +/usr/include/eigen3/Eigen/src/Geometry/Scaling.h +src/Geometry/Hyperplane.h +/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h +src/Geometry/ParametrizedLine.h +/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +src/Geometry/AlignedBox.h +/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h +src/Geometry/Umeyama.h +/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h +src/Geometry/arch/Geometry_SSE.h +/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Householder +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Householder/Householder.h +/usr/include/eigen3/Eigen/src/Householder/Householder.h +src/Householder/HouseholderSequence.h +/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +src/Householder/BlockHouseholder.h +/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/IterativeLinearSolvers +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Eigen/IterativeLinearSolvers +- +src/IterativeLinearSolvers/SolveWithGuess.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +src/IterativeLinearSolvers/IterativeSolverBase.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +src/IterativeLinearSolvers/BasicPreconditioners.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +src/IterativeLinearSolvers/ConjugateGradient.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +src/IterativeLinearSolvers/BiCGSTAB.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +src/IterativeLinearSolvers/IncompleteLUT.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +src/IterativeLinearSolvers/IncompleteCholesky.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Jacobi +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Jacobi/Jacobi.h +/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/LU +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/misc/Kernel.h +/usr/include/eigen3/Eigen/src/misc/Kernel.h +src/misc/Image.h +/usr/include/eigen3/Eigen/src/misc/Image.h +src/LU/FullPivLU.h +/usr/include/eigen3/Eigen/src/LU/FullPivLU.h +src/LU/PartialPivLU.h +/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/LU/PartialPivLU_LAPACKE.h +/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +src/LU/Determinant.h +/usr/include/eigen3/Eigen/src/LU/Determinant.h +src/LU/InverseImpl.h +/usr/include/eigen3/Eigen/src/LU/InverseImpl.h +src/LU/arch/Inverse_SSE.h +/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/OrderingMethods +SparseCore +/usr/include/eigen3/Eigen/SparseCore +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/OrderingMethods/Amd.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h +src/OrderingMethods/Ordering.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/QR +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Cholesky +/usr/include/eigen3/Eigen/Cholesky +Jacobi +/usr/include/eigen3/Eigen/Jacobi +Householder +/usr/include/eigen3/Eigen/Householder +src/QR/HouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h +src/QR/FullPivHouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +src/QR/ColPivHouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +src/QR/CompleteOrthogonalDecomposition.h +/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/QR/HouseholderQR_LAPACKE.h +/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +src/QR/ColPivHouseholderQR_LAPACKE.h +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SVD +QR +/usr/include/eigen3/Eigen/QR +Householder +/usr/include/eigen3/Eigen/Householder +Jacobi +/usr/include/eigen3/Eigen/Jacobi +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/misc/RealSvd2x2.h +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h +src/SVD/UpperBidiagonalization.h +/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +src/SVD/SVDBase.h +/usr/include/eigen3/Eigen/src/SVD/SVDBase.h +src/SVD/JacobiSVD.h +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h +src/SVD/BDCSVD.h +/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/SVD/JacobiSVD_LAPACKE.h +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Sparse +Eigen/Sparse +- +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +SparseCholesky +/usr/include/eigen3/Eigen/SparseCholesky +SparseLU +/usr/include/eigen3/Eigen/SparseLU +SparseQR +/usr/include/eigen3/Eigen/SparseQR +IterativeLinearSolvers +/usr/include/eigen3/Eigen/IterativeLinearSolvers + +/usr/include/eigen3/Eigen/SparseCholesky +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/SparseCholesky/SimplicialCholesky.h +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +src/SparseCholesky/SimplicialCholesky_impl.h +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SparseCore +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +vector +- +map +- +cstdlib +- +cstring +- +algorithm +- +src/SparseCore/SparseUtil.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +src/SparseCore/SparseMatrixBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +src/SparseCore/SparseAssign.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +src/SparseCore/CompressedStorage.h +/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +src/SparseCore/AmbiVector.h +/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +src/SparseCore/SparseCompressedBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +src/SparseCore/SparseMatrix.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +src/SparseCore/SparseMap.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h +src/SparseCore/MappedSparseMatrix.h +/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +src/SparseCore/SparseVector.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h +src/SparseCore/SparseRef.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h +src/SparseCore/SparseCwiseUnaryOp.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +src/SparseCore/SparseCwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +src/SparseCore/SparseTranspose.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +src/SparseCore/SparseBlock.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +src/SparseCore/SparseDot.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h +src/SparseCore/SparseRedux.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +src/SparseCore/SparseView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h +src/SparseCore/SparseDiagonalProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +src/SparseCore/ConservativeSparseSparseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +src/SparseCore/SparseSparseProductWithPruning.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +src/SparseCore/SparseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +src/SparseCore/SparseDenseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +src/SparseCore/SparseSelfAdjointView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +src/SparseCore/SparseTriangularView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +src/SparseCore/TriangularSolver.h +/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +src/SparseCore/SparsePermutation.h +/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +src/SparseCore/SparseFuzzy.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +src/SparseCore/SparseSolverBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SparseLU +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/SparseLU/SparseLU_gemm_kernel.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +src/SparseLU/SparseLU_Structs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +src/SparseLU/SparseLU_SupernodalMatrix.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +src/SparseLU/SparseLUImpl.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +src/SparseCore/SparseColEtree.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +src/SparseLU/SparseLU_Memory.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +src/SparseLU/SparseLU_heap_relax_snode.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +src/SparseLU/SparseLU_relax_snode.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +src/SparseLU/SparseLU_pivotL.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +src/SparseLU/SparseLU_panel_dfs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +src/SparseLU/SparseLU_kernel_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +src/SparseLU/SparseLU_panel_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +src/SparseLU/SparseLU_column_dfs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +src/SparseLU/SparseLU_column_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +src/SparseLU/SparseLU_copy_to_ucol.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +src/SparseLU/SparseLU_pruneL.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +src/SparseLU/SparseLU_Utils.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +src/SparseLU/SparseLU.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + +/usr/include/eigen3/Eigen/SparseQR +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/SparseCore/SparseColEtree.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +src/SparseQR/SparseQR.h +/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + +/usr/include/eigen3/Eigen/src/Cholesky/LLT.h + +/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Core/Array.h + +/usr/include/eigen3/Eigen/src/Core/ArrayBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/ArrayCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +../plugins/ArrayCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + +/usr/include/eigen3/Eigen/src/Core/Assign.h + +/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + +/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + +/usr/include/eigen3/Eigen/src/Core/BandMatrix.h + +/usr/include/eigen3/Eigen/src/Core/Block.h + +/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + +/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + +/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + +/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + +/usr/include/eigen3/Eigen/src/Core/CoreIterators.h + +/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + +/usr/include/eigen3/Eigen/src/Core/DenseBase.h +../plugins/BlockMethods.h +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + +/usr/include/eigen3/Eigen/src/Core/DenseStorage.h + +/usr/include/eigen3/Eigen/src/Core/Diagonal.h + +/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + +/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + +/usr/include/eigen3/Eigen/src/Core/Dot.h + +/usr/include/eigen3/Eigen/src/Core/EigenBase.h + +/usr/include/eigen3/Eigen/src/Core/Fuzzy.h + +/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + +/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + +/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + +/usr/include/eigen3/Eigen/src/Core/IO.h + +/usr/include/eigen3/Eigen/src/Core/Inverse.h + +/usr/include/eigen3/Eigen/src/Core/Map.h + +/usr/include/eigen3/Eigen/src/Core/MapBase.h + +/usr/include/eigen3/Eigen/src/Core/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + +/usr/include/eigen3/Eigen/src/Core/Matrix.h + +/usr/include/eigen3/Eigen/src/Core/MatrixBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/Core/NestByValue.h + +/usr/include/eigen3/Eigen/src/Core/NoAlias.h + +/usr/include/eigen3/Eigen/src/Core/NumTraits.h + +/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + +/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + +/usr/include/eigen3/Eigen/src/Core/Product.h + +/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + +/usr/include/eigen3/Eigen/src/Core/Random.h + +/usr/include/eigen3/Eigen/src/Core/Redux.h + +/usr/include/eigen3/Eigen/src/Core/Ref.h + +/usr/include/eigen3/Eigen/src/Core/Replicate.h + +/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + +/usr/include/eigen3/Eigen/src/Core/Reverse.h + +/usr/include/eigen3/Eigen/src/Core/Select.h + +/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + +/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/Core/Solve.h + +/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + +/usr/include/eigen3/Eigen/src/Core/SolverBase.h + +/usr/include/eigen3/Eigen/src/Core/StableNorm.h + +/usr/include/eigen3/Eigen/src/Core/Stride.h + +/usr/include/eigen3/Eigen/src/Core/Swap.h + +/usr/include/eigen3/Eigen/src/Core/Transpose.h + +/usr/include/eigen3/Eigen/src/Core/Transpositions.h + +/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + +/usr/include/eigen3/Eigen/src/Core/VectorBlock.h + +/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + +/usr/include/eigen3/Eigen/src/Core/Visitor.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + +/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +stdint.h +- + +/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + +/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + +/usr/include/eigen3/Eigen/src/Core/util/Constants.h + +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + +/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h +mkl.h +- +../../misc/blas.h +/usr/include/eigen3/Eigen/src/misc/blas.h + +/usr/include/eigen3/Eigen/src/Core/util/Macros.h +cstdlib +- +iostream +- + +/usr/include/eigen3/Eigen/src/Core/util/Memory.h + +/usr/include/eigen3/Eigen/src/Core/util/Meta.h +cfloat +- +math_constants.h +- +cstdint +- + +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + +/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +./ComplexSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +./HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +./RealSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +./RealQZ.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +./Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +./HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +./Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + +/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + +/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + +/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + +/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + +/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + +/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + +/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + +/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + +/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + +/usr/include/eigen3/Eigen/src/Geometry/Scaling.h + +/usr/include/eigen3/Eigen/src/Geometry/Transform.h + +/usr/include/eigen3/Eigen/src/Geometry/Translation.h + +/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + +/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + +/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + +/usr/include/eigen3/Eigen/src/Householder/Householder.h + +/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +vector +- +list +- + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + +/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + +/usr/include/eigen3/Eigen/src/LU/Determinant.h + +/usr/include/eigen3/Eigen/src/LU/FullPivLU.h + +/usr/include/eigen3/Eigen/src/LU/InverseImpl.h + +/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + +/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + +/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h +../Core/util/NonMPL2.h +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +Eigen_Colamd.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + +/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + +/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + +/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + +/usr/include/eigen3/Eigen/src/SVD/SVDBase.h + +/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +../Core/util/NonMPL2.h +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + +/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + +/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +../plugins/BlockMethods.h +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + +/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + +/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + +/usr/include/eigen3/Eigen/src/misc/Image.h + +/usr/include/eigen3/Eigen/src/misc/Kernel.h + +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + +/usr/include/eigen3/Eigen/src/misc/blas.h + +/usr/include/eigen3/Eigen/src/misc/lapacke.h +lapacke_config.h +/usr/include/eigen3/Eigen/src/misc/lapacke_config.h +stdlib.h +- +complex.h +- +complex.h +- +lapacke_mangling.h +/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + +/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h + diff --git a/cmake-build-debug/CMakeFiles/dso.dir/DependInfo.cmake b/cmake-build-debug/CMakeFiles/dso.dir/DependInfo.cmake new file mode 100644 index 0000000..1ecd95f --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/DependInfo.cmake @@ -0,0 +1,84 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/CoarseInitializer.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/CoarseTracker.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemDebugStuff.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemMarginalize.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemOptPoint.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemOptimize.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/HessianBlocks.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/ImmaturePoint.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/PixelSelector2.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/Residuals.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/AccumulatedSCHessian.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/AccumulatedTopHessian.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/EnergyFunctional.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/EnergyFunctionalStructs.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/Undistort.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/util/Undistort.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalCalib.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/util/globalCalib.cpp.o" + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/settings.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/src/util/settings.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "ENABLE_SSE" + "HAS_ZIPLIB=1" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../src" + "../thirdparty/Sophus" + "../thirdparty/sse2neon" + "/usr/include/eigen3" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ts/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include" + "/usr/include/suitesparse" + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean.cmake b/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean.cmake new file mode 100644 index 0000000..38dfbdb --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean.cmake @@ -0,0 +1,31 @@ +file(REMOVE_RECURSE + "CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o" + "CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o" + "CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o" + "CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o" + "CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o" + "CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o" + "CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o" + "CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o" + "CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o" + "CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o" + "CMakeFiles/dso.dir/src/util/Undistort.cpp.o" + "CMakeFiles/dso.dir/src/util/globalCalib.cpp.o" + "CMakeFiles/dso.dir/src/util/settings.cpp.o" + "lib/libdso.a" + "lib/libdso.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/dso.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean_target.cmake b/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean_target.cmake new file mode 100644 index 0000000..eeff205 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/cmake_clean_target.cmake @@ -0,0 +1,3 @@ +file(REMOVE_RECURSE + "lib/libdso.a" +) diff --git a/cmake-build-debug/CMakeFiles/dso.dir/depend.internal b/cmake-build-debug/CMakeFiles/dso.dir/depend.internal new file mode 100644 index 0000000..997c043 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/depend.internal @@ -0,0 +1,6835 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o + ../src/FullSystem/CoarseInitializer.h + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/Output3DWrapper.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/nanoflann.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/CoarseInitializer.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o + ../src/FullSystem/CoarseTracker.h + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/ImageRW.h + ../src/IOWrapper/Output3DWrapper.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/CoarseTracker.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o + ../src/FullSystem/CoarseInitializer.h + ../src/FullSystem/CoarseTracker.h + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/ResidualProjections.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/Output3DWrapper.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/ImageRW.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemDebugStuff.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o + ../src/FullSystem/CoarseTracker.h + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/ResidualProjections.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/Output3DWrapper.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemMarginalize.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemOptPoint.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/ResidualProjections.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystemOptimize.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/HessianBlocks.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/ResidualProjections.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/ImmaturePoint.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/ImageAndExposure.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/PixelSelector2.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/ResidualProjections.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/Residuals.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o + ../src/IOWrapper/ImageDisplay.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o + ../src/IOWrapper/ImageRW.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/attach.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/display.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/view.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/window.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/copy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/pangolin.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/platform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/range.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/log.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/params.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/var.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.h + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/ImmaturePoint.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/Output3DWrapper.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/attach.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/display.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/view.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/window.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/copy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/pangolin.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/platform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/range.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/log.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/params.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/var.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/KeyFrameDisplay.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/AccumulatedSCHessian.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/AccumulatedSCHessian.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o + ../src/OptimizationBackend/AccumulatedTopHessian.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/IndexThreadReduce.h + ../src/util/NumType.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/AccumulatedTopHessian.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/AccumulatedSCHessian.h + ../src/OptimizationBackend/AccumulatedTopHessian.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/MatrixAccumulators.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/EnergyFunctional.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o + ../src/FullSystem/FullSystem.h + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/PixelSelector2.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageDisplay.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/EnergyFunctionalStructs.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/EnergyFunctionalStructs.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/Undistort.cpp.o + ../src/IOWrapper/ImageDisplay.h + ../src/IOWrapper/ImageRW.h + ../src/util/ImageAndExposure.h + ../src/util/MinimalImage.h + ../src/util/NumType.h + ../src/util/Undistort.h + ../src/util/globalFuncs.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/Undistort.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/globalCalib.cpp.o + ../src/util/NumType.h + ../src/util/globalCalib.h + ../src/util/settings.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalCalib.cpp + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/settings.cpp.o + ../src/util/settings.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/settings.cpp diff --git a/cmake-build-debug/CMakeFiles/dso.dir/depend.make b/cmake-build-debug/CMakeFiles/dso.dir/depend.make new file mode 100644 index 0000000..2e7f66a --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/depend.make @@ -0,0 +1,6835 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o: \ + ../src/FullSystem/CoarseInitializer.h \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/nanoflann.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/FullSystem/CoarseInitializer.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o: \ + ../src/FullSystem/CoarseTracker.h \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/ImageRW.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/FullSystem/CoarseTracker.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o: \ + ../src/FullSystem/CoarseInitializer.h \ + ../src/FullSystem/CoarseTracker.h \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/ResidualProjections.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/FullSystem/FullSystem.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/ImageRW.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/FullSystemDebugStuff.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o: \ + ../src/FullSystem/CoarseTracker.h \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/ResidualProjections.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/FullSystem/FullSystemMarginalize.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/FullSystemOptPoint.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/ResidualProjections.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/FullSystemOptimize.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o: \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/HessianBlocks.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/ResidualProjections.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/ImmaturePoint.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o: \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/PixelSelector2.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/ResidualProjections.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/FullSystem/Residuals.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o: \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cv_cpu_config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cvconfig.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv/cxcore.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp \ + ../src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o: \ + ../src/IOWrapper/ImageRW.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cv_cpu_config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cvconfig.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv/cxcore.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp \ + ../src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o: \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/attach.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/display.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/view.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/window.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/copy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/pangolin.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/platform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/range.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/log.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/var.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h \ + ../src/IOWrapper/Pangolin/KeyFrameDisplay.cpp \ + ../src/IOWrapper/Pangolin/KeyFrameDisplay.h \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/ImmaturePoint.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/attach.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/display.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/view.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/window.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/copy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/pangolin.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/platform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/range.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/log.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/var.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cv_cpu_config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cvconfig.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv/cxcore.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp \ + ../src/IOWrapper/Pangolin/KeyFrameDisplay.h \ + ../src/IOWrapper/Pangolin/PangolinDSOViewer.cpp \ + ../src/IOWrapper/Pangolin/PangolinDSOViewer.h \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o: \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/AccumulatedSCHessian.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/OptimizationBackend/AccumulatedSCHessian.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o: \ + ../src/OptimizationBackend/AccumulatedTopHessian.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/NumType.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/OptimizationBackend/AccumulatedTopHessian.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/AccumulatedSCHessian.h \ + ../src/OptimizationBackend/AccumulatedTopHessian.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/OptimizationBackend/EnergyFunctional.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o: \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + ../src/OptimizationBackend/EnergyFunctionalStructs.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/Undistort.cpp.o: \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/ImageRW.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/MinimalImage.h \ + ../src/util/NumType.h \ + ../src/util/Undistort.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/util/Undistort.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/globalCalib.cpp.o: \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/settings.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../src/util/globalCalib.cpp \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +CMakeFiles/dso.dir/src/util/settings.cpp.o: \ + ../src/util/settings.h \ + ../src/util/settings.cpp diff --git a/cmake-build-debug/CMakeFiles/dso.dir/flags.make b/cmake-build-debug/CMakeFiles/dso.dir/flags.make new file mode 100644 index 0000000..598f560 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DENABLE_SSE -DHAS_ZIPLIB=1 + +CXX_INCLUDES = -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/thirdparty/Sophus -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/thirdparty/sse2neon -I/usr/include/eigen3 -I"/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include" -I"/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ts/include" -I"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include" -I/usr/include/suitesparse + +CXX_FLAGS = -O3 -g -std=c++0x -march=native -g + diff --git a/cmake-build-debug/CMakeFiles/dso.dir/link.txt b/cmake-build-debug/CMakeFiles/dso.dir/link.txt new file mode 100644 index 0000000..fc244e1 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/link.txt @@ -0,0 +1,2 @@ +/usr/bin/ar qc lib/libdso.a CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o CMakeFiles/dso.dir/src/util/settings.cpp.o CMakeFiles/dso.dir/src/util/Undistort.cpp.o CMakeFiles/dso.dir/src/util/globalCalib.cpp.o CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o +/usr/bin/ranlib lib/libdso.a diff --git a/cmake-build-debug/CMakeFiles/dso.dir/progress.make b/cmake-build-debug/CMakeFiles/dso.dir/progress.make new file mode 100644 index 0000000..93f6de6 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso.dir/progress.make @@ -0,0 +1,24 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 +CMAKE_PROGRESS_3 = 3 +CMAKE_PROGRESS_4 = 4 +CMAKE_PROGRESS_5 = 5 +CMAKE_PROGRESS_6 = 6 +CMAKE_PROGRESS_7 = 7 +CMAKE_PROGRESS_8 = 8 +CMAKE_PROGRESS_9 = 9 +CMAKE_PROGRESS_10 = 10 +CMAKE_PROGRESS_11 = 11 +CMAKE_PROGRESS_12 = 12 +CMAKE_PROGRESS_13 = 13 +CMAKE_PROGRESS_14 = 14 +CMAKE_PROGRESS_15 = 15 +CMAKE_PROGRESS_16 = 16 +CMAKE_PROGRESS_17 = 17 +CMAKE_PROGRESS_18 = 18 +CMAKE_PROGRESS_19 = 19 +CMAKE_PROGRESS_20 = 20 +CMAKE_PROGRESS_21 = 21 +CMAKE_PROGRESS_22 = 22 +CMAKE_PROGRESS_23 = 23 + diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/CXX.includecache b/cmake-build-debug/CMakeFiles/dso_dataset.dir/CXX.includecache new file mode 100644 index 0000000..115c5ca --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/CXX.includecache @@ -0,0 +1,3766 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +../src/FullSystem/HessianBlocks.h +util/globalCalib.h +../src/FullSystem/util/globalCalib.h +vector +../src/FullSystem/vector +iostream +- +fstream +- +util/NumType.h +../src/FullSystem/util/NumType.h +FullSystem/Residuals.h +../src/FullSystem/FullSystem/Residuals.h +util/ImageAndExposure.h +../src/FullSystem/util/ImageAndExposure.h + +../src/FullSystem/Residuals.h +util/globalCalib.h +../src/FullSystem/util/globalCalib.h +vector +../src/FullSystem/vector +util/NumType.h +../src/FullSystem/util/NumType.h +iostream +- +fstream +- +util/globalFuncs.h +../src/FullSystem/util/globalFuncs.h +OptimizationBackend/RawResidualJacobian.h +../src/FullSystem/OptimizationBackend/RawResidualJacobian.h + +../src/IOWrapper/ImageRW.h +util/NumType.h +../src/IOWrapper/util/NumType.h +util/MinimalImage.h +../src/IOWrapper/util/MinimalImage.h + +../src/OptimizationBackend/EnergyFunctional.h +util/NumType.h +../src/OptimizationBackend/util/NumType.h +util/IndexThreadReduce.h +../src/OptimizationBackend/util/IndexThreadReduce.h +vector +../src/OptimizationBackend/vector +math.h +- +map +../src/OptimizationBackend/map + +../src/OptimizationBackend/RawResidualJacobian.h +util/NumType.h +../src/OptimizationBackend/util/NumType.h + +../src/util/FrameShell.h +util/NumType.h +../src/util/util/NumType.h +algorithm +../src/util/algorithm + +../src/util/ImageAndExposure.h +cstring +- +iostream +- + +../src/util/IndexThreadReduce.h +util/settings.h +../src/util/util/settings.h +boost/thread.hpp +../src/util/boost/thread.hpp +stdio.h +- +iostream +- + +../src/util/MinimalImage.h +util/NumType.h +../src/util/util/NumType.h +algorithm +../src/util/algorithm + +../src/util/Undistort.h +util/ImageAndExposure.h +../src/util/util/ImageAndExposure.h +util/MinimalImage.h +../src/util/util/MinimalImage.h +util/NumType.h +../src/util/util/NumType.h +Eigen/Core +../src/util/Eigen/Core + +../thirdparty/Sophus/sophus/rxso3.hpp +sophus.hpp +../thirdparty/Sophus/sophus/sophus.hpp +so3.hpp +../thirdparty/Sophus/sophus/so3.hpp + +../thirdparty/Sophus/sophus/se3.hpp +so3.hpp +../thirdparty/Sophus/sophus/so3.hpp + +../thirdparty/Sophus/sophus/sim3.hpp +rxso3.hpp +../thirdparty/Sophus/sophus/rxso3.hpp + +../thirdparty/Sophus/sophus/so3.hpp +sophus.hpp +../thirdparty/Sophus/sophus/sophus.hpp + +../thirdparty/Sophus/sophus/sophus.hpp +stdexcept +- +cmath +- +Eigen/Eigen +- +Eigen/Geometry +- + +../thirdparty/sse2neon/SSE2NEON.h +stdint.h +- +arm_neon.h +../thirdparty/sse2neon/arm_neon.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h +pangolin/platform.h +- +typeinfo +- +type_traits +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/attach.h +iostream +- +string +- +cmath +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h +poll.h +- +pthread.h +- +sched.h +- +android/configuration.h +- +android/looper.h +- +android/native_activity.h +- +android/log.h +- +string +- +pangolin/utils/type_convert.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/display.h +pangolin/platform.h +- +pangolin/gl/glinclude.h +- +pangolin/handler/handler_enums.h +- +pangolin/utils/params.h +- +pangolin/display/window.h +- +functional +- +string +- +memory +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h +pangolin/platform.h +- +pangolin/utils/simple_math.h +- +vector +- +Eigen/Core +- +Eigen/Geometry +- +cstring +- +TooN/TooN.h +- +TooN/se3.h +- +pangolin/compat/ovr.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/view.h +functional +- +vector +- +pangolin/display/viewport.h +- +pangolin/display/attach.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h +pangolin/gl/glinclude.h +- +pangolin/display/opengl_render_state.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h +pangolin/display/view.h +- +pangolin/var/var.h +- +pangolin/handler/handler.h +- +pangolin/gl/glfont.h +- +functional +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/window.h +exception +- +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h +cmath +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h +pangolin/platform.h +- +pangolin/gl2engine.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h +pangolin/display/viewport.h +- +pangolin/gl/glinclude.h +- +pangolin/image/image_io.h +- +Eigen/Core +- +cstdlib +- +iostream +- +math.h +- +pangolin/gl/gl.hpp +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp +pangolin/gl/gl.h +- +pangolin/gl/glpixformat.h +- +pangolin/display/display.h +- +pangolin/image/image_io.h +- +algorithm +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h +pangolin/gl/glplatform.h +- +map +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h +pangolin/gl/glinclude.h +- +pangolin/gl/glformattraits.h +- +pangolin/display/opengl_render_state.h +- +vector +- +math.h +- +Eigen/Core +- +Eigen/src/Geometry/AlignedBox.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h +pangolin/gl/gltext.h +- +cstdio +- +cstdarg +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h +pangolin/gl/glplatform.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h +pangolin/gl/glplatform.h +- +pangolin/gl/compat/gl_es_compat.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h +pangolin/gl/glplatform.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h +pangolin/gl/glplatform.h +- +pangolin/gl/glformattraits.h +- +pangolin/image/pixel_format.h +- +stdexcept +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h +pangolin/platform.h +- +Windows.h +- +GL/glew.h +- +EGL/egl.h +- +GLES2/gl2.h +- +GLES2/gl2ext.h +- +GLES/gl.h +- +GLES/glext.h +- +OpenGLES/ES2/gl.h +- +OpenGLES/ES2/glext.h +- +OpenGL/gl.h +- +GL/gl.h +- +pangolin/gl/glpangoglu.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h +sstream +- +fstream +- +algorithm +- +vector +- +map +- +cctype +- +pangolin/gl/glplatform.h +- +pangolin/gl/colour.h +- +pangolin/utils/file_utils.h +- +pangolin/display/opengl_render_state.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h +pangolin/gl/glinclude.h +- +stack +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h +pangolin/gl/gl.h +- +pangolin/gl/glchar.h +- +vector +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h +pangolin/gl/gl.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h +pangolin/display/opengl_render_state.h +- +pangolin/handler/handler_enums.h +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/copy.h + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image.h +pangolin/platform.h +- +pangolin/image/memcpy.h +- +cstddef +- +functional +- +limits +- +cstring +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h +pangolin/platform.h +- +pangolin/image/typed_image.h +- +pangolin/utils/file_extension.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h +pangolin/image/image.h +- +pangolin/image/copy.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h +pangolin/platform.h +- +cstring +- +cuda_runtime.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h +pangolin/image/managed_image.h +- +pangolin/image/pixel_format.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/pangolin.h +pangolin/platform.h +- +pangolin/gl/gl.h +- +pangolin/gl/gldraw.h +- +pangolin/gl/glvbo.h +- +pangolin/gl/glstate.h +- +pangolin/gl/colour.h +- +pangolin/display/display.h +- +pangolin/display/view.h +- +pangolin/display/device/display_android.h +- +pangolin/plot/plotter.h +- +pangolin/var/varextra.h +- +pangolin/display/widgets/widgets.h +- +pangolin/video/video.h +- +pangolin/video/video_input.h +- +pangolin/video/video_output.h +- +pangolin/image/image_io.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/platform.h +pangolin/config.h +- +pangolin/pangolin_export.h +- +cuda_runtime.h +- +pangolin/utils/assert.h +- +pangolin/utils/log.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h +pangolin/platform.h +- +algorithm +- +limits +- +memory +- +mutex +- +stdexcept +- +string +- +vector +- +Eigen/Core +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h +limits +- +pangolin/display/view.h +- +pangolin/gl/colour.h +- +pangolin/gl/gl.h +- +pangolin/gl/glfont.h +- +pangolin/gl/glsl.h +- +pangolin/handler/handler.h +- +pangolin/plot/datalog.h +- +pangolin/plot/range.h +- +set +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/range.h +pangolin/platform.h +- +limits +- +algorithm +- +cmath +- +Eigen/Core +- +Eigen/src/Geometry/AlignedBox.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h +pangolin/platform.h +- +pangolin/utils/format_string.h +- +iostream +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h +pangolin/platform.h +- +string +- +vector +- +algorithm +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h +sstream +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/log.h +cstdio +- +android/log.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/params.h +pangolin/platform.h +- +pangolin/utils/type_convert.h +- +string +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h +algorithm +- +cstdio +- +cstdlib +- +cstring +- +iostream +- +iterator +- +limits +- +map +- +stdexcept +- +string +- +vector +- +pangolin/compat/type_traits.h +- +cmath +- +float.h +- +mathimf.h +- +math.h +- +errno.h +- +inttypes.h +- +locale.h +- +algorithm +- +sstream +- +float.h +- +limits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h +iostream +- +string.h +- +algorithm +- +stdarg.h +- +cmath +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h +iostream +- +sstream +- +functional +- +pangolin/compat/type_traits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h +pangolin/platform.h +- +pangolin/utils/params.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/var.h +stdexcept +- +string.h +- +cmath +- +pangolin/var/varvalue.h +- +pangolin/var/varwrapper.h +- +pangolin/var/varstate.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h +pangolin/platform.h +- +pangolin/var/var.h +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h +map +- +vector +- +pangolin/platform.h +- +pangolin/var/varvalue.h +- +pangolin/utils/file_utils.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h +pangolin/var/varvaluet.h +- +pangolin/var/varwrapper.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h +pangolin/var/varvaluegeneric.h +- +pangolin/compat/type_traits.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h +pangolin/var/varvaluegeneric.h +- +pangolin/compat/type_traits.h +- +pangolin/utils/type_convert.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h +pangolin/image/image.h +- +pangolin/image/pixel_format.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video.h +pangolin/utils/uri.h +- +pangolin/video/video_exception.h +- +pangolin/video/video_interface.h +- +pangolin/video/video_output_interface.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h +exception +- +pangolin/platform.h +- +string +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h +pangolin/video/video.h +- +pangolin/video/video_output.h +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h +pangolin/utils/picojson.h +- +pangolin/video/stream_info.h +- +memory +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h +pangolin/video/video_output_interface.h +- +pangolin/utils/uri.h +- +memory +- + +/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h +vector +- +pangolin/platform.h +- +pangolin/video/stream_info.h +- +pangolin/utils/picojson.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/opencv_modules.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/core.hpp +opencv2/calib3d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/calib3d.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/features2d.hpp +opencv2/dnn.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/dnn.hpp +opencv2/flann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/flann.hpp +opencv2/highgui.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/highgui.hpp +opencv2/imgcodecs.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/imgcodecs.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/imgproc.hpp +opencv2/ml.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/ml.hpp +opencv2/objdetect.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/objdetect.hpp +opencv2/photo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/photo.hpp +opencv2/shape.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/shape.hpp +opencv2/stitching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/stitching.hpp +opencv2/superres.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/superres.hpp +opencv2/video.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/video.hpp +opencv2/videoio.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/videoio.hpp +opencv2/videostab.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/videostab.hpp +opencv2/viz.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/viz.hpp +opencv2/cudaarithm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaarithm.hpp +opencv2/cudabgsegm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudabgsegm.hpp +opencv2/cudacodec.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudacodec.hpp +opencv2/cudafeatures2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudafeatures2d.hpp +opencv2/cudafilters.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudafilters.hpp +opencv2/cudaimgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaimgproc.hpp +opencv2/cudaobjdetect.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaobjdetect.hpp +opencv2/cudaoptflow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudaoptflow.hpp +opencv2/cudastereo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudastereo.hpp +opencv2/cudawarping.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv2/cudawarping.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/features2d.hpp +opencv2/core/affine.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/core/affine.hpp +opencv2/calib3d/calib3d_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/opencv2/calib3d/calib3d_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp +opencv2/calib3d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/opencv2/calib3d.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvdef.h +opencv2/core/base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/base.hpp +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvstd.hpp +opencv2/core/traits.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/traits.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/matx.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/types.hpp +opencv2/core/mat.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/mat.hpp +opencv2/core/persistence.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/persistence.hpp +opencv2/core/operations.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/operations.hpp +opencv2/core/cvstd.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/cvstd.inl.hpp +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/utility.hpp +opencv2/core/optim.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/optim.hpp +opencv2/core/ovx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/opencv2/core/ovx.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp +opencv2/core.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp +opencv2/core/mat.hpp +- +chrono +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/opencv_modules.hpp +climits +- +algorithm +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvstd.hpp +opencv2/core/neon_utils.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/neon_utils.hpp +opencv2/core/vsx_utils.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/vsx_utils.hpp +opencv2/core/check.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/check.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp +opencv2/core/base.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h +opencv2/core/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types_c.h +cxcore.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cxcore.h +cxcore.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cxcore.h +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/utility.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp +opencv2/core/cuda_types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda_types.hpp +opencv2/opencv.hpp +- +opencv2/core/cuda.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h +cv_cpu_config.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_config.h +cv_cpu_helper.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h +emmintrin.h +- +pmmintrin.h +- +tmmintrin.h +- +smmintrin.h +- +nmmintrin.h +- +nmmintrin.h +- +popcntintrin.h +- +immintrin.h +- +arm_neon.h +- +immintrin.h +- +immintrin.h +- +immintrin.h +- +Intrin.h +- +arm_neon.h +- +arm_neon.h +- +arm_neon.h +- +altivec.h +- +hal/msa_macros.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h +wasm_simd128.h +- +emmintrin.h +- +Intrin.h +- +arm_neon.h +- +arm_neon.h +- +altivec.h +- +immintrin.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h +opencv2/core/version.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/version.hpp +cvconfig.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvconfig.h +limits +- +limits.h +- +opencv2/core/hal/interface.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/hal/interface.h +cv_cpu_dispatch.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h +intrin.h +- +array +- +cstdint +- +stdint.h +- +stdint.h +- +opencv2/core/fast_math.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/fast_math.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +cstddef +- +cstring +- +cctype +- +string +- +algorithm +- +utility +- +cstdlib +- +cmath +- +opencv2/core/ptr.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/ptr.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp +complex +- +ostream +- +sstream +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +cmath +- +fastmath.h +- +math.h +- +emmintrin.h +- +altivec.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h +cstddef +- +stddef.h +- +stdbool.h +- +cstdint +- +stdint.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h +msa.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa.h +stdint.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/matx.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types.hpp +opencv2/core/bufferpool.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/bufferpool.hpp +type_traits +- +opencv2/core/mat.inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/mat.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/base.hpp +opencv2/core/traits.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/traits.hpp +opencv2/core/saturate.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/saturate.hpp +initializer_list +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp +cstdio +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp +cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp +opencv2/core/types.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/types.hpp +opencv2/core/mat.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/mat.hpp +opencv2/opencv.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/opencv.hpp +time.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp +algorithm +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/fast_math.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/fast_math.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp +climits +- +cfloat +- +vector +- +limits +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +opencv2/core/cvstd.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvstd.hpp +opencv2/core/matx.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/matx.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h +ipl.h +- +ipl/ipl.h +- +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +assert.h +- +stdlib.h +- +string.h +- +float.h +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core.hpp +ostream +- +functional +- +opencv2/core/utils/instrumentation.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/utils/instrumentation.hpp +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp +opencv2/core/utility.hpp +- +opencv2/core/utils/tls.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp +opencv2/core/cvdef.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/opencv2/core/cvdef.h +assert.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp +opencv2/dnn/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp +opencv2/core.hpp +- +map +- +ostream +- +opencv2/dnn/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp +vector +- +opencv2/core.hpp +- +opencv2/core/async.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/opencv2/core/async.hpp +opencv2/dnn/dict.hpp +- +opencv2/dnn/layer.hpp +- +opencv2/dnn/dnn.inl.hpp +- +opencv2/dnn/utils/inference_engine.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp +opencv2/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp +opencv2/dnn.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp +../dnn.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/opencv_modules.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/core.hpp +opencv2/flann/miniflann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/opencv2/flann/miniflann.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/core.hpp +opencv2/flann/miniflann.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/flann/miniflann.hpp +opencv2/flann/flann_base.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/opencv2/flann/flann_base.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kdtree_single_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +composite_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +linear_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +hierarchical_clustering_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h +lsh_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h +autotuned_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +stdlib.h +- +stdio.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +stdexcept +- +ostream +- +typeinfo +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h +sstream +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +ground_truth.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h +index_testing.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h +sampling.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kdtree_single_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +composite_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +linear_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +kdtree_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +kmeans_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +config.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +cmath +- +cstdlib +- +string.h +- +stdint.h +- +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h +Intrin.h +- +arm_neon.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/arm_neon.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +boost/dynamic_bitset.hpp +- +limits.h +- +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp +vector +- +cstdio +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +params.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +all_indices.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +algorithm +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h +algorithm +- +map +- +limits +- +cmath +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h +cstring +- +cmath +- +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h +timer.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h +algorithm +- +map +- +cstring +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dynamic_bitset.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h +algorithm +- +map +- +cstring +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h +algorithm +- +map +- +limits +- +cmath +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +dist.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +logger.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h +stdio.h +- +stdarg.h +- +defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h +algorithm +- +cstring +- +map +- +vector +- +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +heap.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h +lsh_table.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h +allocator.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +saving.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h +algorithm +- +iostream +- +iomanip +- +limits.h +- +unordered_map +- +map +- +math.h +- +stddef.h +- +dynamic_bitset.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +stdio.h +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp +opencv2/flann/defines.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/flann/defines.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +result_set.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +params.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h +any.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +iostream +- +map +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h +algorithm +- +cstdlib +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h +algorithm +- +cstring +- +iostream +- +limits +- +set +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h +matrix.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h +random.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h +cstring +- +vector +- +general.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h +nn_index.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h +time.h +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core.hpp +opencv2/core/utility.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/opencv2/core/utility.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/core.hpp +opencv2/imgcodecs.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/imgcodecs.hpp +opencv2/videoio.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/videoio.hpp +opencv2/highgui/highgui_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/opencv2/highgui/highgui_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp +opencv2/highgui.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/highgui.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/core/core_c.h +opencv2/imgproc/imgproc_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/imgproc/imgproc_c.h +opencv2/imgcodecs/imgcodecs_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/imgcodecs/imgcodecs_c.h +opencv2/videoio/videoio_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/opencv2/videoio/videoio_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/opencv2/core.hpp +opencv2/imgproc/imgproc_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/opencv2/imgproc/imgproc_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h +opencv2/imgproc/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/imgproc/types_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/opencv2/core.hpp +float.h +- +map +- +iostream +- +opencv2/ml/ml.inl.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/core.hpp +opencv2/objdetect/detection_based_tracker.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/objdetect/detection_based_tracker.hpp +opencv2/objdetect/objdetect_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/opencv2/objdetect/objdetect_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp +opencv2/core.hpp +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/opencv2/core/core_c.h +deque +- +vector +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/imgproc.hpp +opencv2/photo/photo_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/opencv2/photo/photo_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp +opencv2/shape/emdL1.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/emdL1.hpp +opencv2/shape/shape_transformer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/shape_transformer.hpp +opencv2/shape/hist_cost.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/hist_cost.hpp +opencv2/shape/shape_distance.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/opencv2/shape/shape_distance.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp +opencv2/shape/hist_cost.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/shape/hist_cost.hpp +opencv2/shape/shape_transformer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/shape/shape_transformer.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/features2d.hpp +opencv2/stitching/warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/warpers.hpp +opencv2/stitching/detail/matchers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/matchers.hpp +opencv2/stitching/detail/motion_estimators.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/motion_estimators.hpp +opencv2/stitching/detail/exposure_compensate.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/exposure_compensate.hpp +opencv2/stitching/detail/seam_finders.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/seam_finders.hpp +opencv2/stitching/detail/blenders.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/blenders.hpp +opencv2/stitching/detail/camera.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/opencv2/stitching/detail/camera.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp +opencv2/xfeatures2d/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/xfeatures2d/cuda.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +matchers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp +util.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp +camera.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp +set +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp +list +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +util_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp +queue +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +util.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core/cuda.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/imgproc.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/opencv_modules.hpp +warpers_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/opencv2/core.hpp +warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp +limits +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp +opencv2/stitching/detail/warpers.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/opencv2/stitching/detail/warpers.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/opencv2/core.hpp +opencv2/superres/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/opencv2/superres/optical_flow.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp +opencv2/video/tracking.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/tracking.hpp +opencv2/video/background_segm.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/background_segm.hpp +opencv2/video/tracking_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/opencv2/video/tracking_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h +opencv2/imgproc/types_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/opencv2/imgproc/types_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h +opencv2/core/core_c.h +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/opencv2/core/core_c.h + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp +opencv2/videostab/stabilizer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/opencv2/videostab/stabilizer.hpp +opencv2/videostab/ring_buffer.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/opencv2/videostab/ring_buffer.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp +cmath +- +queue +- +algorithm +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +fast_marching_inl.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp +opencv2/videostab/fast_marching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/fast_marching.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp +vector +- +fstream +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/features2d.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/features2d.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/opencv_modules.hpp +opencv2/videostab/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/optical_flow.hpp +opencv2/videostab/motion_core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_core.hpp +opencv2/videostab/outlier_rejection.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/outlier_rejection.hpp +opencv2/cudaimgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/cudaimgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/optical_flow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/optical_flow.hpp +opencv2/videostab/fast_marching.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/fast_marching.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/photo.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/photo.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp +cmath +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp +vector +- +utility +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/opencv_modules.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/opencv_modules.hpp +opencv2/cudaoptflow.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/cudaoptflow.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/videostab/motion_core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_core.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp +vector +- +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/imgproc.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp +vector +- +ctime +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/imgproc.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/imgproc.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/videostab/motion_stabilizing.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/motion_stabilizing.hpp +opencv2/videostab/frame_source.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/frame_source.hpp +opencv2/videostab/log.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/log.hpp +opencv2/videostab/inpainting.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/inpainting.hpp +opencv2/videostab/deblurring.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/deblurring.hpp +opencv2/videostab/wobble_suppression.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/wobble_suppression.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp +vector +- +opencv2/core.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core.hpp +opencv2/core/cuda.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/core/cuda.hpp +opencv2/videostab/global_motion.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/global_motion.hpp +opencv2/videostab/log.hpp +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/opencv2/videostab/log.hpp + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- +opencv2/viz/viz3d.hpp +- +opencv2/viz/vizcore.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp +string +- +opencv2/core.hpp +- +opencv2/core/affine.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp +opencv2/core.hpp +- +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp +opencv2/viz/types.hpp +- +opencv2/viz/widgets.hpp +- +opencv2/viz/viz3d.hpp +- + +/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp +opencv2/viz/types.hpp +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem.h +deque +- +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/NumType.h +util/globalCalib.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/globalCalib.h +vector +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/vector +iostream +- +fstream +- +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/NumType.h +FullSystem/Residuals.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem/Residuals.h +FullSystem/HessianBlocks.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem/HessianBlocks.h +util/FrameShell.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/FrameShell.h +util/IndexThreadReduce.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/IndexThreadReduce.h +OptimizationBackend/EnergyFunctional.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/OptimizationBackend/EnergyFunctional.h +FullSystem/PixelSelector2.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem/PixelSelector2.h +math.h +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/PixelSelector2.h +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/util/NumType.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/ImageDisplay.h +vector +- +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/util/NumType.h +util/MinimalImage.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/util/MinimalImage.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Output3DWrapper.h +vector +- +string +- +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/util/NumType.h +util/MinimalImage.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/util/MinimalImage.h +map +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/map + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h +boost/thread.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/boost/thread.hpp +util/MinimalImage.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/util/MinimalImage.h +IOWrapper/Output3DWrapper.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/IOWrapper/Output3DWrapper.h +FullSystem/HessianBlocks.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/FullSystem/HessianBlocks.h +util/FrameShell.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/util/FrameShell.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h +pangolin/pangolin.h +- +boost/thread.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/boost/thread.hpp +util/MinimalImage.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/util/MinimalImage.h +IOWrapper/Output3DWrapper.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/IOWrapper/Output3DWrapper.h +map +- +deque +- +opencv2/core/core.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/core/core.hpp +opencv2/imgproc/imgproc.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/imgproc/imgproc.hpp +opencv2/calib3d/calib3d.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/calib3d/calib3d.hpp +opencv2/highgui/highgui.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/opencv2/highgui/highgui.hpp + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/MatrixAccumulators.h +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/util/NumType.h +SSE2NEON.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/SSE2NEON.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/main_dso_pangolin.cpp +thread +- +locale.h +- +signal.h +- +stdlib.h +- +stdio.h +- +unistd.h +- +IOWrapper/Output3DWrapper.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Output3DWrapper.h +IOWrapper/ImageDisplay.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/ImageDisplay.h +boost/thread.hpp +- +util/settings.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/settings.h +util/globalFuncs.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalFuncs.h +util/DatasetReader.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/DatasetReader.h +util/globalCalib.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalCalib.h +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/NumType.h +FullSystem/FullSystem.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem.h +OptimizationBackend/MatrixAccumulators.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/MatrixAccumulators.h +FullSystem/PixelSelector2.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/PixelSelector2.h +IOWrapper/Pangolin/PangolinDSOViewer.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h +IOWrapper/OutputWrapper/SampleOutputWrapper.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h +fstream +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/DatasetReader.h +util/settings.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/settings.h +util/globalFuncs.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/globalFuncs.h +util/globalCalib.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/globalCalib.h +sstream +- +fstream +- +dirent.h +- +algorithm +- +util/Undistort.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/Undistort.h +IOWrapper/ImageRW.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/IOWrapper/ImageRW.h +zip.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/zip.h +boost/thread.hpp +- + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/NumType.h +Eigen/Core +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/Eigen/Core +sophus/sim3.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/sophus/sim3.hpp +sophus/se3.hpp +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/sophus/se3.hpp + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalCalib.h +util/settings.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/settings.h +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/NumType.h + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalFuncs.h +util/settings.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/settings.h +util/NumType.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/util/NumType.h +IOWrapper/ImageDisplay.h +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/IOWrapper/ImageDisplay.h +fstream +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/fstream + +/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/settings.h +string.h +- +string +- +cmath +- + +/usr/include/eigen3/Eigen/Cholesky +Core +/usr/include/eigen3/Eigen/Core +Jacobi +/usr/include/eigen3/Eigen/Jacobi +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Cholesky/LLT.h +/usr/include/eigen3/Eigen/src/Cholesky/LLT.h +src/Cholesky/LDLT.h +/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/Cholesky/LLT_LAPACKE.h +/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +cuda_runtime.h +- +new +- +src/Core/util/Macros.h +/usr/include/eigen3/Eigen/src/Core/util/Macros.h +complex +- +src/Core/util/MKL_support.h +/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h +malloc.h +- +immintrin.h +- +mmintrin.h +- +emmintrin.h +- +xmmintrin.h +- +pmmintrin.h +- +tmmintrin.h +- +smmintrin.h +- +nmmintrin.h +- +immintrin.h +- +altivec.h +- +altivec.h +- +arm_neon.h +- +vecintrin.h +- +vector_types.h +- +host_defines.h +- +cuda_fp16.h +- +omp.h +- +cerrno +- +cstddef +- +cstdlib +- +cmath +- +cassert +- +functional +- +iosfwd +- +cstring +- +string +- +limits +- +climits +- +algorithm +- +type_traits +- +iostream +- +intrin.h +- +src/Core/util/Constants.h +/usr/include/eigen3/Eigen/src/Core/util/Constants.h +src/Core/util/Meta.h +/usr/include/eigen3/Eigen/src/Core/util/Meta.h +src/Core/util/ForwardDeclarations.h +/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h +src/Core/util/StaticAssert.h +/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h +src/Core/util/XprHelper.h +/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h +src/Core/util/Memory.h +/usr/include/eigen3/Eigen/src/Core/util/Memory.h +src/Core/NumTraits.h +/usr/include/eigen3/Eigen/src/Core/NumTraits.h +src/Core/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/MathFunctions.h +src/Core/GenericPacketMath.h +/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h +src/Core/MathFunctionsImpl.h +/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h +src/Core/arch/Default/ConjHelper.h +/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/AVX/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +src/Core/arch/AVX512/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h +src/Core/arch/AVX512/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/SSE/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +src/Core/arch/SSE/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +src/Core/arch/AVX/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h +src/Core/arch/AVX/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h +src/Core/arch/AVX/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h +src/Core/arch/AVX/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h +src/Core/arch/SSE/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +src/Core/arch/SSE/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h +src/Core/arch/SSE/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h +src/Core/arch/SSE/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h +src/Core/arch/SSE/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h +src/Core/arch/AltiVec/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h +src/Core/arch/AltiVec/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h +src/Core/arch/AltiVec/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h +src/Core/arch/NEON/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h +src/Core/arch/NEON/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h +src/Core/arch/NEON/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h +src/Core/arch/ZVector/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +src/Core/arch/ZVector/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h +src/Core/arch/ZVector/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h +src/Core/arch/CUDA/Half.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h +src/Core/arch/CUDA/PacketMathHalf.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h +src/Core/arch/CUDA/TypeCasting.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h +src/Core/arch/CUDA/PacketMath.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h +src/Core/arch/CUDA/MathFunctions.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h +src/Core/arch/Default/Settings.h +/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h +src/Core/functors/TernaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h +src/Core/functors/BinaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h +src/Core/functors/UnaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h +src/Core/functors/NullaryFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h +src/Core/functors/StlFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h +src/Core/functors/AssignmentFunctors.h +/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h +src/Core/arch/CUDA/Complex.h +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h +src/Core/IO.h +/usr/include/eigen3/Eigen/src/Core/IO.h +src/Core/DenseCoeffsBase.h +/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h +src/Core/DenseBase.h +/usr/include/eigen3/Eigen/src/Core/DenseBase.h +src/Core/MatrixBase.h +/usr/include/eigen3/Eigen/src/Core/MatrixBase.h +src/Core/EigenBase.h +/usr/include/eigen3/Eigen/src/Core/EigenBase.h +src/Core/Product.h +/usr/include/eigen3/Eigen/src/Core/Product.h +src/Core/CoreEvaluators.h +/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h +src/Core/AssignEvaluator.h +/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h +src/Core/Assign.h +/usr/include/eigen3/Eigen/src/Core/Assign.h +src/Core/ArrayBase.h +/usr/include/eigen3/Eigen/src/Core/ArrayBase.h +src/Core/util/BlasUtil.h +/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h +src/Core/DenseStorage.h +/usr/include/eigen3/Eigen/src/Core/DenseStorage.h +src/Core/NestByValue.h +/usr/include/eigen3/Eigen/src/Core/NestByValue.h +src/Core/ReturnByValue.h +/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h +src/Core/NoAlias.h +/usr/include/eigen3/Eigen/src/Core/NoAlias.h +src/Core/PlainObjectBase.h +/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h +src/Core/Matrix.h +/usr/include/eigen3/Eigen/src/Core/Matrix.h +src/Core/Array.h +/usr/include/eigen3/Eigen/src/Core/Array.h +src/Core/CwiseTernaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h +src/Core/CwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h +src/Core/CwiseUnaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h +src/Core/CwiseNullaryOp.h +/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h +src/Core/CwiseUnaryView.h +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h +src/Core/SelfCwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h +src/Core/Dot.h +/usr/include/eigen3/Eigen/src/Core/Dot.h +src/Core/StableNorm.h +/usr/include/eigen3/Eigen/src/Core/StableNorm.h +src/Core/Stride.h +/usr/include/eigen3/Eigen/src/Core/Stride.h +src/Core/MapBase.h +/usr/include/eigen3/Eigen/src/Core/MapBase.h +src/Core/Map.h +/usr/include/eigen3/Eigen/src/Core/Map.h +src/Core/Ref.h +/usr/include/eigen3/Eigen/src/Core/Ref.h +src/Core/Block.h +/usr/include/eigen3/Eigen/src/Core/Block.h +src/Core/VectorBlock.h +/usr/include/eigen3/Eigen/src/Core/VectorBlock.h +src/Core/Transpose.h +/usr/include/eigen3/Eigen/src/Core/Transpose.h +src/Core/DiagonalMatrix.h +/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h +src/Core/Diagonal.h +/usr/include/eigen3/Eigen/src/Core/Diagonal.h +src/Core/DiagonalProduct.h +/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h +src/Core/Redux.h +/usr/include/eigen3/Eigen/src/Core/Redux.h +src/Core/Visitor.h +/usr/include/eigen3/Eigen/src/Core/Visitor.h +src/Core/Fuzzy.h +/usr/include/eigen3/Eigen/src/Core/Fuzzy.h +src/Core/Swap.h +/usr/include/eigen3/Eigen/src/Core/Swap.h +src/Core/CommaInitializer.h +/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h +src/Core/GeneralProduct.h +/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h +src/Core/Solve.h +/usr/include/eigen3/Eigen/src/Core/Solve.h +src/Core/Inverse.h +/usr/include/eigen3/Eigen/src/Core/Inverse.h +src/Core/SolverBase.h +/usr/include/eigen3/Eigen/src/Core/SolverBase.h +src/Core/PermutationMatrix.h +/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h +src/Core/Transpositions.h +/usr/include/eigen3/Eigen/src/Core/Transpositions.h +src/Core/TriangularMatrix.h +/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h +src/Core/SelfAdjointView.h +/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h +src/Core/products/GeneralBlockPanelKernel.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h +src/Core/products/Parallelizer.h +/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h +src/Core/ProductEvaluators.h +/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h +src/Core/products/GeneralMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h +src/Core/products/GeneralMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h +src/Core/SolveTriangular.h +/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h +src/Core/products/GeneralMatrixMatrixTriangular.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h +src/Core/products/SelfadjointMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h +src/Core/products/SelfadjointMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h +src/Core/products/SelfadjointProduct.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h +src/Core/products/SelfadjointRank2Update.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h +src/Core/products/TriangularMatrixVector.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h +src/Core/products/TriangularMatrixMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h +src/Core/products/TriangularSolverMatrix.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h +src/Core/products/TriangularSolverVector.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h +src/Core/BandMatrix.h +/usr/include/eigen3/Eigen/src/Core/BandMatrix.h +src/Core/CoreIterators.h +/usr/include/eigen3/Eigen/src/Core/CoreIterators.h +src/Core/ConditionEstimator.h +/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h +src/Core/BooleanRedux.h +/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h +src/Core/Select.h +/usr/include/eigen3/Eigen/src/Core/Select.h +src/Core/VectorwiseOp.h +/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h +src/Core/Random.h +/usr/include/eigen3/Eigen/src/Core/Random.h +src/Core/Replicate.h +/usr/include/eigen3/Eigen/src/Core/Replicate.h +src/Core/Reverse.h +/usr/include/eigen3/Eigen/src/Core/Reverse.h +src/Core/ArrayWrapper.h +/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h +src/Core/products/GeneralMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h +src/Core/products/GeneralMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h +src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h +src/Core/products/SelfadjointMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h +src/Core/products/SelfadjointMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h +src/Core/products/TriangularMatrixMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h +src/Core/products/TriangularMatrixVector_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h +src/Core/products/TriangularSolverMatrix_BLAS.h +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h +src/Core/Assign_MKL.h +/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h +src/Core/GlobalFunctions.h +/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Dense +Core +/usr/include/eigen3/Eigen/Core +LU +/usr/include/eigen3/Eigen/LU +Cholesky +/usr/include/eigen3/Eigen/Cholesky +QR +/usr/include/eigen3/Eigen/QR +SVD +/usr/include/eigen3/Eigen/SVD +Geometry +/usr/include/eigen3/Eigen/Geometry +Eigenvalues +/usr/include/eigen3/Eigen/Eigenvalues + +/usr/include/eigen3/Eigen/Eigen +Dense +/usr/include/eigen3/Eigen/Dense +Sparse +/usr/include/eigen3/Eigen/Sparse + +/usr/include/eigen3/Eigen/Eigenvalues +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Cholesky +/usr/include/eigen3/Eigen/Cholesky +Jacobi +/usr/include/eigen3/Eigen/Jacobi +Householder +/usr/include/eigen3/Eigen/Householder +LU +/usr/include/eigen3/Eigen/LU +Geometry +/usr/include/eigen3/Eigen/Geometry +src/misc/RealSvd2x2.h +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h +src/Eigenvalues/Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h +src/Eigenvalues/RealSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +src/Eigenvalues/EigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +src/Eigenvalues/SelfAdjointEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +src/Eigenvalues/HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h +src/Eigenvalues/ComplexSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +src/Eigenvalues/ComplexEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +src/Eigenvalues/RealQZ.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h +src/Eigenvalues/GeneralizedEigenSolver.h +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +src/Eigenvalues/MatrixBaseEigenvalues.h +/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/Eigenvalues/RealSchur_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h +src/Eigenvalues/ComplexSchur_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h +src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Geometry +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +SVD +/usr/include/eigen3/Eigen/SVD +LU +/usr/include/eigen3/Eigen/LU +limits +- +src/Geometry/OrthoMethods.h +/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h +src/Geometry/EulerAngles.h +/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h +src/Geometry/Homogeneous.h +/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h +src/Geometry/RotationBase.h +/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h +src/Geometry/Rotation2D.h +/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h +src/Geometry/Quaternion.h +/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h +src/Geometry/AngleAxis.h +/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h +src/Geometry/Transform.h +/usr/include/eigen3/Eigen/src/Geometry/Transform.h +src/Geometry/Translation.h +/usr/include/eigen3/Eigen/src/Geometry/Translation.h +src/Geometry/Scaling.h +/usr/include/eigen3/Eigen/src/Geometry/Scaling.h +src/Geometry/Hyperplane.h +/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h +src/Geometry/ParametrizedLine.h +/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h +src/Geometry/AlignedBox.h +/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h +src/Geometry/Umeyama.h +/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h +src/Geometry/arch/Geometry_SSE.h +/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Householder +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Householder/Householder.h +/usr/include/eigen3/Eigen/src/Householder/Householder.h +src/Householder/HouseholderSequence.h +/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h +src/Householder/BlockHouseholder.h +/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/IterativeLinearSolvers +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Eigen/IterativeLinearSolvers +- +src/IterativeLinearSolvers/SolveWithGuess.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h +src/IterativeLinearSolvers/IterativeSolverBase.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h +src/IterativeLinearSolvers/BasicPreconditioners.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h +src/IterativeLinearSolvers/ConjugateGradient.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h +src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h +src/IterativeLinearSolvers/BiCGSTAB.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h +src/IterativeLinearSolvers/IncompleteLUT.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h +src/IterativeLinearSolvers/IncompleteCholesky.h +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Jacobi +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/Jacobi/Jacobi.h +/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/LU +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/misc/Kernel.h +/usr/include/eigen3/Eigen/src/misc/Kernel.h +src/misc/Image.h +/usr/include/eigen3/Eigen/src/misc/Image.h +src/LU/FullPivLU.h +/usr/include/eigen3/Eigen/src/LU/FullPivLU.h +src/LU/PartialPivLU.h +/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/LU/PartialPivLU_LAPACKE.h +/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h +src/LU/Determinant.h +/usr/include/eigen3/Eigen/src/LU/Determinant.h +src/LU/InverseImpl.h +/usr/include/eigen3/Eigen/src/LU/InverseImpl.h +src/LU/arch/Inverse_SSE.h +/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/OrderingMethods +SparseCore +/usr/include/eigen3/Eigen/SparseCore +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/OrderingMethods/Amd.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h +src/OrderingMethods/Ordering.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/QR +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +Cholesky +/usr/include/eigen3/Eigen/Cholesky +Jacobi +/usr/include/eigen3/Eigen/Jacobi +Householder +/usr/include/eigen3/Eigen/Householder +src/QR/HouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h +src/QR/FullPivHouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h +src/QR/ColPivHouseholderQR.h +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h +src/QR/CompleteOrthogonalDecomposition.h +/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/QR/HouseholderQR_LAPACKE.h +/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h +src/QR/ColPivHouseholderQR_LAPACKE.h +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SVD +QR +/usr/include/eigen3/Eigen/QR +Householder +/usr/include/eigen3/Eigen/Householder +Jacobi +/usr/include/eigen3/Eigen/Jacobi +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/misc/RealSvd2x2.h +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h +src/SVD/UpperBidiagonalization.h +/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h +src/SVD/SVDBase.h +/usr/include/eigen3/Eigen/src/SVD/SVDBase.h +src/SVD/JacobiSVD.h +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h +src/SVD/BDCSVD.h +/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h +mkl_lapacke.h +/usr/include/eigen3/Eigen/mkl_lapacke.h +src/misc/lapacke.h +/usr/include/eigen3/Eigen/src/misc/lapacke.h +src/SVD/JacobiSVD_LAPACKE.h +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/Sparse +Eigen/Sparse +- +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +SparseCholesky +/usr/include/eigen3/Eigen/SparseCholesky +SparseLU +/usr/include/eigen3/Eigen/SparseLU +SparseQR +/usr/include/eigen3/Eigen/SparseQR +IterativeLinearSolvers +/usr/include/eigen3/Eigen/IterativeLinearSolvers + +/usr/include/eigen3/Eigen/SparseCholesky +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +src/SparseCholesky/SimplicialCholesky.h +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h +src/SparseCholesky/SimplicialCholesky_impl.h +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SparseCore +Core +/usr/include/eigen3/Eigen/Core +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +vector +- +map +- +cstdlib +- +cstring +- +algorithm +- +src/SparseCore/SparseUtil.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h +src/SparseCore/SparseMatrixBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +src/SparseCore/SparseAssign.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h +src/SparseCore/CompressedStorage.h +/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h +src/SparseCore/AmbiVector.h +/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h +src/SparseCore/SparseCompressedBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h +src/SparseCore/SparseMatrix.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h +src/SparseCore/SparseMap.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h +src/SparseCore/MappedSparseMatrix.h +/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h +src/SparseCore/SparseVector.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h +src/SparseCore/SparseRef.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h +src/SparseCore/SparseCwiseUnaryOp.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h +src/SparseCore/SparseCwiseBinaryOp.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h +src/SparseCore/SparseTranspose.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h +src/SparseCore/SparseBlock.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h +src/SparseCore/SparseDot.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h +src/SparseCore/SparseRedux.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h +src/SparseCore/SparseView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h +src/SparseCore/SparseDiagonalProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h +src/SparseCore/ConservativeSparseSparseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h +src/SparseCore/SparseSparseProductWithPruning.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h +src/SparseCore/SparseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h +src/SparseCore/SparseDenseProduct.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h +src/SparseCore/SparseSelfAdjointView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h +src/SparseCore/SparseTriangularView.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h +src/SparseCore/TriangularSolver.h +/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h +src/SparseCore/SparsePermutation.h +/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h +src/SparseCore/SparseFuzzy.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h +src/SparseCore/SparseSolverBase.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/SparseLU +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/SparseLU/SparseLU_gemm_kernel.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h +src/SparseLU/SparseLU_Structs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h +src/SparseLU/SparseLU_SupernodalMatrix.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h +src/SparseLU/SparseLUImpl.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h +src/SparseCore/SparseColEtree.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +src/SparseLU/SparseLU_Memory.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h +src/SparseLU/SparseLU_heap_relax_snode.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h +src/SparseLU/SparseLU_relax_snode.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h +src/SparseLU/SparseLU_pivotL.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h +src/SparseLU/SparseLU_panel_dfs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h +src/SparseLU/SparseLU_kernel_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h +src/SparseLU/SparseLU_panel_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h +src/SparseLU/SparseLU_column_dfs.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h +src/SparseLU/SparseLU_column_bmod.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h +src/SparseLU/SparseLU_copy_to_ucol.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h +src/SparseLU/SparseLU_pruneL.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h +src/SparseLU/SparseLU_Utils.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h +src/SparseLU/SparseLU.h +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + +/usr/include/eigen3/Eigen/SparseQR +SparseCore +/usr/include/eigen3/Eigen/SparseCore +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/Core/util/DisableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h +OrderingMethods +/usr/include/eigen3/Eigen/OrderingMethods +src/SparseCore/SparseColEtree.h +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h +src/SparseQR/SparseQR.h +/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h +src/Core/util/ReenableStupidWarnings.h +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + +/usr/include/eigen3/Eigen/src/Cholesky/LLT.h + +/usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Core/Array.h + +/usr/include/eigen3/Eigen/src/Core/ArrayBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/ArrayCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +../plugins/ArrayCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + +/usr/include/eigen3/Eigen/src/Core/Assign.h + +/usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + +/usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + +/usr/include/eigen3/Eigen/src/Core/BandMatrix.h + +/usr/include/eigen3/Eigen/src/Core/Block.h + +/usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + +/usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + +/usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + +/usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + +/usr/include/eigen3/Eigen/src/Core/CoreIterators.h + +/usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + +/usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + +/usr/include/eigen3/Eigen/src/Core/DenseBase.h +../plugins/BlockMethods.h +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + +/usr/include/eigen3/Eigen/src/Core/DenseStorage.h + +/usr/include/eigen3/Eigen/src/Core/Diagonal.h + +/usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + +/usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + +/usr/include/eigen3/Eigen/src/Core/Dot.h + +/usr/include/eigen3/Eigen/src/Core/EigenBase.h + +/usr/include/eigen3/Eigen/src/Core/Fuzzy.h + +/usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + +/usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + +/usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + +/usr/include/eigen3/Eigen/src/Core/IO.h + +/usr/include/eigen3/Eigen/src/Core/Inverse.h + +/usr/include/eigen3/Eigen/src/Core/Map.h + +/usr/include/eigen3/Eigen/src/Core/MapBase.h + +/usr/include/eigen3/Eigen/src/Core/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + +/usr/include/eigen3/Eigen/src/Core/Matrix.h + +/usr/include/eigen3/Eigen/src/Core/MatrixBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/Core/NestByValue.h + +/usr/include/eigen3/Eigen/src/Core/NoAlias.h + +/usr/include/eigen3/Eigen/src/Core/NumTraits.h + +/usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + +/usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + +/usr/include/eigen3/Eigen/src/Core/Product.h + +/usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + +/usr/include/eigen3/Eigen/src/Core/Random.h + +/usr/include/eigen3/Eigen/src/Core/Redux.h + +/usr/include/eigen3/Eigen/src/Core/Ref.h + +/usr/include/eigen3/Eigen/src/Core/Replicate.h + +/usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + +/usr/include/eigen3/Eigen/src/Core/Reverse.h + +/usr/include/eigen3/Eigen/src/Core/Select.h + +/usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + +/usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/Core/Solve.h + +/usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + +/usr/include/eigen3/Eigen/src/Core/SolverBase.h + +/usr/include/eigen3/Eigen/src/Core/StableNorm.h + +/usr/include/eigen3/Eigen/src/Core/Stride.h + +/usr/include/eigen3/Eigen/src/Core/Swap.h + +/usr/include/eigen3/Eigen/src/Core/Transpose.h + +/usr/include/eigen3/Eigen/src/Core/Transpositions.h + +/usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + +/usr/include/eigen3/Eigen/src/Core/VectorBlock.h + +/usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + +/usr/include/eigen3/Eigen/src/Core/Visitor.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + +/usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + +/usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + +/usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + +/usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h +stdint.h +- + +/usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + +/usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + +/usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + +/usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + +/usr/include/eigen3/Eigen/src/Core/util/Constants.h + +/usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + +/usr/include/eigen3/Eigen/src/Core/util/MKL_support.h +mkl.h +- +../../misc/blas.h +/usr/include/eigen3/Eigen/src/misc/blas.h + +/usr/include/eigen3/Eigen/src/Core/util/Macros.h +cstdlib +- +iostream +- + +/usr/include/eigen3/Eigen/src/Core/util/Memory.h + +/usr/include/eigen3/Eigen/src/Core/util/Meta.h +cfloat +- +math_constants.h +- +cstdint +- + +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + +/usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + +/usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h +./ComplexSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h +./HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h +./RealSchur.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h +./RealQZ.h +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h +./Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h +./HessenbergDecomposition.h +/usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h +./Tridiagonalization.h +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + +/usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + +/usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + +/usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + +/usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + +/usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + +/usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + +/usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + +/usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + +/usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + +/usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + +/usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + +/usr/include/eigen3/Eigen/src/Geometry/Scaling.h + +/usr/include/eigen3/Eigen/src/Geometry/Transform.h + +/usr/include/eigen3/Eigen/src/Geometry/Translation.h + +/usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + +/usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + +/usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + +/usr/include/eigen3/Eigen/src/Householder/Householder.h + +/usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h +vector +- +list +- + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + +/usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + +/usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + +/usr/include/eigen3/Eigen/src/LU/Determinant.h + +/usr/include/eigen3/Eigen/src/LU/FullPivLU.h + +/usr/include/eigen3/Eigen/src/LU/InverseImpl.h + +/usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + +/usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + +/usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h +../Core/util/NonMPL2.h +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + +/usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h +Eigen_Colamd.h +/usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + +/usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + +/usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + +/usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + +/usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + +/usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + +/usr/include/eigen3/Eigen/src/SVD/SVDBase.h + +/usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + +/usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h +../Core/util/NonMPL2.h +/usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + +/usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + +/usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + +/usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h +../plugins/CommonCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h +../plugins/CommonCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h +../plugins/MatrixCwiseUnaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h +../plugins/MatrixCwiseBinaryOps.h +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h +../plugins/BlockMethods.h +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + +/usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + +/usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + +/usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + +/usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + +/usr/include/eigen3/Eigen/src/misc/Image.h + +/usr/include/eigen3/Eigen/src/misc/Kernel.h + +/usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + +/usr/include/eigen3/Eigen/src/misc/blas.h + +/usr/include/eigen3/Eigen/src/misc/lapacke.h +lapacke_config.h +/usr/include/eigen3/Eigen/src/misc/lapacke_config.h +stdlib.h +- +complex.h +- +complex.h +- +lapacke_mangling.h +/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + +/usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + +/usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h + diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/DependInfo.cmake b/cmake-build-debug/CMakeFiles/dso_dataset.dir/DependInfo.cmake new file mode 100644 index 0000000..3ec34b0 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/DependInfo.cmake @@ -0,0 +1,64 @@ + +# Consider dependencies only in project. +set(CMAKE_DEPENDS_IN_PROJECT_ONLY OFF) + +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/main_dso_pangolin.cpp" "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# Preprocessor definitions for this target. +set(CMAKE_TARGET_DEFINITIONS_CXX + "ENABLE_SSE" + "HAS_ZIPLIB=1" + ) + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + "../src" + "../thirdparty/Sophus" + "../thirdparty/sse2neon" + "/usr/include/suitesparse" + "/usr/include/eigen3" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include" + "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ts/include" + "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include" + ) + +# The set of dependency files which are needed: +set(CMAKE_DEPENDS_DEPENDENCY_FILES + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles/dso.dir/DependInfo.cmake" + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/cmake_clean.cmake b/cmake-build-debug/CMakeFiles/dso_dataset.dir/cmake_clean.cmake new file mode 100644 index 0000000..2a75b0d --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o" + "bin/dso_dataset" + "bin/dso_dataset.pdb" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/dso_dataset.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.internal b/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.internal new file mode 100644 index 0000000..81ed3a9 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.internal @@ -0,0 +1,519 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o + ../src/FullSystem/HessianBlocks.h + ../src/FullSystem/Residuals.h + ../src/IOWrapper/ImageRW.h + ../src/OptimizationBackend/EnergyFunctional.h + ../src/OptimizationBackend/RawResidualJacobian.h + ../src/util/FrameShell.h + ../src/util/ImageAndExposure.h + ../src/util/IndexThreadReduce.h + ../src/util/MinimalImage.h + ../src/util/Undistort.h + ../thirdparty/Sophus/sophus/rxso3.hpp + ../thirdparty/Sophus/sophus/se3.hpp + ../thirdparty/Sophus/sophus/sim3.hpp + ../thirdparty/Sophus/sophus/so3.hpp + ../thirdparty/Sophus/sophus/sophus.hpp + ../thirdparty/sse2neon/SSE2NEON.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/attach.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/display.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/view.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/display/window.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/copy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/pangolin.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/platform.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/plot/range.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/log.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/params.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/var.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h + /home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cv_cpu_config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/cvconfig.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv/cxcore.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp + /home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/FullSystem.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/FullSystem/PixelSelector2.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/ImageDisplay.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Output3DWrapper.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/IOWrapper/Pangolin/PangolinDSOViewer.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/OptimizationBackend/MatrixAccumulators.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/main_dso_pangolin.cpp + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/DatasetReader.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/NumType.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalCalib.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/globalFuncs.h + /home/ivan/ivan/git/work_drivecast2/SLAM/dso/src/util/settings.h + /usr/include/eigen3/Eigen/Cholesky + /usr/include/eigen3/Eigen/Core + /usr/include/eigen3/Eigen/Dense + /usr/include/eigen3/Eigen/Eigen + /usr/include/eigen3/Eigen/Eigenvalues + /usr/include/eigen3/Eigen/Geometry + /usr/include/eigen3/Eigen/Householder + /usr/include/eigen3/Eigen/IterativeLinearSolvers + /usr/include/eigen3/Eigen/Jacobi + /usr/include/eigen3/Eigen/LU + /usr/include/eigen3/Eigen/OrderingMethods + /usr/include/eigen3/Eigen/QR + /usr/include/eigen3/Eigen/SVD + /usr/include/eigen3/Eigen/Sparse + /usr/include/eigen3/Eigen/SparseCholesky + /usr/include/eigen3/Eigen/SparseCore + /usr/include/eigen3/Eigen/SparseLU + /usr/include/eigen3/Eigen/SparseQR + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h + /usr/include/eigen3/Eigen/src/Core/Array.h + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h + /usr/include/eigen3/Eigen/src/Core/Assign.h + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h + /usr/include/eigen3/Eigen/src/Core/Block.h + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h + /usr/include/eigen3/Eigen/src/Core/DenseBase.h + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h + /usr/include/eigen3/Eigen/src/Core/Diagonal.h + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h + /usr/include/eigen3/Eigen/src/Core/Dot.h + /usr/include/eigen3/Eigen/src/Core/EigenBase.h + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h + /usr/include/eigen3/Eigen/src/Core/IO.h + /usr/include/eigen3/Eigen/src/Core/Inverse.h + /usr/include/eigen3/Eigen/src/Core/Map.h + /usr/include/eigen3/Eigen/src/Core/MapBase.h + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h + /usr/include/eigen3/Eigen/src/Core/Matrix.h + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h + /usr/include/eigen3/Eigen/src/Core/NestByValue.h + /usr/include/eigen3/Eigen/src/Core/NoAlias.h + /usr/include/eigen3/Eigen/src/Core/NumTraits.h + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h + /usr/include/eigen3/Eigen/src/Core/Product.h + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h + /usr/include/eigen3/Eigen/src/Core/Random.h + /usr/include/eigen3/Eigen/src/Core/Redux.h + /usr/include/eigen3/Eigen/src/Core/Ref.h + /usr/include/eigen3/Eigen/src/Core/Replicate.h + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h + /usr/include/eigen3/Eigen/src/Core/Reverse.h + /usr/include/eigen3/Eigen/src/Core/Select.h + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/Core/Solve.h + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h + /usr/include/eigen3/Eigen/src/Core/SolverBase.h + /usr/include/eigen3/Eigen/src/Core/StableNorm.h + /usr/include/eigen3/Eigen/src/Core/Stride.h + /usr/include/eigen3/Eigen/src/Core/Swap.h + /usr/include/eigen3/Eigen/src/Core/Transpose.h + /usr/include/eigen3/Eigen/src/Core/Transpositions.h + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h + /usr/include/eigen3/Eigen/src/Core/Visitor.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h + /usr/include/eigen3/Eigen/src/Core/util/Constants.h + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h + /usr/include/eigen3/Eigen/src/Core/util/Macros.h + /usr/include/eigen3/Eigen/src/Core/util/Memory.h + /usr/include/eigen3/Eigen/src/Core/util/Meta.h + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h + /usr/include/eigen3/Eigen/src/Geometry/Transform.h + /usr/include/eigen3/Eigen/src/Geometry/Translation.h + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h + /usr/include/eigen3/Eigen/src/Householder/Householder.h + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h + /usr/include/eigen3/Eigen/src/LU/Determinant.h + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h + /usr/include/eigen3/Eigen/src/misc/Image.h + /usr/include/eigen3/Eigen/src/misc/Kernel.h + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h + /usr/include/eigen3/Eigen/src/misc/blas.h + /usr/include/eigen3/Eigen/src/misc/lapacke.h + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.make b/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.make new file mode 100644 index 0000000..c551209 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/depend.make @@ -0,0 +1,519 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o: \ + ../src/FullSystem/HessianBlocks.h \ + ../src/FullSystem/Residuals.h \ + ../src/IOWrapper/ImageRW.h \ + ../src/OptimizationBackend/EnergyFunctional.h \ + ../src/OptimizationBackend/RawResidualJacobian.h \ + ../src/util/FrameShell.h \ + ../src/util/ImageAndExposure.h \ + ../src/util/IndexThreadReduce.h \ + ../src/util/MinimalImage.h \ + ../src/util/Undistort.h \ + ../thirdparty/Sophus/sophus/rxso3.hpp \ + ../thirdparty/Sophus/sophus/se3.hpp \ + ../thirdparty/Sophus/sophus/sim3.hpp \ + ../thirdparty/Sophus/sophus/so3.hpp \ + ../thirdparty/Sophus/sophus/sophus.hpp \ + ../thirdparty/sse2neon/SSE2NEON.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/build/src/include/pangolin/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/compat/type_traits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/attach.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/device/display_android.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/display.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/opengl_render_state.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/view.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/viewport.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/widgets/widgets.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/display/window.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/colour.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/compat/gl_es_compat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glchar.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gldraw.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glfont.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glformattraits.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glinclude.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpangoglu.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glpixformat.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glplatform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glsl.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/gltext.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/gl/glvbo.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/handler/handler_enums.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/copy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/image_io.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/managed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/memcpy.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/pixel_format.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/image/typed_image.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/pangolin.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/platform.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/datalog.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/plotter.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/plot/range.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/assert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_extension.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/file_utils.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/format_string.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/log.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/picojson.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/simple_math.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/type_convert.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/utils/uri.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/var.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varextra.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varstate.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvalue.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluegeneric.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varvaluet.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/var/varwrapper.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/stream_info.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_exception.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_input.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output.h \ + /home/ivan/ivan/git/Work\ DriveCast/Pangolin-0.6/include/pangolin/video/video_output_interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cv_cpu_config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/cvconfig.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/build/opencv2/opencv_modules.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv/cxcore.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/include/opencv2/opencv.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/calib3d/include/opencv2/calib3d/calib3d_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/affine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/async.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/bufferpool.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/check.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/core_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cuda_types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_dispatch.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cv_cpu_helper.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvdef.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/cvstd.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/fast_math.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/interface.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/hal/msa_macros.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/mat.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/matx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/neon_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/operations.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/optim.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ovx.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/persistence.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/ptr.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/saturate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/traits.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utility.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/instrumentation.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/utils/tls.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/version.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/core/include/opencv2/core/vsx_utils.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dict.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/dnn.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/layer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/dnn/include/opencv2/dnn/utils/inference_engine.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/features2d/include/opencv2/features2d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/all_indices.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/allocator.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/any.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/autotuned_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/composite_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/config.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/defines.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dist.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/dynamic_bitset.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/flann_base.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/general.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/ground_truth.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/heap.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/hierarchical_clustering_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/index_testing.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kdtree_single_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/kmeans_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/linear_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/logger.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/lsh_table.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/matrix.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/miniflann.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/nn_index.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/params.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/random.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/result_set.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/sampling.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/saving.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/flann/include/opencv2/flann/timer.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/highgui/include/opencv2/highgui/highgui_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgcodecs/include/opencv2/imgcodecs/imgcodecs_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/imgproc_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/imgproc/include/opencv2/imgproc/types_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/ml/include/opencv2/ml/ml.inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/detection_based_tracker.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/objdetect/include/opencv2/objdetect/objdetect_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/photo/include/opencv2/photo/photo_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/emdL1.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/hist_cost.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_distance.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/shape/include/opencv2/shape/shape_transformer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/blenders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/camera.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/exposure_compensate.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/matchers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/motion_estimators.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/seam_finders.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/util_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/detail/warpers_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/stitching/include/opencv2/stitching/warpers.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/superres/include/opencv2/superres/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/background_segm.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/video/include/opencv2/video/tracking_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videoio/include/opencv2/videoio/videoio_c.h \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/deblurring.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/fast_marching_inl.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/frame_source.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/global_motion.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/inpainting.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/log.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_core.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/motion_stabilizing.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/optical_flow.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/outlier_rejection.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/ring_buffer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/stabilizer.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/videostab/include/opencv2/videostab/wobble_suppression.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/types.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/viz3d.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/vizcore.hpp \ + /home/ivan/ivan/git/Work\ DriveCast/opencv-3.4.15/modules/viz/include/opencv2/viz/widgets.hpp \ + ../src/FullSystem/FullSystem.h \ + ../src/FullSystem/PixelSelector2.h \ + ../src/IOWrapper/ImageDisplay.h \ + ../src/IOWrapper/Output3DWrapper.h \ + ../src/IOWrapper/OutputWrapper/SampleOutputWrapper.h \ + ../src/IOWrapper/Pangolin/PangolinDSOViewer.h \ + ../src/OptimizationBackend/MatrixAccumulators.h \ + ../src/main_dso_pangolin.cpp \ + ../src/util/DatasetReader.h \ + ../src/util/NumType.h \ + ../src/util/globalCalib.h \ + ../src/util/globalFuncs.h \ + ../src/util/settings.h \ + /usr/include/eigen3/Eigen/Cholesky \ + /usr/include/eigen3/Eigen/Core \ + /usr/include/eigen3/Eigen/Dense \ + /usr/include/eigen3/Eigen/Eigen \ + /usr/include/eigen3/Eigen/Eigenvalues \ + /usr/include/eigen3/Eigen/Geometry \ + /usr/include/eigen3/Eigen/Householder \ + /usr/include/eigen3/Eigen/IterativeLinearSolvers \ + /usr/include/eigen3/Eigen/Jacobi \ + /usr/include/eigen3/Eigen/LU \ + /usr/include/eigen3/Eigen/OrderingMethods \ + /usr/include/eigen3/Eigen/QR \ + /usr/include/eigen3/Eigen/SVD \ + /usr/include/eigen3/Eigen/Sparse \ + /usr/include/eigen3/Eigen/SparseCholesky \ + /usr/include/eigen3/Eigen/SparseCore \ + /usr/include/eigen3/Eigen/SparseLU \ + /usr/include/eigen3/Eigen/SparseQR \ + /usr/include/eigen3/Eigen/src/Cholesky/LDLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT.h \ + /usr/include/eigen3/Eigen/src/Cholesky/LLT_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Core/Array.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayBase.h \ + /usr/include/eigen3/Eigen/src/Core/ArrayWrapper.h \ + /usr/include/eigen3/Eigen/src/Core/Assign.h \ + /usr/include/eigen3/Eigen/src/Core/AssignEvaluator.h \ + /usr/include/eigen3/Eigen/src/Core/Assign_MKL.h \ + /usr/include/eigen3/Eigen/src/Core/BandMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/Block.h \ + /usr/include/eigen3/Eigen/src/Core/BooleanRedux.h \ + /usr/include/eigen3/Eigen/src/Core/CommaInitializer.h \ + /usr/include/eigen3/Eigen/src/Core/ConditionEstimator.h \ + /usr/include/eigen3/Eigen/src/Core/CoreEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/CoreIterators.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseNullaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseTernaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/CwiseUnaryView.h \ + /usr/include/eigen3/Eigen/src/Core/DenseBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseCoeffsBase.h \ + /usr/include/eigen3/Eigen/src/Core/DenseStorage.h \ + /usr/include/eigen3/Eigen/src/Core/Diagonal.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/DiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/Core/Dot.h \ + /usr/include/eigen3/Eigen/src/Core/EigenBase.h \ + /usr/include/eigen3/Eigen/src/Core/Fuzzy.h \ + /usr/include/eigen3/Eigen/src/Core/GeneralProduct.h \ + /usr/include/eigen3/Eigen/src/Core/GenericPacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/GlobalFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/IO.h \ + /usr/include/eigen3/Eigen/src/Core/Inverse.h \ + /usr/include/eigen3/Eigen/src/Core/Map.h \ + /usr/include/eigen3/Eigen/src/Core/MapBase.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/MathFunctionsImpl.h \ + /usr/include/eigen3/Eigen/src/Core/Matrix.h \ + /usr/include/eigen3/Eigen/src/Core/MatrixBase.h \ + /usr/include/eigen3/Eigen/src/Core/NestByValue.h \ + /usr/include/eigen3/Eigen/src/Core/NoAlias.h \ + /usr/include/eigen3/Eigen/src/Core/NumTraits.h \ + /usr/include/eigen3/Eigen/src/Core/PermutationMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/PlainObjectBase.h \ + /usr/include/eigen3/Eigen/src/Core/Product.h \ + /usr/include/eigen3/Eigen/src/Core/ProductEvaluators.h \ + /usr/include/eigen3/Eigen/src/Core/Random.h \ + /usr/include/eigen3/Eigen/src/Core/Redux.h \ + /usr/include/eigen3/Eigen/src/Core/Ref.h \ + /usr/include/eigen3/Eigen/src/Core/Replicate.h \ + /usr/include/eigen3/Eigen/src/Core/ReturnByValue.h \ + /usr/include/eigen3/Eigen/src/Core/Reverse.h \ + /usr/include/eigen3/Eigen/src/Core/Select.h \ + /usr/include/eigen3/Eigen/src/Core/SelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/Core/SelfCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/Core/Solve.h \ + /usr/include/eigen3/Eigen/src/Core/SolveTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/SolverBase.h \ + /usr/include/eigen3/Eigen/src/Core/StableNorm.h \ + /usr/include/eigen3/Eigen/src/Core/Stride.h \ + /usr/include/eigen3/Eigen/src/Core/Swap.h \ + /usr/include/eigen3/Eigen/src/Core/Transpose.h \ + /usr/include/eigen3/Eigen/src/Core/Transpositions.h \ + /usr/include/eigen3/Eigen/src/Core/TriangularMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/VectorBlock.h \ + /usr/include/eigen3/Eigen/src/Core/VectorwiseOp.h \ + /usr/include/eigen3/Eigen/src/Core/Visitor.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AVX512/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/AltiVec/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/Half.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/PacketMathHalf.h \ + /usr/include/eigen3/Eigen/src/Core/arch/CUDA/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/ConjHelper.h \ + /usr/include/eigen3/Eigen/src/Core/arch/Default/Settings.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/NEON/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/arch/SSE/TypeCasting.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/Complex.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/MathFunctions.h \ + /usr/include/eigen3/Eigen/src/Core/arch/ZVector/PacketMath.h \ + /usr/include/eigen3/Eigen/src/Core/functors/AssignmentFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/BinaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/NullaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/StlFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/TernaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/functors/UnaryFunctors.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralBlockPanelKernel.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrixTriangular_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/GeneralMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/Parallelizer.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointProduct.h \ + /usr/include/eigen3/Eigen/src/Core/products/SelfadjointRank2Update.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularMatrixVector_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverMatrix_BLAS.h \ + /usr/include/eigen3/Eigen/src/Core/products/TriangularSolverVector.h \ + /usr/include/eigen3/Eigen/src/Core/util/BlasUtil.h \ + /usr/include/eigen3/Eigen/src/Core/util/Constants.h \ + /usr/include/eigen3/Eigen/src/Core/util/DisableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/ForwardDeclarations.h \ + /usr/include/eigen3/Eigen/src/Core/util/MKL_support.h \ + /usr/include/eigen3/Eigen/src/Core/util/Macros.h \ + /usr/include/eigen3/Eigen/src/Core/util/Memory.h \ + /usr/include/eigen3/Eigen/src/Core/util/Meta.h \ + /usr/include/eigen3/Eigen/src/Core/util/NonMPL2.h \ + /usr/include/eigen3/Eigen/src/Core/util/ReenableStupidWarnings.h \ + /usr/include/eigen3/Eigen/src/Core/util/StaticAssert.h \ + /usr/include/eigen3/Eigen/src/Core/util/XprHelper.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/ComplexSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/EigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/GeneralizedSelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/HessenbergDecomposition.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/MatrixBaseEigenvalues.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealQZ.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/RealSchur_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/SelfAdjointEigenSolver_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/Eigenvalues/Tridiagonalization.h \ + /usr/include/eigen3/Eigen/src/Geometry/AlignedBox.h \ + /usr/include/eigen3/Eigen/src/Geometry/AngleAxis.h \ + /usr/include/eigen3/Eigen/src/Geometry/EulerAngles.h \ + /usr/include/eigen3/Eigen/src/Geometry/Homogeneous.h \ + /usr/include/eigen3/Eigen/src/Geometry/Hyperplane.h \ + /usr/include/eigen3/Eigen/src/Geometry/OrthoMethods.h \ + /usr/include/eigen3/Eigen/src/Geometry/ParametrizedLine.h \ + /usr/include/eigen3/Eigen/src/Geometry/Quaternion.h \ + /usr/include/eigen3/Eigen/src/Geometry/Rotation2D.h \ + /usr/include/eigen3/Eigen/src/Geometry/RotationBase.h \ + /usr/include/eigen3/Eigen/src/Geometry/Scaling.h \ + /usr/include/eigen3/Eigen/src/Geometry/Transform.h \ + /usr/include/eigen3/Eigen/src/Geometry/Translation.h \ + /usr/include/eigen3/Eigen/src/Geometry/Umeyama.h \ + /usr/include/eigen3/Eigen/src/Geometry/arch/Geometry_SSE.h \ + /usr/include/eigen3/Eigen/src/Householder/BlockHouseholder.h \ + /usr/include/eigen3/Eigen/src/Householder/Householder.h \ + /usr/include/eigen3/Eigen/src/Householder/HouseholderSequence.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BasicPreconditioners.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/BiCGSTAB.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/ConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteCholesky.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IncompleteLUT.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/IterativeSolverBase.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/LeastSquareConjugateGradient.h \ + /usr/include/eigen3/Eigen/src/IterativeLinearSolvers/SolveWithGuess.h \ + /usr/include/eigen3/Eigen/src/Jacobi/Jacobi.h \ + /usr/include/eigen3/Eigen/src/LU/Determinant.h \ + /usr/include/eigen3/Eigen/src/LU/FullPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/InverseImpl.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU.h \ + /usr/include/eigen3/Eigen/src/LU/PartialPivLU_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/LU/arch/Inverse_SSE.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Amd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Eigen_Colamd.h \ + /usr/include/eigen3/Eigen/src/OrderingMethods/Ordering.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/ColPivHouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/QR/CompleteOrthogonalDecomposition.h \ + /usr/include/eigen3/Eigen/src/QR/FullPivHouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR.h \ + /usr/include/eigen3/Eigen/src/QR/HouseholderQR_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/BDCSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD.h \ + /usr/include/eigen3/Eigen/src/SVD/JacobiSVD_LAPACKE.h \ + /usr/include/eigen3/Eigen/src/SVD/SVDBase.h \ + /usr/include/eigen3/Eigen/src/SVD/UpperBidiagonalization.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky.h \ + /usr/include/eigen3/Eigen/src/SparseCholesky/SimplicialCholesky_impl.h \ + /usr/include/eigen3/Eigen/src/SparseCore/AmbiVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/CompressedStorage.h \ + /usr/include/eigen3/Eigen/src/SparseCore/ConservativeSparseSparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/MappedSparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseAssign.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseBlock.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseColEtree.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCompressedBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseBinaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseCwiseUnaryOp.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDenseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDiagonalProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseDot.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseFuzzy.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMap.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseMatrixBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparsePermutation.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseProduct.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRedux.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseRef.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSelfAdjointView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSolverBase.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseSparseProductWithPruning.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTranspose.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseTriangularView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseUtil.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseVector.h \ + /usr/include/eigen3/Eigen/src/SparseCore/SparseView.h \ + /usr/include/eigen3/Eigen/src/SparseCore/TriangularSolver.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLUImpl.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Memory.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Structs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_SupernodalMatrix.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_Utils.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_column_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_copy_to_ucol.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_gemm_kernel.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_heap_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_kernel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_bmod.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_panel_dfs.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pivotL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_pruneL.h \ + /usr/include/eigen3/Eigen/src/SparseLU/SparseLU_relax_snode.h \ + /usr/include/eigen3/Eigen/src/SparseQR/SparseQR.h \ + /usr/include/eigen3/Eigen/src/misc/Image.h \ + /usr/include/eigen3/Eigen/src/misc/Kernel.h \ + /usr/include/eigen3/Eigen/src/misc/RealSvd2x2.h \ + /usr/include/eigen3/Eigen/src/misc/blas.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke.h \ + /usr/include/eigen3/Eigen/src/misc/lapacke_mangling.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/ArrayCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/BlockMethods.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/CommonCwiseUnaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseBinaryOps.h \ + /usr/include/eigen3/Eigen/src/plugins/MatrixCwiseUnaryOps.h diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/flags.make b/cmake-build-debug/CMakeFiles/dso_dataset.dir/flags.make new file mode 100644 index 0000000..e13d15d --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# compile CXX with /usr/bin/c++ +CXX_DEFINES = -DENABLE_SSE -DHAS_ZIPLIB=1 + +CXX_INCLUDES = -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/src -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/thirdparty/Sophus -I/home/ivan/ivan/git/work_drivecast2/SLAM/dso/thirdparty/sse2neon -I/usr/include/suitesparse -isystem /usr/include/eigen3 -isystem "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/include" -isystem "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/include/opencv" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/core/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/flann/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgproc/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ml/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/photo/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/video/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/viz/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/dnn/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/features2d/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/imgcodecs/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/shape/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videoio/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/calib3d/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/highgui/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/objdetect/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/stitching/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/superres/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/ts/include" -isystem "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/modules/videostab/include" + +CXX_FLAGS = -O3 -g -std=c++0x -march=native -g + diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/link.txt b/cmake-build-debug/CMakeFiles/dso_dataset.dir/link.txt new file mode 100644 index 0000000..3721508 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -O3 -g -std=c++0x -march=native -g -rdynamic CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o -o bin/dso_dataset -Wl,-rpath,"/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib:/usr/local/lib:/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src" lib/libdso.a -lboost_system -lcxsparse -lboost_thread /usr/local/lib/libzip.so "/home/ivan/ivan/git/Work DriveCast/Pangolin-0.6/build/src/libpangolin.so" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_dnn.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_highgui.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_ml.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_objdetect.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_shape.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_stitching.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_superres.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_videostab.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_viz.so.3.4.15" -lrt -lpthread -lOpenGL -lGLX -lGLU -lGLEW -lEGL -lSM -lICE -lX11 -lXext -lrt -lpthread -lOpenGL -lGLX -lGLU -lGLEW -lEGL -lSM -lICE -lX11 -lXext -ldc1394 -lOpenNI -lOpenNI2 -lpng -lz -ljpeg -ltiff -lIlmImf -lzstd -llz4 "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_calib3d.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_features2d.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_flann.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_photo.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_video.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_videoio.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_imgcodecs.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_imgproc.so.3.4.15" "/home/ivan/ivan/git/Work DriveCast/opencv-3.4.15/build/lib/libopencv_core.so.3.4.15" diff --git a/cmake-build-debug/CMakeFiles/dso_dataset.dir/progress.make b/cmake-build-debug/CMakeFiles/dso_dataset.dir/progress.make new file mode 100644 index 0000000..59fdd58 --- /dev/null +++ b/cmake-build-debug/CMakeFiles/dso_dataset.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 24 +CMAKE_PROGRESS_2 = 25 + diff --git a/cmake-build-debug/CMakeFiles/progress.marks b/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 0000000..7273c0f --- /dev/null +++ b/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +25 diff --git a/cmake-build-debug/DSO.cbp b/cmake-build-debug/DSO.cbp new file mode 100644 index 0000000..2ff867c --- /dev/null +++ b/cmake-build-debug/DSO.cbp @@ -0,0 +1,452 @@ + + + + + + diff --git a/cmake-build-debug/Makefile b/cmake-build-debug/Makefile new file mode 100644 index 0000000..d806c0c --- /dev/null +++ b/cmake-build-debug/Makefile @@ -0,0 +1,789 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.20 + +# Default target executed when no arguments are given to make. +default_target: all +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + +# Disable VCS-based implicit rules. +% : %,v + +# Disable VCS-based implicit rules. +% : RCS/% + +# Disable VCS-based implicit rules. +% : RCS/%,v + +# Disable VCS-based implicit rules. +% : SCCS/s.% + +# Disable VCS-based implicit rules. +% : s.% + +.SUFFIXES: .hpux_make_needs_suffix_list + +# Command-line flag to silence nested $(MAKE). +$(VERBOSE)MAKESILENT = -s + +#Suppress display of executed commands. +$(VERBOSE).SILENT: + +# A target that is always out of date. +cmake_force: +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E rm -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/ivan/ivan/git/work_drivecast2/SLAM/dso + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake --regenerate-during-build -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/ivan/ivan/programs/clion-2021.1.2/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug//CMakeFiles/progress.marks + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named dso_dataset + +# Build rule for target. +dso_dataset: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dso_dataset +.PHONY : dso_dataset + +# fast build rule for target. +dso_dataset/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/build +.PHONY : dso_dataset/fast + +#============================================================================= +# Target rules for targets named dso + +# Build rule for target. +dso: cmake_check_build_system + $(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 dso +.PHONY : dso + +# fast build rule for target. +dso/fast: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/build +.PHONY : dso/fast + +src/FullSystem/CoarseInitializer.o: src/FullSystem/CoarseInitializer.cpp.o +.PHONY : src/FullSystem/CoarseInitializer.o + +# target to build an object file +src/FullSystem/CoarseInitializer.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.o +.PHONY : src/FullSystem/CoarseInitializer.cpp.o + +src/FullSystem/CoarseInitializer.i: src/FullSystem/CoarseInitializer.cpp.i +.PHONY : src/FullSystem/CoarseInitializer.i + +# target to preprocess a source file +src/FullSystem/CoarseInitializer.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.i +.PHONY : src/FullSystem/CoarseInitializer.cpp.i + +src/FullSystem/CoarseInitializer.s: src/FullSystem/CoarseInitializer.cpp.s +.PHONY : src/FullSystem/CoarseInitializer.s + +# target to generate assembly for a file +src/FullSystem/CoarseInitializer.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseInitializer.cpp.s +.PHONY : src/FullSystem/CoarseInitializer.cpp.s + +src/FullSystem/CoarseTracker.o: src/FullSystem/CoarseTracker.cpp.o +.PHONY : src/FullSystem/CoarseTracker.o + +# target to build an object file +src/FullSystem/CoarseTracker.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.o +.PHONY : src/FullSystem/CoarseTracker.cpp.o + +src/FullSystem/CoarseTracker.i: src/FullSystem/CoarseTracker.cpp.i +.PHONY : src/FullSystem/CoarseTracker.i + +# target to preprocess a source file +src/FullSystem/CoarseTracker.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.i +.PHONY : src/FullSystem/CoarseTracker.cpp.i + +src/FullSystem/CoarseTracker.s: src/FullSystem/CoarseTracker.cpp.s +.PHONY : src/FullSystem/CoarseTracker.s + +# target to generate assembly for a file +src/FullSystem/CoarseTracker.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/CoarseTracker.cpp.s +.PHONY : src/FullSystem/CoarseTracker.cpp.s + +src/FullSystem/FullSystem.o: src/FullSystem/FullSystem.cpp.o +.PHONY : src/FullSystem/FullSystem.o + +# target to build an object file +src/FullSystem/FullSystem.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.o +.PHONY : src/FullSystem/FullSystem.cpp.o + +src/FullSystem/FullSystem.i: src/FullSystem/FullSystem.cpp.i +.PHONY : src/FullSystem/FullSystem.i + +# target to preprocess a source file +src/FullSystem/FullSystem.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.i +.PHONY : src/FullSystem/FullSystem.cpp.i + +src/FullSystem/FullSystem.s: src/FullSystem/FullSystem.cpp.s +.PHONY : src/FullSystem/FullSystem.s + +# target to generate assembly for a file +src/FullSystem/FullSystem.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystem.cpp.s +.PHONY : src/FullSystem/FullSystem.cpp.s + +src/FullSystem/FullSystemDebugStuff.o: src/FullSystem/FullSystemDebugStuff.cpp.o +.PHONY : src/FullSystem/FullSystemDebugStuff.o + +# target to build an object file +src/FullSystem/FullSystemDebugStuff.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.o +.PHONY : src/FullSystem/FullSystemDebugStuff.cpp.o + +src/FullSystem/FullSystemDebugStuff.i: src/FullSystem/FullSystemDebugStuff.cpp.i +.PHONY : src/FullSystem/FullSystemDebugStuff.i + +# target to preprocess a source file +src/FullSystem/FullSystemDebugStuff.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.i +.PHONY : src/FullSystem/FullSystemDebugStuff.cpp.i + +src/FullSystem/FullSystemDebugStuff.s: src/FullSystem/FullSystemDebugStuff.cpp.s +.PHONY : src/FullSystem/FullSystemDebugStuff.s + +# target to generate assembly for a file +src/FullSystem/FullSystemDebugStuff.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemDebugStuff.cpp.s +.PHONY : src/FullSystem/FullSystemDebugStuff.cpp.s + +src/FullSystem/FullSystemMarginalize.o: src/FullSystem/FullSystemMarginalize.cpp.o +.PHONY : src/FullSystem/FullSystemMarginalize.o + +# target to build an object file +src/FullSystem/FullSystemMarginalize.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.o +.PHONY : src/FullSystem/FullSystemMarginalize.cpp.o + +src/FullSystem/FullSystemMarginalize.i: src/FullSystem/FullSystemMarginalize.cpp.i +.PHONY : src/FullSystem/FullSystemMarginalize.i + +# target to preprocess a source file +src/FullSystem/FullSystemMarginalize.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.i +.PHONY : src/FullSystem/FullSystemMarginalize.cpp.i + +src/FullSystem/FullSystemMarginalize.s: src/FullSystem/FullSystemMarginalize.cpp.s +.PHONY : src/FullSystem/FullSystemMarginalize.s + +# target to generate assembly for a file +src/FullSystem/FullSystemMarginalize.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemMarginalize.cpp.s +.PHONY : src/FullSystem/FullSystemMarginalize.cpp.s + +src/FullSystem/FullSystemOptPoint.o: src/FullSystem/FullSystemOptPoint.cpp.o +.PHONY : src/FullSystem/FullSystemOptPoint.o + +# target to build an object file +src/FullSystem/FullSystemOptPoint.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.o +.PHONY : src/FullSystem/FullSystemOptPoint.cpp.o + +src/FullSystem/FullSystemOptPoint.i: src/FullSystem/FullSystemOptPoint.cpp.i +.PHONY : src/FullSystem/FullSystemOptPoint.i + +# target to preprocess a source file +src/FullSystem/FullSystemOptPoint.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.i +.PHONY : src/FullSystem/FullSystemOptPoint.cpp.i + +src/FullSystem/FullSystemOptPoint.s: src/FullSystem/FullSystemOptPoint.cpp.s +.PHONY : src/FullSystem/FullSystemOptPoint.s + +# target to generate assembly for a file +src/FullSystem/FullSystemOptPoint.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptPoint.cpp.s +.PHONY : src/FullSystem/FullSystemOptPoint.cpp.s + +src/FullSystem/FullSystemOptimize.o: src/FullSystem/FullSystemOptimize.cpp.o +.PHONY : src/FullSystem/FullSystemOptimize.o + +# target to build an object file +src/FullSystem/FullSystemOptimize.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.o +.PHONY : src/FullSystem/FullSystemOptimize.cpp.o + +src/FullSystem/FullSystemOptimize.i: src/FullSystem/FullSystemOptimize.cpp.i +.PHONY : src/FullSystem/FullSystemOptimize.i + +# target to preprocess a source file +src/FullSystem/FullSystemOptimize.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.i +.PHONY : src/FullSystem/FullSystemOptimize.cpp.i + +src/FullSystem/FullSystemOptimize.s: src/FullSystem/FullSystemOptimize.cpp.s +.PHONY : src/FullSystem/FullSystemOptimize.s + +# target to generate assembly for a file +src/FullSystem/FullSystemOptimize.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/FullSystemOptimize.cpp.s +.PHONY : src/FullSystem/FullSystemOptimize.cpp.s + +src/FullSystem/HessianBlocks.o: src/FullSystem/HessianBlocks.cpp.o +.PHONY : src/FullSystem/HessianBlocks.o + +# target to build an object file +src/FullSystem/HessianBlocks.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.o +.PHONY : src/FullSystem/HessianBlocks.cpp.o + +src/FullSystem/HessianBlocks.i: src/FullSystem/HessianBlocks.cpp.i +.PHONY : src/FullSystem/HessianBlocks.i + +# target to preprocess a source file +src/FullSystem/HessianBlocks.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.i +.PHONY : src/FullSystem/HessianBlocks.cpp.i + +src/FullSystem/HessianBlocks.s: src/FullSystem/HessianBlocks.cpp.s +.PHONY : src/FullSystem/HessianBlocks.s + +# target to generate assembly for a file +src/FullSystem/HessianBlocks.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/HessianBlocks.cpp.s +.PHONY : src/FullSystem/HessianBlocks.cpp.s + +src/FullSystem/ImmaturePoint.o: src/FullSystem/ImmaturePoint.cpp.o +.PHONY : src/FullSystem/ImmaturePoint.o + +# target to build an object file +src/FullSystem/ImmaturePoint.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.o +.PHONY : src/FullSystem/ImmaturePoint.cpp.o + +src/FullSystem/ImmaturePoint.i: src/FullSystem/ImmaturePoint.cpp.i +.PHONY : src/FullSystem/ImmaturePoint.i + +# target to preprocess a source file +src/FullSystem/ImmaturePoint.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.i +.PHONY : src/FullSystem/ImmaturePoint.cpp.i + +src/FullSystem/ImmaturePoint.s: src/FullSystem/ImmaturePoint.cpp.s +.PHONY : src/FullSystem/ImmaturePoint.s + +# target to generate assembly for a file +src/FullSystem/ImmaturePoint.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/ImmaturePoint.cpp.s +.PHONY : src/FullSystem/ImmaturePoint.cpp.s + +src/FullSystem/PixelSelector2.o: src/FullSystem/PixelSelector2.cpp.o +.PHONY : src/FullSystem/PixelSelector2.o + +# target to build an object file +src/FullSystem/PixelSelector2.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.o +.PHONY : src/FullSystem/PixelSelector2.cpp.o + +src/FullSystem/PixelSelector2.i: src/FullSystem/PixelSelector2.cpp.i +.PHONY : src/FullSystem/PixelSelector2.i + +# target to preprocess a source file +src/FullSystem/PixelSelector2.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.i +.PHONY : src/FullSystem/PixelSelector2.cpp.i + +src/FullSystem/PixelSelector2.s: src/FullSystem/PixelSelector2.cpp.s +.PHONY : src/FullSystem/PixelSelector2.s + +# target to generate assembly for a file +src/FullSystem/PixelSelector2.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/PixelSelector2.cpp.s +.PHONY : src/FullSystem/PixelSelector2.cpp.s + +src/FullSystem/Residuals.o: src/FullSystem/Residuals.cpp.o +.PHONY : src/FullSystem/Residuals.o + +# target to build an object file +src/FullSystem/Residuals.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.o +.PHONY : src/FullSystem/Residuals.cpp.o + +src/FullSystem/Residuals.i: src/FullSystem/Residuals.cpp.i +.PHONY : src/FullSystem/Residuals.i + +# target to preprocess a source file +src/FullSystem/Residuals.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.i +.PHONY : src/FullSystem/Residuals.cpp.i + +src/FullSystem/Residuals.s: src/FullSystem/Residuals.cpp.s +.PHONY : src/FullSystem/Residuals.s + +# target to generate assembly for a file +src/FullSystem/Residuals.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/FullSystem/Residuals.cpp.s +.PHONY : src/FullSystem/Residuals.cpp.s + +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.o: src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.o + +# target to build an object file +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.o + +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.i: src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.i +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.i + +# target to preprocess a source file +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.i +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.i + +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.s: src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.s +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.s + +# target to generate assembly for a file +src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.s +.PHONY : src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp.s + +src/IOWrapper/OpenCV/ImageRW_OpenCV.o: src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.o + +# target to build an object file +src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.o + +src/IOWrapper/OpenCV/ImageRW_OpenCV.i: src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.i +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.i + +# target to preprocess a source file +src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.i +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.i + +src/IOWrapper/OpenCV/ImageRW_OpenCV.s: src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.s +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.s + +# target to generate assembly for a file +src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.s +.PHONY : src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp.s + +src/IOWrapper/Pangolin/KeyFrameDisplay.o: src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.o + +# target to build an object file +src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.o + +src/IOWrapper/Pangolin/KeyFrameDisplay.i: src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.i +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.i + +# target to preprocess a source file +src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.i +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.i + +src/IOWrapper/Pangolin/KeyFrameDisplay.s: src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.s +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.s + +# target to generate assembly for a file +src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.s +.PHONY : src/IOWrapper/Pangolin/KeyFrameDisplay.cpp.s + +src/IOWrapper/Pangolin/PangolinDSOViewer.o: src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.o + +# target to build an object file +src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.o + +src/IOWrapper/Pangolin/PangolinDSOViewer.i: src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.i +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.i + +# target to preprocess a source file +src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.i +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.i + +src/IOWrapper/Pangolin/PangolinDSOViewer.s: src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.s +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.s + +# target to generate assembly for a file +src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.s +.PHONY : src/IOWrapper/Pangolin/PangolinDSOViewer.cpp.s + +src/OptimizationBackend/AccumulatedSCHessian.o: src/OptimizationBackend/AccumulatedSCHessian.cpp.o +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.o + +# target to build an object file +src/OptimizationBackend/AccumulatedSCHessian.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.o +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.cpp.o + +src/OptimizationBackend/AccumulatedSCHessian.i: src/OptimizationBackend/AccumulatedSCHessian.cpp.i +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.i + +# target to preprocess a source file +src/OptimizationBackend/AccumulatedSCHessian.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.i +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.cpp.i + +src/OptimizationBackend/AccumulatedSCHessian.s: src/OptimizationBackend/AccumulatedSCHessian.cpp.s +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.s + +# target to generate assembly for a file +src/OptimizationBackend/AccumulatedSCHessian.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedSCHessian.cpp.s +.PHONY : src/OptimizationBackend/AccumulatedSCHessian.cpp.s + +src/OptimizationBackend/AccumulatedTopHessian.o: src/OptimizationBackend/AccumulatedTopHessian.cpp.o +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.o + +# target to build an object file +src/OptimizationBackend/AccumulatedTopHessian.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.o +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.cpp.o + +src/OptimizationBackend/AccumulatedTopHessian.i: src/OptimizationBackend/AccumulatedTopHessian.cpp.i +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.i + +# target to preprocess a source file +src/OptimizationBackend/AccumulatedTopHessian.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.i +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.cpp.i + +src/OptimizationBackend/AccumulatedTopHessian.s: src/OptimizationBackend/AccumulatedTopHessian.cpp.s +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.s + +# target to generate assembly for a file +src/OptimizationBackend/AccumulatedTopHessian.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/AccumulatedTopHessian.cpp.s +.PHONY : src/OptimizationBackend/AccumulatedTopHessian.cpp.s + +src/OptimizationBackend/EnergyFunctional.o: src/OptimizationBackend/EnergyFunctional.cpp.o +.PHONY : src/OptimizationBackend/EnergyFunctional.o + +# target to build an object file +src/OptimizationBackend/EnergyFunctional.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.o +.PHONY : src/OptimizationBackend/EnergyFunctional.cpp.o + +src/OptimizationBackend/EnergyFunctional.i: src/OptimizationBackend/EnergyFunctional.cpp.i +.PHONY : src/OptimizationBackend/EnergyFunctional.i + +# target to preprocess a source file +src/OptimizationBackend/EnergyFunctional.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.i +.PHONY : src/OptimizationBackend/EnergyFunctional.cpp.i + +src/OptimizationBackend/EnergyFunctional.s: src/OptimizationBackend/EnergyFunctional.cpp.s +.PHONY : src/OptimizationBackend/EnergyFunctional.s + +# target to generate assembly for a file +src/OptimizationBackend/EnergyFunctional.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctional.cpp.s +.PHONY : src/OptimizationBackend/EnergyFunctional.cpp.s + +src/OptimizationBackend/EnergyFunctionalStructs.o: src/OptimizationBackend/EnergyFunctionalStructs.cpp.o +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.o + +# target to build an object file +src/OptimizationBackend/EnergyFunctionalStructs.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.o +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.cpp.o + +src/OptimizationBackend/EnergyFunctionalStructs.i: src/OptimizationBackend/EnergyFunctionalStructs.cpp.i +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.i + +# target to preprocess a source file +src/OptimizationBackend/EnergyFunctionalStructs.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.i +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.cpp.i + +src/OptimizationBackend/EnergyFunctionalStructs.s: src/OptimizationBackend/EnergyFunctionalStructs.cpp.s +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.s + +# target to generate assembly for a file +src/OptimizationBackend/EnergyFunctionalStructs.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/OptimizationBackend/EnergyFunctionalStructs.cpp.s +.PHONY : src/OptimizationBackend/EnergyFunctionalStructs.cpp.s + +src/main_dso_pangolin.o: src/main_dso_pangolin.cpp.o +.PHONY : src/main_dso_pangolin.o + +# target to build an object file +src/main_dso_pangolin.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.o +.PHONY : src/main_dso_pangolin.cpp.o + +src/main_dso_pangolin.i: src/main_dso_pangolin.cpp.i +.PHONY : src/main_dso_pangolin.i + +# target to preprocess a source file +src/main_dso_pangolin.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.i +.PHONY : src/main_dso_pangolin.cpp.i + +src/main_dso_pangolin.s: src/main_dso_pangolin.cpp.s +.PHONY : src/main_dso_pangolin.s + +# target to generate assembly for a file +src/main_dso_pangolin.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso_dataset.dir/build.make CMakeFiles/dso_dataset.dir/src/main_dso_pangolin.cpp.s +.PHONY : src/main_dso_pangolin.cpp.s + +src/util/Undistort.o: src/util/Undistort.cpp.o +.PHONY : src/util/Undistort.o + +# target to build an object file +src/util/Undistort.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/Undistort.cpp.o +.PHONY : src/util/Undistort.cpp.o + +src/util/Undistort.i: src/util/Undistort.cpp.i +.PHONY : src/util/Undistort.i + +# target to preprocess a source file +src/util/Undistort.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/Undistort.cpp.i +.PHONY : src/util/Undistort.cpp.i + +src/util/Undistort.s: src/util/Undistort.cpp.s +.PHONY : src/util/Undistort.s + +# target to generate assembly for a file +src/util/Undistort.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/Undistort.cpp.s +.PHONY : src/util/Undistort.cpp.s + +src/util/globalCalib.o: src/util/globalCalib.cpp.o +.PHONY : src/util/globalCalib.o + +# target to build an object file +src/util/globalCalib.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/globalCalib.cpp.o +.PHONY : src/util/globalCalib.cpp.o + +src/util/globalCalib.i: src/util/globalCalib.cpp.i +.PHONY : src/util/globalCalib.i + +# target to preprocess a source file +src/util/globalCalib.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/globalCalib.cpp.i +.PHONY : src/util/globalCalib.cpp.i + +src/util/globalCalib.s: src/util/globalCalib.cpp.s +.PHONY : src/util/globalCalib.s + +# target to generate assembly for a file +src/util/globalCalib.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/globalCalib.cpp.s +.PHONY : src/util/globalCalib.cpp.s + +src/util/settings.o: src/util/settings.cpp.o +.PHONY : src/util/settings.o + +# target to build an object file +src/util/settings.cpp.o: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/settings.cpp.o +.PHONY : src/util/settings.cpp.o + +src/util/settings.i: src/util/settings.cpp.i +.PHONY : src/util/settings.i + +# target to preprocess a source file +src/util/settings.cpp.i: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/settings.cpp.i +.PHONY : src/util/settings.cpp.i + +src/util/settings.s: src/util/settings.cpp.s +.PHONY : src/util/settings.s + +# target to generate assembly for a file +src/util/settings.cpp.s: + $(MAKE) $(MAKESILENT) -f CMakeFiles/dso.dir/build.make CMakeFiles/dso.dir/src/util/settings.cpp.s +.PHONY : src/util/settings.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... dso" + @echo "... dso_dataset" + @echo "... src/FullSystem/CoarseInitializer.o" + @echo "... src/FullSystem/CoarseInitializer.i" + @echo "... src/FullSystem/CoarseInitializer.s" + @echo "... src/FullSystem/CoarseTracker.o" + @echo "... src/FullSystem/CoarseTracker.i" + @echo "... src/FullSystem/CoarseTracker.s" + @echo "... src/FullSystem/FullSystem.o" + @echo "... src/FullSystem/FullSystem.i" + @echo "... src/FullSystem/FullSystem.s" + @echo "... src/FullSystem/FullSystemDebugStuff.o" + @echo "... src/FullSystem/FullSystemDebugStuff.i" + @echo "... src/FullSystem/FullSystemDebugStuff.s" + @echo "... src/FullSystem/FullSystemMarginalize.o" + @echo "... src/FullSystem/FullSystemMarginalize.i" + @echo "... src/FullSystem/FullSystemMarginalize.s" + @echo "... src/FullSystem/FullSystemOptPoint.o" + @echo "... src/FullSystem/FullSystemOptPoint.i" + @echo "... src/FullSystem/FullSystemOptPoint.s" + @echo "... src/FullSystem/FullSystemOptimize.o" + @echo "... src/FullSystem/FullSystemOptimize.i" + @echo "... src/FullSystem/FullSystemOptimize.s" + @echo "... src/FullSystem/HessianBlocks.o" + @echo "... src/FullSystem/HessianBlocks.i" + @echo "... src/FullSystem/HessianBlocks.s" + @echo "... src/FullSystem/ImmaturePoint.o" + @echo "... src/FullSystem/ImmaturePoint.i" + @echo "... src/FullSystem/ImmaturePoint.s" + @echo "... src/FullSystem/PixelSelector2.o" + @echo "... src/FullSystem/PixelSelector2.i" + @echo "... src/FullSystem/PixelSelector2.s" + @echo "... src/FullSystem/Residuals.o" + @echo "... src/FullSystem/Residuals.i" + @echo "... src/FullSystem/Residuals.s" + @echo "... src/IOWrapper/OpenCV/ImageDisplay_OpenCV.o" + @echo "... src/IOWrapper/OpenCV/ImageDisplay_OpenCV.i" + @echo "... src/IOWrapper/OpenCV/ImageDisplay_OpenCV.s" + @echo "... src/IOWrapper/OpenCV/ImageRW_OpenCV.o" + @echo "... src/IOWrapper/OpenCV/ImageRW_OpenCV.i" + @echo "... src/IOWrapper/OpenCV/ImageRW_OpenCV.s" + @echo "... src/IOWrapper/Pangolin/KeyFrameDisplay.o" + @echo "... src/IOWrapper/Pangolin/KeyFrameDisplay.i" + @echo "... src/IOWrapper/Pangolin/KeyFrameDisplay.s" + @echo "... src/IOWrapper/Pangolin/PangolinDSOViewer.o" + @echo "... src/IOWrapper/Pangolin/PangolinDSOViewer.i" + @echo "... src/IOWrapper/Pangolin/PangolinDSOViewer.s" + @echo "... src/OptimizationBackend/AccumulatedSCHessian.o" + @echo "... src/OptimizationBackend/AccumulatedSCHessian.i" + @echo "... src/OptimizationBackend/AccumulatedSCHessian.s" + @echo "... src/OptimizationBackend/AccumulatedTopHessian.o" + @echo "... src/OptimizationBackend/AccumulatedTopHessian.i" + @echo "... src/OptimizationBackend/AccumulatedTopHessian.s" + @echo "... src/OptimizationBackend/EnergyFunctional.o" + @echo "... src/OptimizationBackend/EnergyFunctional.i" + @echo "... src/OptimizationBackend/EnergyFunctional.s" + @echo "... src/OptimizationBackend/EnergyFunctionalStructs.o" + @echo "... src/OptimizationBackend/EnergyFunctionalStructs.i" + @echo "... src/OptimizationBackend/EnergyFunctionalStructs.s" + @echo "... src/main_dso_pangolin.o" + @echo "... src/main_dso_pangolin.i" + @echo "... src/main_dso_pangolin.s" + @echo "... src/util/Undistort.o" + @echo "... src/util/Undistort.i" + @echo "... src/util/Undistort.s" + @echo "... src/util/globalCalib.o" + @echo "... src/util/globalCalib.i" + @echo "... src/util/globalCalib.s" + @echo "... src/util/settings.o" + @echo "... src/util/settings.i" + @echo "... src/util/settings.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/cmake-build-debug/Testing/Temporary/LastTest.log b/cmake-build-debug/Testing/Temporary/LastTest.log new file mode 100644 index 0000000..207f461 --- /dev/null +++ b/cmake-build-debug/Testing/Temporary/LastTest.log @@ -0,0 +1,3 @@ +Start testing: Jun 17 10:03 MSK +---------------------------------------------------------- +End testing: Jun 17 10:03 MSK diff --git a/cmake-build-debug/bin/dso_dataset b/cmake-build-debug/bin/dso_dataset new file mode 100755 index 0000000..a2022ce Binary files /dev/null and b/cmake-build-debug/bin/dso_dataset differ diff --git a/cmake-build-debug/bin/result_online.txt b/cmake-build-debug/bin/result_online.txt new file mode 100644 index 0000000..e69de29 diff --git a/cmake-build-debug/cmake_install.cmake b/cmake-build-debug/cmake_install.cmake new file mode 100644 index 0000000..8aa6c9b --- /dev/null +++ b/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,54 @@ +# Install script for directory: /home/ivan/ivan/git/work_drivecast2/SLAM/dso + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +# Set default install directory permissions. +if(NOT DEFINED CMAKE_OBJDUMP) + set(CMAKE_OBJDUMP "/usr/bin/objdump") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/ivan/ivan/git/work_drivecast2/SLAM/dso/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/cmake/FindEigen3.cmake b/cmake/FindEigen3.cmake new file mode 100644 index 0000000..9c546a0 --- /dev/null +++ b/cmake/FindEigen3.cmake @@ -0,0 +1,81 @@ +# - Try to find Eigen3 lib +# +# This module supports requiring a minimum version, e.g. you can do +# find_package(Eigen3 3.1.2) +# to require version 3.1.2 or newer of Eigen3. +# +# Once done this will define +# +# EIGEN3_FOUND - system has eigen lib with correct version +# EIGEN3_INCLUDE_DIR - the eigen include directory +# EIGEN3_VERSION - eigen version + +# Copyright (c) 2006, 2007 Montel Laurent, +# Copyright (c) 2008, 2009 Gael Guennebaud, +# Copyright (c) 2009 Benoit Jacob +# Redistribution and use is allowed according to the terms of the 2-clause BSD license. + +if(NOT Eigen3_FIND_VERSION) + if(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 2) + endif(NOT Eigen3_FIND_VERSION_MAJOR) + if(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 91) + endif(NOT Eigen3_FIND_VERSION_MINOR) + if(NOT Eigen3_FIND_VERSION_PATCH) + set(Eigen3_FIND_VERSION_PATCH 0) + endif(NOT Eigen3_FIND_VERSION_PATCH) + + set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") +endif(NOT Eigen3_FIND_VERSION) + +macro(_eigen3_check_version) + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") + set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + + set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK FALSE) + else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK TRUE) + endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + + if(NOT EIGEN3_VERSION_OK) + + message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") + endif(NOT EIGEN3_VERSION_OK) +endmacro(_eigen3_check_version) + +if (EIGEN3_INCLUDE_DIR) + + # in cache already + _eigen3_check_version() + set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) + +else (EIGEN3_INCLUDE_DIR) + + find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + PATHS + ${CMAKE_INSTALL_PREFIX}/include + ${KDE4_INCLUDE_DIR} + PATH_SUFFIXES eigen3 eigen + ) + + if(EIGEN3_INCLUDE_DIR) + _eigen3_check_version() + endif(EIGEN3_INCLUDE_DIR) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) + + mark_as_advanced(EIGEN3_INCLUDE_DIR) + +endif(EIGEN3_INCLUDE_DIR) + diff --git a/cmake/FindLibZip.cmake b/cmake/FindLibZip.cmake new file mode 100644 index 0000000..76ab224 --- /dev/null +++ b/cmake/FindLibZip.cmake @@ -0,0 +1,37 @@ +# Finds libzip. +# +# This module defines: +# LIBZIP_INCLUDE_DIR_ZIP +# LIBZIP_INCLUDE_DIR_ZIPCONF +# LIBZIP_LIBRARY +# + +find_package(PkgConfig) +pkg_check_modules(PC_LIBZIP QUIET libzip) + +find_path(LIBZIP_INCLUDE_DIR_ZIP + NAMES zip.h + HINTS ${PC_LIBZIP_INCLUDE_DIRS}) + +find_path(LIBZIP_INCLUDE_DIR_ZIPCONF + NAMES zipconf.h + HINTS ${PC_LIBZIP_INCLUDE_DIRS}) + +find_library(LIBZIP_LIBRARY + NAMES zip) + +include(FindPackageHandleStandardArgs) +FIND_PACKAGE_HANDLE_STANDARD_ARGS( + LIBZIP DEFAULT_MSG + LIBZIP_LIBRARY LIBZIP_INCLUDE_DIR_ZIP LIBZIP_INCLUDE_DIR_ZIPCONF) + +set(LIBZIP_VERSION 0) + +if (LIBZIP_INCLUDE_DIR_ZIPCONF) + FILE(READ "${LIBZIP_INCLUDE_DIR_ZIPCONF}/zipconf.h" _LIBZIP_VERSION_CONTENTS) + if (_LIBZIP_VERSION_CONTENTS) + STRING(REGEX REPLACE ".*#define LIBZIP_VERSION \"([0-9.]+)\".*" "\\1" LIBZIP_VERSION "${_LIBZIP_VERSION_CONTENTS}") + endif () +endif () + +set(LIBZIP_VERSION ${LIBZIP_VERSION} CACHE STRING "Version number of libzip") diff --git a/cmake/FindSuiteParse.cmake b/cmake/FindSuiteParse.cmake new file mode 100644 index 0000000..b39eaec --- /dev/null +++ b/cmake/FindSuiteParse.cmake @@ -0,0 +1,128 @@ +FIND_PATH(CHOLMOD_INCLUDE_DIR NAMES cholmod.h amd.h camd.h + PATHS + ${SUITE_SPARSE_ROOT}/include + /usr/include/suitesparse + /usr/include/ufsparse + /opt/local/include/ufsparse + /usr/local/include/ufsparse + /sw/include/ufsparse + ) + +FIND_LIBRARY(CHOLMOD_LIBRARY NAMES cholmod + PATHS + ${SUITE_SPARSE_ROOT}/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + +FIND_LIBRARY(AMD_LIBRARY NAMES SHARED NAMES amd + PATHS + ${SUITE_SPARSE_ROOT}/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + +FIND_LIBRARY(CAMD_LIBRARY NAMES camd + PATHS + ${SUITE_SPARSE_ROOT}/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + +FIND_LIBRARY(SUITESPARSECONFIG_LIBRARY NAMES suitesparseconfig + PATHS + ${SUITE_SPARSE_ROOT}/lib + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + +# Different platforms seemingly require linking against different sets of libraries +IF(CYGWIN) + FIND_PACKAGE(PkgConfig) + FIND_LIBRARY(COLAMD_LIBRARY NAMES colamd + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + PKG_CHECK_MODULES(LAPACK lapack) + + SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY} ${CAMD_LIBRARY} ${COLAMD_LIBRARY} ${CCOLAMD_LIBRARY} ${LAPACK_LIBRARIES}) + +# MacPorts build of the SparseSuite requires linking against extra libraries + +ELSEIF(APPLE) + + FIND_LIBRARY(COLAMD_LIBRARY NAMES colamd + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + FIND_LIBRARY(CCOLAMD_LIBRARY NAMES ccolamd + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + FIND_LIBRARY(METIS_LIBRARY NAMES metis + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + + SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY} ${CAMD_LIBRARY} ${COLAMD_LIBRARY} ${CCOLAMD_LIBRARY} ${METIS_LIBRARY} "-framework Accelerate") +ELSE(APPLE) + SET(CHOLMOD_LIBRARIES ${CHOLMOD_LIBRARY} ${AMD_LIBRARY}) +ENDIF(CYGWIN) + +IF(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES) + SET(CHOLMOD_FOUND TRUE) +ELSE(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES) + SET(CHOLMOD_FOUND FALSE) +ENDIF(CHOLMOD_INCLUDE_DIR AND CHOLMOD_LIBRARIES) + +# Look for csparse; note the difference in the directory specifications! +FIND_PATH(CSPARSE_INCLUDE_DIR NAMES cs.h + PATHS + /usr/include/suitesparse + /usr/include + /opt/local/include + /usr/local/include + /sw/include + /usr/include/ufsparse + /opt/local/include/ufsparse + /usr/local/include/ufsparse + /sw/include/ufsparse + ) + +FIND_LIBRARY(CSPARSE_LIBRARY NAMES cxsparse + PATHS + /usr/lib + /usr/local/lib + /opt/local/lib + /sw/lib + ) + +IF(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY) + SET(CSPARSE_FOUND TRUE) +ELSE(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY) + SET(CSPARSE_FOUND FALSE) +ENDIF(CSPARSE_INCLUDE_DIR AND CSPARSE_LIBRARY) + diff --git a/src/FullSystem/CoarseInitializer.cpp b/src/FullSystem/CoarseInitializer.cpp new file mode 100644 index 0000000..edaa701 --- /dev/null +++ b/src/FullSystem/CoarseInitializer.cpp @@ -0,0 +1,1043 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/CoarseInitializer.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/Residuals.h" +#include "FullSystem/PixelSelector.h" +#include "FullSystem/PixelSelector2.h" +#include "util/nanoflann.h" + + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + +CoarseInitializer::CoarseInitializer(int ww, int hh) : thisToNext_aff(0,0), thisToNext(SE3()) +{ + for(int lvl=0; lvl &wraps) +{ + newFrame = newFrameHessian; + + for(IOWrap::Output3DWrapper* ow : wraps) + ow->pushLiveFrame(newFrameHessian); + + int maxIterations[] = {5,5,10,30,50}; + + + + alphaK = 2.5*2.5;//*freeDebugParam1*freeDebugParam1; + alphaW = 150*150;//*freeDebugParam2*freeDebugParam2; + regWeight = 0.8;//*freeDebugParam4; + couplingWeight = 1;//*freeDebugParam5; + + if(!snapped) + { + thisToNext.translation().setZero(); + for(int lvl=0;lvlab_exposure>0 && newFrame->ab_exposure>0) + refToNew_aff_current = AffLight(logf(newFrame->ab_exposure / firstFrame->ab_exposure),0); // coarse approximation. + + + Vec3f latestRes = Vec3f::Zero(); + for(int lvl=pyrLevelsUsed-1; lvl>=0; lvl--) + { + + + + if(lvl %.3f+%.5f (%.3f->%.3f) (|inc| = %f)! \t", + lvl, 0, lambda, + "INITIA", + sqrtf((float)(resOld[0] / resOld[2])), + sqrtf((float)(resOld[1] / resOld[2])), + sqrtf((float)(resOld[0] / resOld[2])), + sqrtf((float)(resOld[1] / resOld[2])), + (resOld[0]+resOld[1]) / resOld[2], + (resOld[0]+resOld[1]) / resOld[2], + 0.0f); + std::cout << refToNew_current.log().transpose() << " AFF " << refToNew_aff_current.vec().transpose() <<"\n"; + } + + int iteration=0; + while(true) + { + Mat88f Hl = H; + for(int i=0;i<8;i++) Hl(i,i) *= (1+lambda); + Hl -= Hsc*(1/(1+lambda)); + Vec8f bl = b - bsc*(1/(1+lambda)); + + Hl = wM * Hl * wM * (0.01f/(w[lvl]*h[lvl])); + bl = wM * bl * (0.01f/(w[lvl]*h[lvl])); + + + Vec8f inc; + if(fixAffine) + { + inc.head<6>() = - (wM.toDenseMatrix().topLeftCorner<6,6>() * (Hl.topLeftCorner<6,6>().ldlt().solve(bl.head<6>()))); + inc.tail<2>().setZero(); + } + else + inc = - (wM * (Hl.ldlt().solve(bl))); //=-H^-1 * b. + + + SE3 refToNew_new = SE3::exp(inc.head<6>().cast()) * refToNew_current; + AffLight refToNew_aff_new = refToNew_aff_current; + refToNew_aff_new.a += inc[6]; + refToNew_aff_new.b += inc[7]; + doStep(lvl, lambda, inc); + + + Mat88f H_new, Hsc_new; Vec8f b_new, bsc_new; + Vec3f resNew = calcResAndGS(lvl, H_new, b_new, Hsc_new, bsc_new, refToNew_new, refToNew_aff_new, false); + Vec3f regEnergy = calcEC(lvl); + + float eTotalNew = (resNew[0]+resNew[1]+regEnergy[1]); + float eTotalOld = (resOld[0]+resOld[1]+regEnergy[0]); + + + bool accept = eTotalOld > eTotalNew; + + if(printDebug) + { + printf("lvl %d, it %d (l=%f) %s: %.5f + %.5f + %.5f -> %.5f + %.5f + %.5f (%.2f->%.2f) (|inc| = %f)! \t", + lvl, iteration, lambda, + (accept ? "ACCEPT" : "REJECT"), + sqrtf((float)(resOld[0] / resOld[2])), + sqrtf((float)(regEnergy[0] / regEnergy[2])), + sqrtf((float)(resOld[1] / resOld[2])), + sqrtf((float)(resNew[0] / resNew[2])), + sqrtf((float)(regEnergy[1] / regEnergy[2])), + sqrtf((float)(resNew[1] / resNew[2])), + eTotalOld / resNew[2], + eTotalNew / resNew[2], + inc.norm()); + std::cout << refToNew_new.log().transpose() << " AFF " << refToNew_aff_new.vec().transpose() <<"\n"; + } + + if(accept) + { + + if(resNew[1] == alphaK*numPoints[lvl]) + snapped = true; + H = H_new; + b = b_new; + Hsc = Hsc_new; + bsc = bsc_new; + resOld = resNew; + refToNew_aff_current = refToNew_aff_new; + refToNew_current = refToNew_new; + applyStep(lvl); + optReg(lvl); + lambda *= 0.5; + fails=0; + if(lambda < 0.0001) lambda = 0.0001; + } + else + { + fails++; + lambda *= 4; + if(lambda > 10000) lambda = 10000; + } + + bool quitOpt = false; + + if(!(inc.norm() > eps) || iteration >= maxIterations[lvl] || fails >= 2) + { + Mat88f H,Hsc; Vec8f b,bsc; + + quitOpt = true; + } + + + if(quitOpt) break; + iteration++; + } + latestRes = resOld; + + } + + + + thisToNext = refToNew_current; + thisToNext_aff = refToNew_aff_current; + + for(int i=0;i snappedAt+5; +} + +void CoarseInitializer::debugPlot(int lvl, std::vector &wraps) +{ + bool needCall = false; + for(IOWrap::Output3DWrapper* ow : wraps) + needCall = needCall || ow->needPushDepthImage(); + if(!needCall) return; + + + int wl = w[lvl], hl = h[lvl]; + Eigen::Vector3f* colorRef = firstFrame->dIp[lvl]; + + MinimalImageB3 iRImg(wl,hl); + + for(int i=0;iisGood) + { + nid++; + sid += point->iR; + } + } + float fac = nid / sid; + + + + for(int i=0;iisGood) + iRImg.setPixel9(point->u+0.5f,point->v+0.5f,Vec3b(0,0,0)); + + else + iRImg.setPixel9(point->u+0.5f,point->v+0.5f,makeRainbow3B(point->iR*fac)); + } + + + //IOWrap::displayImage("idepth-R", &iRImg, false); + for(IOWrap::Output3DWrapper* ow : wraps) + ow->pushDepthImage(&iRImg); +} + +// calculates residual, Hessian and Hessian-block neede for re-substituting depth. +Vec3f CoarseInitializer::calcResAndGS( + int lvl, Mat88f &H_out, Vec8f &b_out, + Mat88f &H_out_sc, Vec8f &b_out_sc, + const SE3 &refToNew, AffLight refToNew_aff, + bool plot) +{ + int wl = w[lvl], hl = h[lvl]; + Eigen::Vector3f* colorRef = firstFrame->dIp[lvl]; + Eigen::Vector3f* colorNew = newFrame->dIp[lvl]; + + Mat33f RKi = (refToNew.rotationMatrix() * Ki[lvl]).cast(); + Vec3f t = refToNew.translation().cast(); + Eigen::Vector2f r2new_aff = Eigen::Vector2f(exp(refToNew_aff.a), refToNew_aff.b); + + float fxl = fx[lvl]; + float fyl = fy[lvl]; + float cxl = cx[lvl]; + float cyl = cy[lvl]; + + + Accumulator11 E; + acc9.initialize(); + E.initialize(); + + + int npts = numPoints[lvl]; + Pnt* ptsl = points[lvl]; + for(int i=0;imaxstep = 1e10; + if(!point->isGood) + { + E.updateSingle((float)(point->energy[0])); + point->energy_new = point->energy; + point->isGood_new = false; + continue; + } + + VecNRf dp0; + VecNRf dp1; + VecNRf dp2; + VecNRf dp3; + VecNRf dp4; + VecNRf dp5; + VecNRf dp6; + VecNRf dp7; + VecNRf dd; + VecNRf r; + JbBuffer_new[i].setZero(); + + // sum over all residuals. + bool isGood = true; + float energy=0; + for(int idx=0;idxu+dx, point->v+dy, 1) + t*point->idepth_new; + float u = pt[0] / pt[2]; + float v = pt[1] / pt[2]; + float Ku = fxl * u + cxl; + float Kv = fyl * v + cyl; + float new_idepth = point->idepth_new/pt[2]; + + if(!(Ku > 1 && Kv > 1 && Ku < wl-2 && Kv < hl-2 && new_idepth > 0)) + { + isGood = false; + break; + } + + Vec3f hitColor = getInterpolatedElement33(colorNew, Ku, Kv, wl); + //Vec3f hitColor = getInterpolatedElement33BiCub(colorNew, Ku, Kv, wl); + + //float rlR = colorRef[point->u+dx + (point->v+dy) * wl][0]; + float rlR = getInterpolatedElement31(colorRef, point->u+dx, point->v+dy, wl); + + if(!std::isfinite(rlR) || !std::isfinite((float)hitColor[0])) + { + isGood = false; + break; + } + + + float residual = hitColor[0] - r2new_aff[0] * rlR - r2new_aff[1]; + float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); + energy += hw *residual*residual*(2-hw); + + + + + float dxdd = (t[0]-t[2]*u)/pt[2]; + float dydd = (t[1]-t[2]*v)/pt[2]; + + if(hw < 1) hw = sqrtf(hw); + float dxInterp = hw*hitColor[1]*fxl; + float dyInterp = hw*hitColor[2]*fyl; + dp0[idx] = new_idepth*dxInterp; + dp1[idx] = new_idepth*dyInterp; + dp2[idx] = -new_idepth*(u*dxInterp + v*dyInterp); + dp3[idx] = -u*v*dxInterp - (1+v*v)*dyInterp; + dp4[idx] = (1+u*u)*dxInterp + u*v*dyInterp; + dp5[idx] = -v*dxInterp + u*dyInterp; + dp6[idx] = - hw*r2new_aff[0] * rlR; + dp7[idx] = - hw*1; + dd[idx] = dxInterp * dxdd + dyInterp * dydd; + r[idx] = hw*residual; + + float maxstep = 1.0f / Vec2f(dxdd*fxl, dydd*fyl).norm(); + if(maxstep < point->maxstep) point->maxstep = maxstep; + + // immediately compute dp*dd' and dd*dd' in JbBuffer1. + JbBuffer_new[i][0] += dp0[idx]*dd[idx]; + JbBuffer_new[i][1] += dp1[idx]*dd[idx]; + JbBuffer_new[i][2] += dp2[idx]*dd[idx]; + JbBuffer_new[i][3] += dp3[idx]*dd[idx]; + JbBuffer_new[i][4] += dp4[idx]*dd[idx]; + JbBuffer_new[i][5] += dp5[idx]*dd[idx]; + JbBuffer_new[i][6] += dp6[idx]*dd[idx]; + JbBuffer_new[i][7] += dp7[idx]*dd[idx]; + JbBuffer_new[i][8] += r[idx]*dd[idx]; + JbBuffer_new[i][9] += dd[idx]*dd[idx]; + } + + if(!isGood || energy > point->outlierTH*20) + { + E.updateSingle((float)(point->energy[0])); + point->isGood_new = false; + point->energy_new = point->energy; + continue; + } + + + // add into energy. + E.updateSingle(energy); + point->isGood_new = true; + point->energy_new[0] = energy; + + // update Hessian matrix. + for(int i=0;i+3>2)<<2); i < patternNum; i++) + acc9.updateSingle( + (float)dp0[i],(float)dp1[i],(float)dp2[i],(float)dp3[i], + (float)dp4[i],(float)dp5[i],(float)dp6[i],(float)dp7[i], + (float)r[i]); + + + } + + E.finish(); + acc9.finish(); + + + + + + + // calculate alpha energy, and decide if we cap it. + Accumulator11 EAlpha; + EAlpha.initialize(); + for(int i=0;iisGood_new) + { + E.updateSingle((float)(point->energy[1])); + } + else + { + point->energy_new[1] = (point->idepth_new-1)*(point->idepth_new-1); + E.updateSingle((float)(point->energy_new[1])); + } + } + EAlpha.finish(); + float alphaEnergy = alphaW*(EAlpha.A + refToNew.translation().squaredNorm() * npts); + + //printf("AE = %f * %f + %f\n", alphaW, EAlpha.A, refToNew.translation().squaredNorm() * npts); + + + // compute alpha opt. + float alphaOpt; + if(alphaEnergy > alphaK*npts) + { + alphaOpt = 0; + alphaEnergy = alphaK*npts; + } + else + { + alphaOpt = alphaW; + } + + + acc9SC.initialize(); + for(int i=0;iisGood_new) + continue; + + point->lastHessian_new = JbBuffer_new[i][9]; + + JbBuffer_new[i][8] += alphaOpt*(point->idepth_new - 1); + JbBuffer_new[i][9] += alphaOpt; + + if(alphaOpt==0) + { + JbBuffer_new[i][8] += couplingWeight*(point->idepth_new - point->iR); + JbBuffer_new[i][9] += couplingWeight; + } + + JbBuffer_new[i][9] = 1/(1+JbBuffer_new[i][9]); + acc9SC.updateSingleWeighted( + (float)JbBuffer_new[i][0],(float)JbBuffer_new[i][1],(float)JbBuffer_new[i][2],(float)JbBuffer_new[i][3], + (float)JbBuffer_new[i][4],(float)JbBuffer_new[i][5],(float)JbBuffer_new[i][6],(float)JbBuffer_new[i][7], + (float)JbBuffer_new[i][8],(float)JbBuffer_new[i][9]); + } + acc9SC.finish(); + + + //printf("nelements in H: %d, in E: %d, in Hsc: %d / 9!\n", (int)acc9.num, (int)E.num, (int)acc9SC.num*9); + H_out = acc9.H.topLeftCorner<8,8>();// / acc9.num; + b_out = acc9.H.topRightCorner<8,1>();// / acc9.num; + H_out_sc = acc9SC.H.topLeftCorner<8,8>();// / acc9.num; + b_out_sc = acc9SC.H.topRightCorner<8,1>();// / acc9.num; + + + + H_out(0,0) += alphaOpt*npts; + H_out(1,1) += alphaOpt*npts; + H_out(2,2) += alphaOpt*npts; + + Vec3f tlog = refToNew.log().head<3>().cast(); + b_out[0] += tlog[0]*alphaOpt*npts; + b_out[1] += tlog[1]*alphaOpt*npts; + b_out[2] += tlog[2]*alphaOpt*npts; + + + + + + return Vec3f(E.A, alphaEnergy ,E.num); +} + +float CoarseInitializer::rescale() +{ + float factor = 20*thisToNext.translation().norm(); +// float factori = 1.0f/factor; +// float factori2 = factori*factori; +// +// for(int lvl=0;lvl E; + E.initialize(); + int npts = numPoints[lvl]; + for(int i=0;iisGood_new) continue; + float rOld = (point->idepth-point->iR); + float rNew = (point->idepth_new-point->iR); + E.updateNoWeight(Vec2f(rOld*rOld,rNew*rNew)); + + //printf("%f %f %f!\n", point->idepth, point->idepth_new, point->iR); + } + E.finish(); + + //printf("ER: %f %f %f!\n", couplingWeight*E.A1m[0], couplingWeight*E.A1m[1], (float)E.num.numIn1m); + return Vec3f(couplingWeight*E.A1m[0], couplingWeight*E.A1m[1], E.num); +} +void CoarseInitializer::optReg(int lvl) +{ + int npts = numPoints[lvl]; + Pnt* ptsl = points[lvl]; + if(!snapped) + { + for(int i=0;iisGood) continue; + + float idnn[10]; + int nnn=0; + for(int j=0;j<10;j++) + { + if(point->neighbours[j] == -1) continue; + Pnt* other = ptsl+point->neighbours[j]; + if(!other->isGood) continue; + idnn[nnn] = other->iR; + nnn++; + } + + if(nnn > 2) + { + std::nth_element(idnn,idnn+nnn/2,idnn+nnn); + point->iR = (1-regWeight)*point->idepth + regWeight*idnn[nnn/2]; + } + } + +} + + + +void CoarseInitializer::propagateUp(int srcLvl) +{ + assert(srcLvl+1iR=0; + parent->iRSumNum=0; + } + + for(int i=0;iisGood) continue; + + Pnt* parent = ptst + point->parent; + parent->iR += point->iR * point->lastHessian; + parent->iRSumNum += point->lastHessian; + } + + for(int i=0;iiRSumNum > 0) + { + parent->idepth = parent->iR = (parent->iR / parent->iRSumNum); + parent->isGood = true; + } + } + + optReg(srcLvl+1); +} + +void CoarseInitializer::propagateDown(int srcLvl) +{ + assert(srcLvl>0); + // set idepth of target + + int nptst= numPoints[srcLvl-1]; + Pnt* ptss = points[srcLvl]; + Pnt* ptst = points[srcLvl-1]; + + for(int i=0;iparent; + + if(!parent->isGood || parent->lastHessian < 0.1) continue; + if(!point->isGood) + { + point->iR = point->idepth = point->idepth_new = parent->iR; + point->isGood=true; + point->lastHessian=0; + } + else + { + float newiR = (point->iR*point->lastHessian*2 + parent->iR*parent->lastHessian) / (point->lastHessian*2+parent->lastHessian); + point->iR = point->idepth = point->idepth_new = newiR; + } + } + optReg(srcLvl-1); +} + + +void CoarseInitializer::makeGradients(Eigen::Vector3f** data) +{ + for(int lvl=1; lvldIp[lvl], statusMapB, w[lvl], h[lvl], densities[lvl]*w[0]*h[0]); + + + + if(points[lvl] != 0) delete[] points[lvl]; + points[lvl] = new Pnt[npts]; + + // set idepth map to initially 1 everywhere. + int wl = w[lvl], hl = h[lvl]; + Pnt* pl = points[lvl]; + int nl = 0; + for(int y=patternPadding+1;ydIp[lvl] + x + y*w[lvl]; + float sumGrad2=0; + for(int idx=0;idx().squaredNorm(); + sumGrad2 += absgrad; + } + +// float gth = setting_outlierTH * (sqrtf(sumGrad2)+setting_outlierTHSumComponent); +// pl[nl].outlierTH = patternNum*gth*gth; +// + + pl[nl].outlierTH = patternNum*setting_outlierTH; + + + + nl++; + assert(nl <= npts); + } + } + + + numPoints[lvl]=nl; + } + delete[] statusMap; + delete[] statusMapB; + + makeNN(); + + thisToNext=SE3(); + snapped = false; + frameID = snappedAt = 0; + + for(int i=0;i 0) + { + pts[i].isGood=true; + pts[i].iR = pts[i].idepth = pts[i].idepth_new = snd/sn; + } + } + } +} +void CoarseInitializer::doStep(int lvl, float lambda, Vec8f inc) +{ + + const float maxPixelStep = 0.25; + const float idMaxStep = 1e10; + Pnt* pts = points[lvl]; + int npts = numPoints[lvl]; + for(int i=0;i().dot(inc); + float step = - b * JbBuffer[i][9] / (1+lambda); + + + float maxstep = maxPixelStep*pts[i].maxstep; + if(maxstep > idMaxStep) maxstep=idMaxStep; + + if(step > maxstep) step = maxstep; + if(step < -maxstep) step = -maxstep; + + float newIdepth = pts[i].idepth + step; + if(newIdepth < 1e-3 ) newIdepth = 1e-3; + if(newIdepth > 50) newIdepth = 50; + pts[i].idepth_new = newIdepth; + } + +} +void CoarseInitializer::applyStep(int lvl) +{ + Pnt* pts = points[lvl]; + int npts = numPoints[lvl]; + for(int i=0;i(JbBuffer, JbBuffer_new); +} + +void CoarseInitializer::makeK(CalibHessian* HCalib) +{ + w[0] = wG[0]; + h[0] = hG[0]; + + fx[0] = HCalib->fxl(); + fy[0] = HCalib->fyl(); + cx[0] = HCalib->cxl(); + cy[0] = HCalib->cyl(); + + for (int level = 1; level < pyrLevelsUsed; ++ level) + { + w[level] = w[0] >> level; + h[level] = h[0] >> level; + fx[level] = fx[level-1] * 0.5; + fy[level] = fy[level-1] * 0.5; + cx[level] = (cx[0] + 0.5) / ((int)1< , + FLANNPointcloud,2> KDTree; + + // build indices + FLANNPointcloud pcs[PYR_LEVELS]; + KDTree* indexes[PYR_LEVELS]; + for(int i=0;ibuildIndex(); + } + + const int nn=10; + + // find NN & parents + for(int lvl=0;lvl resultSet(nn); + nanoflann::KNNResultSet resultSet1(1); + + for(int i=0;ifindNeighbors(resultSet, (float*)&pt, nanoflann::SearchParams()); + int myidx=0; + float sumDF = 0; + for(int k=0;k=0 && ret_index[k] < npts); + myidx++; + } + for(int k=0;kfindNeighbors(resultSet1, (float*)&pt, nanoflann::SearchParams()); + + pts[i].parent = ret_index[0]; + pts[i].parentDist = expf(-ret_dist[0]*NNDistFactor); + + assert(ret_index[0]>=0 && ret_index[0] < numPoints[lvl+1]); + } + else + { + pts[i].parent = -1; + pts[i].parentDist = -1; + } + } + } + + + + // done. + + for(int i=0;i, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/NumType.h" +#include "OptimizationBackend/MatrixAccumulators.h" +#include "IOWrapper/Output3DWrapper.h" +#include "util/settings.h" +#include "vector" +#include + + + + +namespace dso +{ +struct CalibHessian; +struct FrameHessian; + + +struct Pnt +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + // index in jacobian. never changes (actually, there is no reason why). + float u,v; + + // idepth / isgood / energy during optimization. + float idepth; + bool isGood; + Vec2f energy; // (UenergyPhotometric, energyRegularizer) + bool isGood_new; + float idepth_new; + Vec2f energy_new; + + float iR; + float iRSumNum; + + float lastHessian; + float lastHessian_new; + + // max stepsize for idepth (corresponding to max. movement in pixel-space). + float maxstep; + + // idx (x+y*w) of closest point one pyramid level above. + int parent; + float parentDist; + + // idx (x+y*w) of up to 10 nearest points in pixel space. + int neighbours[10]; + float neighboursDist[10]; + + float my_type; + float outlierTH; +}; + +class CoarseInitializer { +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + CoarseInitializer(int w, int h); + ~CoarseInitializer(); + + + void setFirst( CalibHessian* HCalib, FrameHessian* newFrameHessian); + bool trackFrame(FrameHessian* newFrameHessian, std::vector &wraps); + void calcTGrads(FrameHessian* newFrameHessian); + + int frameID; + bool fixAffine; + bool printDebug; + + Pnt* points[PYR_LEVELS]; + int numPoints[PYR_LEVELS]; + AffLight thisToNext_aff; + SE3 thisToNext; + + + FrameHessian* firstFrame; + FrameHessian* newFrame; +private: + Mat33 K[PYR_LEVELS]; + Mat33 Ki[PYR_LEVELS]; + double fx[PYR_LEVELS]; + double fy[PYR_LEVELS]; + double fxi[PYR_LEVELS]; + double fyi[PYR_LEVELS]; + double cx[PYR_LEVELS]; + double cy[PYR_LEVELS]; + double cxi[PYR_LEVELS]; + double cyi[PYR_LEVELS]; + int w[PYR_LEVELS]; + int h[PYR_LEVELS]; + void makeK(CalibHessian* HCalib); + + bool snapped; + int snappedAt; + + // pyramid images & levels on all levels + Eigen::Vector3f* dINew[PYR_LEVELS]; + Eigen::Vector3f* dIFist[PYR_LEVELS]; + + Eigen::DiagonalMatrix wM; + + // temporary buffers for H and b. + Vec10f* JbBuffer; // 0-7: sum(dd * dp). 8: sum(res*dd). 9: 1/(1+sum(dd*dd))=inverse hessian entry. + Vec10f* JbBuffer_new; + + Accumulator9 acc9; + Accumulator9 acc9SC; + + + Vec3f dGrads[PYR_LEVELS]; + + float alphaK; + float alphaW; + float regWeight; + float couplingWeight; + + Vec3f calcResAndGS( + int lvl, + Mat88f &H_out, Vec8f &b_out, + Mat88f &H_out_sc, Vec8f &b_out_sc, + const SE3 &refToNew, AffLight refToNew_aff, + bool plot); + Vec3f calcEC(int lvl); // returns OLD NERGY, NEW ENERGY, NUM TERMS. + void optReg(int lvl); + + void propagateUp(int srcLvl); + void propagateDown(int srcLvl); + float rescale(); + + void resetPoints(int lvl); + void doStep(int lvl, float lambda, Vec8f inc); + void applyStep(int lvl); + + void makeGradients(Eigen::Vector3f** data); + + void debugPlot(int lvl, std::vector &wraps); + void makeNN(); +}; + + + + +struct FLANNPointcloud +{ + inline FLANNPointcloud() {num=0; points=0;} + inline FLANNPointcloud(int n, Pnt* p) : num(n), points(p) {} + int num; + Pnt* points; + inline size_t kdtree_get_point_count() const { return num; } + inline float kdtree_distance(const float *p1, const size_t idx_p2,size_t /*size*/) const + { + const float d0=p1[0]-points[idx_p2].u; + const float d1=p1[1]-points[idx_p2].v; + return d0*d0+d1*d1; + } + + inline float kdtree_get_pt(const size_t idx, int dim) const + { + if (dim==0) return points[idx].u; + else return points[idx].v; + } + template + bool kdtree_get_bbox(BBOX& /* bb */) const { return false; } +}; + +} + + diff --git a/src/FullSystem/CoarseTracker.cpp b/src/FullSystem/CoarseTracker.cpp new file mode 100644 index 0000000..e566625 --- /dev/null +++ b/src/FullSystem/CoarseTracker.cpp @@ -0,0 +1,1055 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/CoarseTracker.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/Residuals.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" +#include "IOWrapper/ImageRW.h" +#include + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + + +template +T* allocAligned(int size, std::vector &rawPtrVec) +{ + const int padT = 1 + ((1 << b)/sizeof(T)); + T* ptr = new T[size + padT]; + rawPtrVec.push_back(ptr); + T* alignedPtr = (T*)(( ((uintptr_t)(ptr+padT)) >> b) << b); + return alignedPtr; +} + + +CoarseTracker::CoarseTracker(int ww, int hh) : lastRef_aff_g2l(0,0) +{ + // make coarse tracking templates. + for(int lvl=0; lvl>lvl; + int hl = hh>>lvl; + + idepth[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + weightSums[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + weightSums_bak[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + + pc_u[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + pc_v[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + pc_idepth[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + pc_color[lvl] = allocAligned<4,float>(wl*hl, ptrToDelete); + + } + + // warped buffers + buf_warped_idepth = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_u = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_v = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_dx = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_dy = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_residual = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_weight = allocAligned<4,float>(ww*hh, ptrToDelete); + buf_warped_refColor = allocAligned<4,float>(ww*hh, ptrToDelete); + + + newFrame = 0; + lastRef = 0; + debugPlot = debugPrint = true; + w[0]=h[0]=0; + refFrameID=-1; +} +CoarseTracker::~CoarseTracker() +{ + for(float* ptr : ptrToDelete) + delete[] ptr; + ptrToDelete.clear(); +} + +void CoarseTracker::makeK(CalibHessian* HCalib) +{ + w[0] = wG[0]; + h[0] = hG[0]; + + fx[0] = HCalib->fxl(); + fy[0] = HCalib->fyl(); + cx[0] = HCalib->cxl(); + cy[0] = HCalib->cyl(); + + for (int level = 1; level < pyrLevelsUsed; ++ level) + { + w[level] = w[0] >> level; + h[level] = h[0] >> level; + fx[level] = fx[level-1] * 0.5; + fy[level] = fy[level-1] * 0.5; + cx[level] = (cx[0] + 0.5) / ((int)1< frameHessians) +{ + // make coarse tracking templates for latstRef. + memset(idepth[0], 0, sizeof(float)*w[0]*h[0]); + memset(weightSums[0], 0, sizeof(float)*w[0]*h[0]); + + for(FrameHessian* fh : frameHessians) + { + for(PointHessian* ph : fh->pointHessians) + { + if(ph->lastResiduals[0].first != 0 && ph->lastResiduals[0].second == ResState::IN) + { + PointFrameResidual* r = ph->lastResiduals[0].first; + assert(r->efResidual->isActive() && r->target == lastRef); + int u = r->centerProjectedTo[0] + 0.5f; + int v = r->centerProjectedTo[1] + 0.5f; + float new_idepth = r->centerProjectedTo[2]; + float weight = sqrtf(1e-3 / (ph->efPoint->HdiF+1e-12)); + + idepth[0][u+w[0]*v] += new_idepth *weight; + weightSums[0][u+w[0]*v] += weight; + } + } + } + + + for(int lvl=1; lvl0, and write ones with weightSumsl<=0. + for(int i=w[lvl];i 0) { sum += idepthl[i+1+wl]; num+=weightSumsl_bak[i+1+wl]; numn++;} + if(weightSumsl_bak[i-1-wl] > 0) { sum += idepthl[i-1-wl]; num+=weightSumsl_bak[i-1-wl]; numn++;} + if(weightSumsl_bak[i+wl-1] > 0) { sum += idepthl[i+wl-1]; num+=weightSumsl_bak[i+wl-1]; numn++;} + if(weightSumsl_bak[i-wl+1] > 0) { sum += idepthl[i-wl+1]; num+=weightSumsl_bak[i-wl+1]; numn++;} + if(numn>0) {idepthl[i] = sum/numn; weightSumsl[i] = num/numn;} + } + } + } + } + + + // dilate idepth by 1 (2 on lower levels). + for(int lvl=2; lvl0, and write ones with weightSumsl<=0. + for(int i=w[lvl];i 0) { sum += idepthl[i+1]; num+=weightSumsl_bak[i+1]; numn++;} + if(weightSumsl_bak[i-1] > 0) { sum += idepthl[i-1]; num+=weightSumsl_bak[i-1]; numn++;} + if(weightSumsl_bak[i+wl] > 0) { sum += idepthl[i+wl]; num+=weightSumsl_bak[i+wl]; numn++;} + if(weightSumsl_bak[i-wl] > 0) { sum += idepthl[i-wl]; num+=weightSumsl_bak[i-wl]; numn++;} + if(numn>0) {idepthl[i] = sum/numn; weightSumsl[i] = num/numn;} + } + } + } + + + // normalize idepths and weights. + for(int lvl=0; lvldIp[lvl]; + + int wl = w[lvl], hl = h[lvl]; + + int lpc_n=0; + float* lpc_u = pc_u[lvl]; + float* lpc_v = pc_v[lvl]; + float* lpc_idepth = pc_idepth[lvl]; + float* lpc_color = pc_color[lvl]; + + + for(int y=2;y 0) + { + idepthl[i] /= weightSumsl[i]; + lpc_u[lpc_n] = x; + lpc_v[lpc_n] = y; + lpc_idepth[lpc_n] = idepthl[i]; + lpc_color[lpc_n] = dIRefl[i][0]; + + + + if(!std::isfinite(lpc_color[lpc_n]) || !(idepthl[i]>0)) + { + idepthl[i] = -1; + continue; // just skip if something is wrong. + } + lpc_n++; + } + else + idepthl[i] = -1; + + weightSumsl[i] = 1; + } + + pc_n[lvl] = lpc_n; + } + +} + + + +void CoarseTracker::calcGSSSE(int lvl, Mat88 &H_out, Vec8 &b_out, const SE3 &refToNew, AffLight aff_g2l) +{ + acc.initialize(); + + __m128 fxl = _mm_set1_ps(fx[lvl]); + __m128 fyl = _mm_set1_ps(fy[lvl]); + __m128 b0 = _mm_set1_ps(lastRef_aff_g2l.b); + __m128 a = _mm_set1_ps((float)(AffLight::fromToVecExposure(lastRef->ab_exposure, newFrame->ab_exposure, lastRef_aff_g2l, aff_g2l)[0])); + + __m128 one = _mm_set1_ps(1); + __m128 minusOne = _mm_set1_ps(-1); + __m128 zero = _mm_set1_ps(0); + + int n = buf_warped_n; + assert(n%4==0); + for(int i=0;i().cast() * (1.0f/n); + b_out = acc.H.topRightCorner<8,1>().cast() * (1.0f/n); + + H_out.block<8,3>(0,0) *= SCALE_XI_ROT; + H_out.block<8,3>(0,3) *= SCALE_XI_TRANS; + H_out.block<8,1>(0,6) *= SCALE_A; + H_out.block<8,1>(0,7) *= SCALE_B; + H_out.block<3,8>(0,0) *= SCALE_XI_ROT; + H_out.block<3,8>(3,0) *= SCALE_XI_TRANS; + H_out.block<1,8>(6,0) *= SCALE_A; + H_out.block<1,8>(7,0) *= SCALE_B; + b_out.segment<3>(0) *= SCALE_XI_ROT; + b_out.segment<3>(3) *= SCALE_XI_TRANS; + b_out.segment<1>(6) *= SCALE_A; + b_out.segment<1>(7) *= SCALE_B; +} + + + + +Vec6 CoarseTracker::calcRes(int lvl, const SE3 &refToNew, AffLight aff_g2l, float cutoffTH) +{ + float E = 0; + int numTermsInE = 0; + int numTermsInWarped = 0; + int numSaturated=0; + + int wl = w[lvl]; + int hl = h[lvl]; + Eigen::Vector3f* dINewl = newFrame->dIp[lvl]; + float fxl = fx[lvl]; + float fyl = fy[lvl]; + float cxl = cx[lvl]; + float cyl = cy[lvl]; + + + Mat33f RKi = (refToNew.rotationMatrix().cast() * Ki[lvl]); + Vec3f t = (refToNew.translation()).cast(); + Vec2f affLL = AffLight::fromToVecExposure(lastRef->ab_exposure, newFrame->ab_exposure, lastRef_aff_g2l, aff_g2l).cast(); + + + float sumSquaredShiftT=0; + float sumSquaredShiftRT=0; + float sumSquaredShiftNum=0; + + float maxEnergy = 2*setting_huberTH*cutoffTH-setting_huberTH*setting_huberTH; // energy for r=setting_coarseCutoffTH. + + + MinimalImageB3* resImage = 0; + if(debugPlot) + { + resImage = new MinimalImageB3(wl,hl); + resImage->setConst(Vec3b(255,255,255)); + } + + int nl = pc_n[lvl]; + float* lpc_u = pc_u[lvl]; + float* lpc_v = pc_v[lvl]; + float* lpc_idepth = pc_idepth[lvl]; + float* lpc_color = pc_color[lvl]; + + + for(int i=0;i 2 && Kv > 2 && Ku < wl-3 && Kv < hl-3 && new_idepth > 0)) continue; + + + + float refColor = lpc_color[i]; + Vec3f hitColor = getInterpolatedElement33(dINewl, Ku, Kv, wl); + if(!std::isfinite((float)hitColor[0])) continue; + float residual = hitColor[0] - (float)(affLL[0] * refColor + affLL[1]); + float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); + + + if(fabs(residual) > cutoffTH) + { + if(debugPlot) resImage->setPixel4(lpc_u[i], lpc_v[i], Vec3b(0,0,255)); + E += maxEnergy; + numTermsInE++; + numSaturated++; + } + else + { + if(debugPlot) resImage->setPixel4(lpc_u[i], lpc_v[i], Vec3b(residual+128,residual+128,residual+128)); + + E += hw *residual*residual*(2-hw); + numTermsInE++; + + buf_warped_idepth[numTermsInWarped] = new_idepth; + buf_warped_u[numTermsInWarped] = u; + buf_warped_v[numTermsInWarped] = v; + buf_warped_dx[numTermsInWarped] = hitColor[1]; + buf_warped_dy[numTermsInWarped] = hitColor[2]; + buf_warped_residual[numTermsInWarped] = residual; + buf_warped_weight[numTermsInWarped] = hw; + buf_warped_refColor[numTermsInWarped] = lpc_color[i]; + numTermsInWarped++; + } + } + + while(numTermsInWarped%4!=0) + { + buf_warped_idepth[numTermsInWarped] = 0; + buf_warped_u[numTermsInWarped] = 0; + buf_warped_v[numTermsInWarped] = 0; + buf_warped_dx[numTermsInWarped] = 0; + buf_warped_dy[numTermsInWarped] = 0; + buf_warped_residual[numTermsInWarped] = 0; + buf_warped_weight[numTermsInWarped] = 0; + buf_warped_refColor[numTermsInWarped] = 0; + numTermsInWarped++; + } + buf_warped_n = numTermsInWarped; + + + if(debugPlot) + { + IOWrap::displayImage("RES", resImage, false); + IOWrap::waitKey(0); + delete resImage; + } + + Vec6 rs; + rs[0] = E; + rs[1] = numTermsInE; + rs[2] = sumSquaredShiftT/(sumSquaredShiftNum+0.1); + rs[3] = 0; + rs[4] = sumSquaredShiftRT/(sumSquaredShiftNum+0.1); + rs[5] = numSaturated / (float)numTermsInE; + + return rs; +} + + + + + + +void CoarseTracker::setCoarseTrackingRef( + std::vector frameHessians) +{ + assert(frameHessians.size()>0); + lastRef = frameHessians.back(); + makeCoarseDepthL0(frameHessians); + + + + refFrameID = lastRef->shell->id; + lastRef_aff_g2l = lastRef->aff_g2l(); + + firstCoarseRMSE=-1; + +} +bool CoarseTracker::trackNewestCoarse( + FrameHessian* newFrameHessian, + SE3 &lastToNew_out, AffLight &aff_g2l_out, + int coarsestLvl, + Vec5 minResForAbort, + IOWrap::Output3DWrapper* wrap) +{ + debugPlot = setting_render_displayCoarseTrackingFull; + debugPrint = false; + + assert(coarsestLvl < 5 && coarsestLvl < pyrLevelsUsed); + + lastResiduals.setConstant(NAN); + lastFlowIndicators.setConstant(1000); + + + newFrame = newFrameHessian; + int maxIterations[] = {10,20,50,50,50}; + float lambdaExtrapolationLimit = 0.001; + + SE3 refToNew_current = lastToNew_out; + AffLight aff_g2l_current = aff_g2l_out; + + bool haveRepeated = false; + + + for(int lvl=coarsestLvl; lvl>=0; lvl--) + { + Mat88 H; Vec8 b; + float levelCutoffRepeat=1; + Vec6 resOld = calcRes(lvl, refToNew_current, aff_g2l_current, setting_coarseCutoffTH*levelCutoffRepeat); + while(resOld[5] > 0.6 && levelCutoffRepeat < 50) + { + levelCutoffRepeat*=2; + resOld = calcRes(lvl, refToNew_current, aff_g2l_current, setting_coarseCutoffTH*levelCutoffRepeat); + + if(!setting_debugout_runquiet) + printf("INCREASING cutoff to %f (ratio is %f)!\n", setting_coarseCutoffTH*levelCutoffRepeat, resOld[5]); + } + + calcGSSSE(lvl, H, b, refToNew_current, aff_g2l_current); + + float lambda = 0.01; + + if(debugPrint) + { + Vec2f relAff = AffLight::fromToVecExposure(lastRef->ab_exposure, newFrame->ab_exposure, lastRef_aff_g2l, aff_g2l_current).cast(); + printf("lvl%d, it %d (l=%f / %f) %s: %.3f->%.3f (%d -> %d) (|inc| = %f)! \t", + lvl, -1, lambda, 1.0f, + "INITIA", + 0.0f, + resOld[0] / resOld[1], + 0,(int)resOld[1], + 0.0f); + std::cout << refToNew_current.log().transpose() << " AFF " << aff_g2l_current.vec().transpose() <<" (rel " << relAff.transpose() << ")\n"; + } + + + for(int iteration=0; iteration < maxIterations[lvl]; iteration++) + { + Mat88 Hl = H; + for(int i=0;i<8;i++) Hl(i,i) *= (1+lambda); + Vec8 inc = Hl.ldlt().solve(-b); + + if(setting_affineOptModeA < 0 && setting_affineOptModeB < 0) // fix a, b + { + inc.head<6>() = Hl.topLeftCorner<6,6>().ldlt().solve(-b.head<6>()); + inc.tail<2>().setZero(); + } + if(!(setting_affineOptModeA < 0) && setting_affineOptModeB < 0) // fix b + { + inc.head<7>() = Hl.topLeftCorner<7,7>().ldlt().solve(-b.head<7>()); + inc.tail<1>().setZero(); + } + if(setting_affineOptModeA < 0 && !(setting_affineOptModeB < 0)) // fix a + { + Mat88 HlStitch = Hl; + Vec8 bStitch = b; + HlStitch.col(6) = HlStitch.col(7); + HlStitch.row(6) = HlStitch.row(7); + bStitch[6] = bStitch[7]; + Vec7 incStitch = HlStitch.topLeftCorner<7,7>().ldlt().solve(-bStitch.head<7>()); + inc.setZero(); + inc.head<6>() = incStitch.head<6>(); + inc[6] = 0; + inc[7] = incStitch[6]; + } + + + + + float extrapFac = 1; + if(lambda < lambdaExtrapolationLimit) extrapFac = sqrt(sqrt(lambdaExtrapolationLimit / lambda)); + inc *= extrapFac; + + Vec8 incScaled = inc; + incScaled.segment<3>(0) *= SCALE_XI_ROT; + incScaled.segment<3>(3) *= SCALE_XI_TRANS; + incScaled.segment<1>(6) *= SCALE_A; + incScaled.segment<1>(7) *= SCALE_B; + + if(!std::isfinite(incScaled.sum())) incScaled.setZero(); + + SE3 refToNew_new = SE3::exp((Vec6)(incScaled.head<6>())) * refToNew_current; + AffLight aff_g2l_new = aff_g2l_current; + aff_g2l_new.a += incScaled[6]; + aff_g2l_new.b += incScaled[7]; + + Vec6 resNew = calcRes(lvl, refToNew_new, aff_g2l_new, setting_coarseCutoffTH*levelCutoffRepeat); + + bool accept = (resNew[0] / resNew[1]) < (resOld[0] / resOld[1]); + + if(debugPrint) + { + Vec2f relAff = AffLight::fromToVecExposure(lastRef->ab_exposure, newFrame->ab_exposure, lastRef_aff_g2l, aff_g2l_new).cast(); + printf("lvl %d, it %d (l=%f / %f) %s: %.3f->%.3f (%d -> %d) (|inc| = %f)! \t", + lvl, iteration, lambda, + extrapFac, + (accept ? "ACCEPT" : "REJECT"), + resOld[0] / resOld[1], + resNew[0] / resNew[1], + (int)resOld[1], (int)resNew[1], + inc.norm()); + std::cout << refToNew_new.log().transpose() << " AFF " << aff_g2l_new.vec().transpose() <<" (rel " << relAff.transpose() << ")\n"; + } + if(accept) + { + calcGSSSE(lvl, H, b, refToNew_new, aff_g2l_new); + resOld = resNew; + aff_g2l_current = aff_g2l_new; + refToNew_current = refToNew_new; + lambda *= 0.5; + } + else + { + lambda *= 4; + if(lambda < lambdaExtrapolationLimit) lambda = lambdaExtrapolationLimit; + } + + if(!(inc.norm() > 1e-3)) + { + if(debugPrint) + printf("inc too small, break!\n"); + break; + } + } + + // set last residual for that level, as well as flow indicators. + lastResiduals[lvl] = sqrtf((float)(resOld[0] / resOld[1])); + lastFlowIndicators = resOld.segment<3>(2); + if(lastResiduals[lvl] > 1.5*minResForAbort[lvl]) return false; + + + if(levelCutoffRepeat > 1 && !haveRepeated) + { + lvl++; + haveRepeated=true; + printf("REPEAT LEVEL!\n"); + } + } + + // set! + lastToNew_out = refToNew_current; + aff_g2l_out = aff_g2l_current; + + + if((setting_affineOptModeA != 0 && (fabsf(aff_g2l_out.a) > 1.2)) + || (setting_affineOptModeB != 0 && (fabsf(aff_g2l_out.b) > 200))) + return false; + + Vec2f relAff = AffLight::fromToVecExposure(lastRef->ab_exposure, newFrame->ab_exposure, lastRef_aff_g2l, aff_g2l_out).cast(); + + if((setting_affineOptModeA == 0 && (fabsf(logf((float)relAff[0])) > 1.5)) + || (setting_affineOptModeB == 0 && (fabsf((float)relAff[1]) > 200))) + return false; + + + + if(setting_affineOptModeA < 0) aff_g2l_out.a=0; + if(setting_affineOptModeB < 0) aff_g2l_out.b=0; + + return true; +} + + + +void CoarseTracker::debugPlotIDepthMap(float* minID_pt, float* maxID_pt, std::vector &wraps) +{ + if(w[1] == 0) return; + + + int lvl = 0; + + { + std::vector allID; + for(int i=0;i 0) + allID.push_back(idepth[lvl][i]); + } + std::sort(allID.begin(), allID.end()); + int n = allID.size()-1; + + float minID_new = allID[(int)(n*0.05)]; + float maxID_new = allID[(int)(n*0.95)]; + + float minID, maxID; + minID = minID_new; + maxID = maxID_new; + if(minID_pt!=0 && maxID_pt!=0) + { + if(*minID_pt < 0 || *maxID_pt < 0) + { + *maxID_pt = maxID; + *minID_pt = minID; + } + else + { + + // slowly adapt: change by maximum 10% of old span. + float maxChange = 0.3*(*maxID_pt - *minID_pt); + + if(minID < *minID_pt - maxChange) + minID = *minID_pt - maxChange; + if(minID > *minID_pt + maxChange) + minID = *minID_pt + maxChange; + + + if(maxID < *maxID_pt - maxChange) + maxID = *maxID_pt - maxChange; + if(maxID > *maxID_pt + maxChange) + maxID = *maxID_pt + maxChange; + + *maxID_pt = maxID; + *minID_pt = minID; + } + } + + + MinimalImageB3 mf(w[lvl], h[lvl]); + mf.setBlack(); + for(int i=0;idIp[lvl][i][0]*0.9f; + if(c>255) c=255; + mf.at(i) = Vec3b(c,c,c); + } + int wl = w[lvl]; + for(int y=3;y 0) {sid+=bp[0]; nid++;} + if(bp[1] > 0) {sid+=bp[1]; nid++;} + if(bp[-1] > 0) {sid+=bp[-1]; nid++;} + if(bp[wl] > 0) {sid+=bp[wl]; nid++;} + if(bp[-wl] > 0) {sid+=bp[-wl]; nid++;} + + if(bp[0] > 0 || nid >= 3) + { + float id = ((sid / nid)-minID) / ((maxID-minID)); + mf.setPixelCirc(x,y,makeJet3B(id)); + //mf.at(idx) = makeJet3B(id); + } + } + //IOWrap::displayImage("coarseDepth LVL0", &mf, false); + + + for(IOWrap::Output3DWrapper* ow : wraps) + ow->pushDepthImage(&mf); + + if(debugSaveImages) + { + char buf[1000]; + snprintf(buf, 1000, "images_out/predicted_%05d_%05d.png", lastRef->shell->id, refFrameID); + IOWrap::writeImage(buf,&mf); + } + + } +} + + + +void CoarseTracker::debugPlotIDepthMapFloat(std::vector &wraps) +{ + if(w[1] == 0) return; + int lvl = 0; + MinimalImageF mim(w[lvl], h[lvl], idepth[lvl]); + for(IOWrap::Output3DWrapper* ow : wraps) + ow->pushDepthImageFloat(&mim, lastRef); +} + + + + + + + + + + + +CoarseDistanceMap::CoarseDistanceMap(int ww, int hh) +{ + fwdWarpedIDDistFinal = new float[ww*hh/4]; + + bfsList1 = new Eigen::Vector2i[ww*hh/4]; + bfsList2 = new Eigen::Vector2i[ww*hh/4]; + + int fac = 1 << (pyrLevelsUsed-1); + + + coarseProjectionGrid = new PointFrameResidual*[2048*(ww*hh/(fac*fac))]; + coarseProjectionGridNum = new int[ww*hh/(fac*fac)]; + + w[0]=h[0]=0; +} +CoarseDistanceMap::~CoarseDistanceMap() +{ + delete[] fwdWarpedIDDistFinal; + delete[] bfsList1; + delete[] bfsList2; + delete[] coarseProjectionGrid; + delete[] coarseProjectionGridNum; +} + + + + + +void CoarseDistanceMap::makeDistanceMap( + std::vector frameHessians, + FrameHessian* frame) +{ + int w1 = w[1]; + int h1 = h[1]; + int wh1 = w1*h1; + for(int i=0;iPRE_worldToCam * fh->PRE_camToWorld; + Mat33f KRKi = (K[1] * fhToNew.rotationMatrix().cast() * Ki[0]); + Vec3f Kt = (K[1] * fhToNew.translation().cast()); + + for(PointHessian* ph : fh->pointHessians) + { + assert(ph->status == PointHessian::ACTIVE); + Vec3f ptp = KRKi * Vec3f(ph->u, ph->v, 1) + Kt*ph->idepth_scaled; + int u = ptp[0] / ptp[2] + 0.5f; + int v = ptp[1] / ptp[2] + 0.5f; + if(!(u > 0 && v > 0 && u < w[1] && v < h[1])) continue; + fwdWarpedIDDistFinal[u+w1*v]=0; + bfsList1[numItems] = Eigen::Vector2i(u,v); + numItems++; + } + } + + growDistBFS(numItems); +} + + + + +void CoarseDistanceMap::makeInlierVotes(std::vector frameHessians) +{ + +} + + + +void CoarseDistanceMap::growDistBFS(int bfsNum) +{ + assert(w[0] != 0); + int w1 = w[1], h1 = h[1]; + for(int k=1;k<40;k++) + { + int bfsNum2 = bfsNum; + std::swap(bfsList1,bfsList2); + bfsNum=0; + + if(k%2==0) + { + for(int i=0;i k) + { + fwdWarpedIDDistFinal[idx+1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x+1,y); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-1] > k) + { + fwdWarpedIDDistFinal[idx-1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x-1,y); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx+w1] > k) + { + fwdWarpedIDDistFinal[idx+w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x,y+1); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-w1] > k) + { + fwdWarpedIDDistFinal[idx-w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x,y-1); bfsNum++; + } + } + } + else + { + for(int i=0;i k) + { + fwdWarpedIDDistFinal[idx+1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x+1,y); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-1] > k) + { + fwdWarpedIDDistFinal[idx-1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x-1,y); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx+w1] > k) + { + fwdWarpedIDDistFinal[idx+w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x,y+1); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-w1] > k) + { + fwdWarpedIDDistFinal[idx-w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x,y-1); bfsNum++; + } + + if(fwdWarpedIDDistFinal[idx+1+w1] > k) + { + fwdWarpedIDDistFinal[idx+1+w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x+1,y+1); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-1+w1] > k) + { + fwdWarpedIDDistFinal[idx-1+w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x-1,y+1); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx-1-w1] > k) + { + fwdWarpedIDDistFinal[idx-1-w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x-1,y-1); bfsNum++; + } + if(fwdWarpedIDDistFinal[idx+1-w1] > k) + { + fwdWarpedIDDistFinal[idx+1-w1] = k; + bfsList1[bfsNum] = Eigen::Vector2i(x+1,y-1); bfsNum++; + } + } + } + } +} + + +void CoarseDistanceMap::addIntoDistFinal(int u, int v) +{ + if(w[0] == 0) return; + bfsList1[0] = Eigen::Vector2i(u,v); + fwdWarpedIDDistFinal[u+w[1]*v] = 0; + growDistBFS(1); +} + + + +void CoarseDistanceMap::makeK(CalibHessian* HCalib) +{ + w[0] = wG[0]; + h[0] = hG[0]; + + fx[0] = HCalib->fxl(); + fy[0] = HCalib->fyl(); + cx[0] = HCalib->cxl(); + cy[0] = HCalib->cyl(); + + for (int level = 1; level < pyrLevelsUsed; ++ level) + { + w[level] = w[0] >> level; + h[level] = h[0] >> level; + fx[level] = fx[level-1] * 0.5; + fy[level] = fy[level-1] * 0.5; + cx[level] = (cx[0] + 0.5) / ((int)1<, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" +#include "vector" +#include +#include "util/settings.h" +#include "OptimizationBackend/MatrixAccumulators.h" +#include "IOWrapper/Output3DWrapper.h" + + + + +namespace dso +{ +struct CalibHessian; +struct FrameHessian; +struct PointFrameResidual; + +class CoarseTracker { +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + CoarseTracker(int w, int h); + ~CoarseTracker(); + + bool trackNewestCoarse( + FrameHessian* newFrameHessian, + SE3 &lastToNew_out, AffLight &aff_g2l_out, + int coarsestLvl, Vec5 minResForAbort, + IOWrap::Output3DWrapper* wrap=0); + + void setCoarseTrackingRef( + std::vector frameHessians); + + void makeK( + CalibHessian* HCalib); + + bool debugPrint, debugPlot; + + Mat33f K[PYR_LEVELS]; + Mat33f Ki[PYR_LEVELS]; + float fx[PYR_LEVELS]; + float fy[PYR_LEVELS]; + float fxi[PYR_LEVELS]; + float fyi[PYR_LEVELS]; + float cx[PYR_LEVELS]; + float cy[PYR_LEVELS]; + float cxi[PYR_LEVELS]; + float cyi[PYR_LEVELS]; + int w[PYR_LEVELS]; + int h[PYR_LEVELS]; + + void debugPlotIDepthMap(float* minID, float* maxID, std::vector &wraps); + void debugPlotIDepthMapFloat(std::vector &wraps); + + FrameHessian* lastRef; + AffLight lastRef_aff_g2l; + FrameHessian* newFrame; + int refFrameID; + + // act as pure ouptut + Vec5 lastResiduals; + Vec3 lastFlowIndicators; + double firstCoarseRMSE; +private: + + + void makeCoarseDepthL0(std::vector frameHessians); + float* idepth[PYR_LEVELS]; + float* weightSums[PYR_LEVELS]; + float* weightSums_bak[PYR_LEVELS]; + + + Vec6 calcResAndGS(int lvl, Mat88 &H_out, Vec8 &b_out, const SE3 &refToNew, AffLight aff_g2l, float cutoffTH); + Vec6 calcRes(int lvl, const SE3 &refToNew, AffLight aff_g2l, float cutoffTH); + void calcGSSSE(int lvl, Mat88 &H_out, Vec8 &b_out, const SE3 &refToNew, AffLight aff_g2l); + void calcGS(int lvl, Mat88 &H_out, Vec8 &b_out, const SE3 &refToNew, AffLight aff_g2l); + + // pc buffers + float* pc_u[PYR_LEVELS]; + float* pc_v[PYR_LEVELS]; + float* pc_idepth[PYR_LEVELS]; + float* pc_color[PYR_LEVELS]; + int pc_n[PYR_LEVELS]; + + // warped buffers + float* buf_warped_idepth; + float* buf_warped_u; + float* buf_warped_v; + float* buf_warped_dx; + float* buf_warped_dy; + float* buf_warped_residual; + float* buf_warped_weight; + float* buf_warped_refColor; + int buf_warped_n; + + + std::vector ptrToDelete; + + + Accumulator9 acc; +}; + + +class CoarseDistanceMap { +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + CoarseDistanceMap(int w, int h); + ~CoarseDistanceMap(); + + void makeDistanceMap( + std::vector frameHessians, + FrameHessian* frame); + + void makeInlierVotes( + std::vector frameHessians); + + void makeK( CalibHessian* HCalib); + + + float* fwdWarpedIDDistFinal; + + Mat33f K[PYR_LEVELS]; + Mat33f Ki[PYR_LEVELS]; + float fx[PYR_LEVELS]; + float fy[PYR_LEVELS]; + float fxi[PYR_LEVELS]; + float fyi[PYR_LEVELS]; + float cx[PYR_LEVELS]; + float cy[PYR_LEVELS]; + float cxi[PYR_LEVELS]; + float cyi[PYR_LEVELS]; + int w[PYR_LEVELS]; + int h[PYR_LEVELS]; + + void addIntoDistFinal(int u, int v); + + +private: + + PointFrameResidual** coarseProjectionGrid; + int* coarseProjectionGridNum; + Eigen::Vector2i* bfsList1; + Eigen::Vector2i* bfsList2; + + void growDistBFS(int bfsNum); +}; + +} + diff --git a/src/FullSystem/FullSystem.cpp b/src/FullSystem/FullSystem.cpp new file mode 100644 index 0000000..54ceeac --- /dev/null +++ b/src/FullSystem/FullSystem.cpp @@ -0,0 +1,1512 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" +#include +#include +#include "FullSystem/PixelSelector.h" +#include "FullSystem/PixelSelector2.h" +#include "FullSystem/ResidualProjections.h" +#include "FullSystem/ImmaturePoint.h" + +#include "FullSystem/CoarseTracker.h" +#include "FullSystem/CoarseInitializer.h" + +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +#include "IOWrapper/Output3DWrapper.h" + +#include "util/ImageAndExposure.h" + +#include + +namespace dso +{ +int FrameHessian::instanceCounter=0; +int PointHessian::instanceCounter=0; +int CalibHessian::instanceCounter=0; + + + +FullSystem::FullSystem() +{ + + int retstat =0; + if(setting_logStuff) + { + + retstat += system("rm -rf logs"); + retstat += system("mkdir logs"); + + retstat += system("rm -rf mats"); + retstat += system("mkdir mats"); + + calibLog = new std::ofstream(); + calibLog->open("logs/calibLog.txt", std::ios::trunc | std::ios::out); + calibLog->precision(12); + + numsLog = new std::ofstream(); + numsLog->open("logs/numsLog.txt", std::ios::trunc | std::ios::out); + numsLog->precision(10); + + coarseTrackingLog = new std::ofstream(); + coarseTrackingLog->open("logs/coarseTrackingLog.txt", std::ios::trunc | std::ios::out); + coarseTrackingLog->precision(10); + + eigenAllLog = new std::ofstream(); + eigenAllLog->open("logs/eigenAllLog.txt", std::ios::trunc | std::ios::out); + eigenAllLog->precision(10); + + eigenPLog = new std::ofstream(); + eigenPLog->open("logs/eigenPLog.txt", std::ios::trunc | std::ios::out); + eigenPLog->precision(10); + + eigenALog = new std::ofstream(); + eigenALog->open("logs/eigenALog.txt", std::ios::trunc | std::ios::out); + eigenALog->precision(10); + + DiagonalLog = new std::ofstream(); + DiagonalLog->open("logs/diagonal.txt", std::ios::trunc | std::ios::out); + DiagonalLog->precision(10); + + variancesLog = new std::ofstream(); + variancesLog->open("logs/variancesLog.txt", std::ios::trunc | std::ios::out); + variancesLog->precision(10); + + + nullspacesLog = new std::ofstream(); + nullspacesLog->open("logs/nullspacesLog.txt", std::ios::trunc | std::ios::out); + nullspacesLog->precision(10); + } + else + { + nullspacesLog=0; + variancesLog=0; + DiagonalLog=0; + eigenALog=0; + eigenPLog=0; + eigenAllLog=0; + numsLog=0; + calibLog=0; + } + + assert(retstat!=293847); + + + + selectionMap = new float[wG[0]*hG[0]]; + + coarseDistanceMap = new CoarseDistanceMap(wG[0], hG[0]); + coarseTracker = new CoarseTracker(wG[0], hG[0]); + coarseTracker_forNewKF = new CoarseTracker(wG[0], hG[0]); + coarseInitializer = new CoarseInitializer(wG[0], hG[0]); + pixelSelector = new PixelSelector(wG[0], hG[0]); + + statistics_lastNumOptIts=0; + statistics_numDroppedPoints=0; + statistics_numActivatedPoints=0; + statistics_numCreatedPoints=0; + statistics_numForceDroppedResBwd = 0; + statistics_numForceDroppedResFwd = 0; + statistics_numMargResFwd = 0; + statistics_numMargResBwd = 0; + + lastCoarseRMSE.setConstant(100); + + currentMinActDist=2; + initialized=false; + + + ef = new EnergyFunctional(); + ef->red = &this->treadReduce; + + isLost=false; + initFailed=false; + + + needNewKFAfter = -1; + + linearizeOperation=true; + runMapping=true; + mappingThread = boost::thread(&FullSystem::mappingLoop, this); + lastRefStopID=0; + + + + minIdJetVisDebug = -1; + maxIdJetVisDebug = -1; + minIdJetVisTracker = -1; + maxIdJetVisTracker = -1; +} + +FullSystem::~FullSystem() +{ + blockUntilMappingIsFinished(); + + if(setting_logStuff) + { + calibLog->close(); delete calibLog; + numsLog->close(); delete numsLog; + coarseTrackingLog->close(); delete coarseTrackingLog; + //errorsLog->close(); delete errorsLog; + eigenAllLog->close(); delete eigenAllLog; + eigenPLog->close(); delete eigenPLog; + eigenALog->close(); delete eigenALog; + DiagonalLog->close(); delete DiagonalLog; + variancesLog->close(); delete variancesLog; + nullspacesLog->close(); delete nullspacesLog; + } + + delete[] selectionMap; + + for(FrameShell* s : allFrameHistory) + delete s; + for(FrameHessian* fh : unmappedTrackedFrames) + delete fh; + + delete coarseDistanceMap; + delete coarseTracker; + delete coarseTracker_forNewKF; + delete coarseInitializer; + delete pixelSelector; + delete ef; +} + +void FullSystem::setOriginalCalib(const VecXf &originalCalib, int originalW, int originalH) +{ + +} + +void FullSystem::setGammaFunction(float* BInv) +{ + if(BInv==0) return; + + // copy BInv. + memcpy(Hcalib.Binv, BInv, sizeof(float)*256); + + + // invert. + for(int i=1;i<255;i++) + { + // find val, such that Binv[val] = i. + // I dont care about speed for this, so do it the stupid way. + + for(int s=1;s<255;s++) + { + if(BInv[s] <= i && BInv[s+1] >= i) + { + Hcalib.B[i] = s+(i - BInv[s]) / (BInv[s+1]-BInv[s]); + break; + } + } + } + Hcalib.B[0] = 0; + Hcalib.B[255] = 255; +} + + + +void FullSystem::printResult(std::string file) +{ + boost::unique_lock lock(trackMutex); + boost::unique_lock crlock(shellPoseMutex); + + std::ofstream myfile; + myfile.open (file.c_str()); + myfile << std::setprecision(15); + + for(FrameShell* s : allFrameHistory) + { + if(!s->poseValid) continue; + + if(setting_onlyLogKFPoses && s->marginalizedAt == s->id) continue; + + myfile << s->timestamp << + " " << s->camToWorld.translation().transpose()<< + " " << s->camToWorld.so3().unit_quaternion().x()<< + " " << s->camToWorld.so3().unit_quaternion().y()<< + " " << s->camToWorld.so3().unit_quaternion().z()<< + " " << s->camToWorld.so3().unit_quaternion().w() << "\n"; + } + myfile.close(); +} + +FrameShell* FullSystem::getLastPose(){ + std::cout << "All Frame History Size is: " << allFrameHistory.size() << std::endl; + boost::unique_lock lock(trackMutex); + return allFrameHistory.back(); + lock.unlock(); +} + +CalibHessian* FullSystem::getHCalib(){ + return &Hcalib; +} + + +Vec4 FullSystem::trackNewCoarse(FrameHessian* fh) +{ + + assert(allFrameHistory.size() > 0); + // set pose initialization. + + for(IOWrap::Output3DWrapper* ow : outputWrapper) + ow->pushLiveFrame(fh); + + + + FrameHessian* lastF = coarseTracker->lastRef; + + AffLight aff_last_2_l = AffLight(0,0); + + std::vector> lastF_2_fh_tries; + if(allFrameHistory.size() == 2) + for(unsigned int i=0;i crlock(shellPoseMutex); + slast_2_sprelast = sprelast->camToWorld.inverse() * slast->camToWorld; + lastF_2_slast = slast->camToWorld.inverse() * lastF->shell->camToWorld; + aff_last_2_l = slast->aff_g2l; + } + SE3 fh_2_slast = slast_2_sprelast;// assumed to be the same as fh_2_slast. + + + // last delta-movement. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * fh_2_slast.inverse() * lastF_2_slast); // assume double motion (frame skipped) + lastF_2_fh_tries.push_back(SE3::exp(fh_2_slast.log()*0.5).inverse() * lastF_2_slast); // assume half motion. + lastF_2_fh_tries.push_back(lastF_2_slast); // assume zero motion. + lastF_2_fh_tries.push_back(SE3()); // assume zero motion FROM KF. + + + // just try a TON of different initializations (all rotations). In the end, + // if they don't work they will only be tried on the coarsest level, which is super fast anyway. + // also, if tracking rails here we loose, so we really, really want to avoid that. + for(float rotDelta=0.02; rotDelta < 0.05; rotDelta++) + { + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,0,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,0,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,0,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,-rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,0,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,0,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,-rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,0,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,-rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,0,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,-rotDelta,0), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,0,-rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,0,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,-rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,-rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,-rotDelta,rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,-rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,-rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,rotDelta,-rotDelta), Vec3(0,0,0))); // assume constant motion. + lastF_2_fh_tries.push_back(fh_2_slast.inverse() * lastF_2_slast * SE3(Sophus::Quaterniond(1,rotDelta,rotDelta,rotDelta), Vec3(0,0,0))); // assume constant motion. + } + + if(!slast->poseValid || !sprelast->poseValid || !lastF->shell->poseValid) + { + lastF_2_fh_tries.clear(); + lastF_2_fh_tries.push_back(SE3()); + } + } + + + Vec3 flowVecs = Vec3(100,100,100); + SE3 lastF_2_fh = SE3(); + AffLight aff_g2l = AffLight(0,0); + + + // as long as maxResForImmediateAccept is not reached, I'll continue through the options. + // I'll keep track of the so-far best achieved residual for each level in achievedRes. + // If on a coarse level, tracking is WORSE than achievedRes, we will not continue to save time. + + + Vec5 achievedRes = Vec5::Constant(NAN); + bool haveOneGood = false; + int tryIterations=0; + for(unsigned int i=0;itrackNewestCoarse( + fh, lastF_2_fh_this, aff_g2l_this, + pyrLevelsUsed-1, + achievedRes); // in each level has to be at least as good as the last try. + tryIterations++; + + if(i != 0) + { + printf("RE-TRACK ATTEMPT %d with initOption %d and start-lvl %d (ab %f %f): %f %f %f %f %f -> %f %f %f %f %f \n", + i, + i, pyrLevelsUsed-1, + aff_g2l_this.a,aff_g2l_this.b, + achievedRes[0], + achievedRes[1], + achievedRes[2], + achievedRes[3], + achievedRes[4], + coarseTracker->lastResiduals[0], + coarseTracker->lastResiduals[1], + coarseTracker->lastResiduals[2], + coarseTracker->lastResiduals[3], + coarseTracker->lastResiduals[4]); + } + + + // do we have a new winner? + if(trackingIsGood && std::isfinite((float)coarseTracker->lastResiduals[0]) && !(coarseTracker->lastResiduals[0] >= achievedRes[0])) + { + //printf("take over. minRes %f -> %f!\n", achievedRes[0], coarseTracker->lastResiduals[0]); + flowVecs = coarseTracker->lastFlowIndicators; + aff_g2l = aff_g2l_this; + lastF_2_fh = lastF_2_fh_this; + haveOneGood = true; + } + + // take over achieved res (always). + if(haveOneGood) + { + for(int i=0;i<5;i++) + { + if(!std::isfinite((float)achievedRes[i]) || achievedRes[i] > coarseTracker->lastResiduals[i]) // take over if achievedRes is either bigger or NAN. + achievedRes[i] = coarseTracker->lastResiduals[i]; + } + } + + + if(haveOneGood && achievedRes[0] < lastCoarseRMSE[0]*setting_reTrackThreshold) + break; + + } + + if(!haveOneGood) + { + printf("BIG ERROR! tracking failed entirely. Take predictred pose and hope we may somehow recover.\n"); + flowVecs = Vec3(0,0,0); + aff_g2l = aff_last_2_l; + lastF_2_fh = lastF_2_fh_tries[0]; + } + + lastCoarseRMSE = achievedRes; + + // no lock required, as fh is not used anywhere yet. + fh->shell->camToTrackingRef = lastF_2_fh.inverse(); + fh->shell->trackingRef = lastF->shell; + fh->shell->aff_g2l = aff_g2l; + fh->shell->camToWorld = fh->shell->trackingRef->camToWorld * fh->shell->camToTrackingRef; + + + if(coarseTracker->firstCoarseRMSE < 0) + coarseTracker->firstCoarseRMSE = achievedRes[0]; + + if(!setting_debugout_runquiet) + printf("Coarse Tracker tracked ab = %f %f (exp %f). Res %f!\n", aff_g2l.a, aff_g2l.b, fh->ab_exposure, achievedRes[0]); + + + + if(setting_logStuff) + { + (*coarseTrackingLog) << std::setprecision(16) + << fh->shell->id << " " + << fh->shell->timestamp << " " + << fh->ab_exposure << " " + << fh->shell->camToWorld.log().transpose() << " " + << aff_g2l.a << " " + << aff_g2l.b << " " + << achievedRes[0] << " " + << tryIterations << "\n"; + } + + + return Vec4(achievedRes[0], flowVecs[0], flowVecs[1], flowVecs[2]); +} + +void FullSystem::traceNewCoarse(FrameHessian* fh) +{ + boost::unique_lock lock(mapMutex); + + int trace_total=0, trace_good=0, trace_oob=0, trace_out=0, trace_skip=0, trace_badcondition=0, trace_uninitialized=0; + + Mat33f K = Mat33f::Identity(); + K(0,0) = Hcalib.fxl(); + K(1,1) = Hcalib.fyl(); + K(0,2) = Hcalib.cxl(); + K(1,2) = Hcalib.cyl(); + + for(FrameHessian* host : frameHessians) // go through all active frames + { + + SE3 hostToNew = fh->PRE_worldToCam * host->PRE_camToWorld; + Mat33f KRKi = K * hostToNew.rotationMatrix().cast() * K.inverse(); + Vec3f Kt = K * hostToNew.translation().cast(); + + Vec2f aff = AffLight::fromToVecExposure(host->ab_exposure, fh->ab_exposure, host->aff_g2l(), fh->aff_g2l()).cast(); + + for(ImmaturePoint* ph : host->immaturePoints) + { + ph->traceOn(fh, KRKi, Kt, aff, &Hcalib, false ); + + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_GOOD) trace_good++; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_BADCONDITION) trace_badcondition++; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_OOB) trace_oob++; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_OUTLIER) trace_out++; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_SKIPPED) trace_skip++; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_UNINITIALIZED) trace_uninitialized++; + trace_total++; + } + } +// printf("ADD: TRACE: %'d points. %'d (%.0f%%) good. %'d (%.0f%%) skip. %'d (%.0f%%) badcond. %'d (%.0f%%) oob. %'d (%.0f%%) out. %'d (%.0f%%) uninit.\n", +// trace_total, +// trace_good, 100*trace_good/(float)trace_total, +// trace_skip, 100*trace_skip/(float)trace_total, +// trace_badcondition, 100*trace_badcondition/(float)trace_total, +// trace_oob, 100*trace_oob/(float)trace_total, +// trace_out, 100*trace_out/(float)trace_total, +// trace_uninitialized, 100*trace_uninitialized/(float)trace_total); +} + + + + +void FullSystem::activatePointsMT_Reductor( + std::vector* optimized, + std::vector* toOptimize, + int min, int max, Vec10* stats, int tid) +{ + ImmaturePointTemporaryResidual* tr = new ImmaturePointTemporaryResidual[frameHessians.size()]; + for(int k=min;knPoints < setting_desiredPointDensity*0.66) + currentMinActDist -= 0.8; + if(ef->nPoints < setting_desiredPointDensity*0.8) + currentMinActDist -= 0.5; + else if(ef->nPoints < setting_desiredPointDensity*0.9) + currentMinActDist -= 0.2; + else if(ef->nPoints < setting_desiredPointDensity) + currentMinActDist -= 0.1; + + if(ef->nPoints > setting_desiredPointDensity*1.5) + currentMinActDist += 0.8; + if(ef->nPoints > setting_desiredPointDensity*1.3) + currentMinActDist += 0.5; + if(ef->nPoints > setting_desiredPointDensity*1.15) + currentMinActDist += 0.2; + if(ef->nPoints > setting_desiredPointDensity) + currentMinActDist += 0.1; + + if(currentMinActDist < 0) currentMinActDist = 0; + if(currentMinActDist > 4) currentMinActDist = 4; + + if(!setting_debugout_runquiet) + printf("SPARSITY: MinActDist %f (need %d points, have %d points)!\n", + currentMinActDist, (int)(setting_desiredPointDensity), ef->nPoints); + + + + FrameHessian* newestHs = frameHessians.back(); + + // make dist map. + coarseDistanceMap->makeK(&Hcalib); + coarseDistanceMap->makeDistanceMap(frameHessians, newestHs); + + //coarseTracker->debugPlotDistMap("distMap"); + + std::vector toOptimize; toOptimize.reserve(20000); + + + for(FrameHessian* host : frameHessians) // go through all active frames + { + if(host == newestHs) continue; + + SE3 fhToNew = newestHs->PRE_worldToCam * host->PRE_camToWorld; + Mat33f KRKi = (coarseDistanceMap->K[1] * fhToNew.rotationMatrix().cast() * coarseDistanceMap->Ki[0]); + Vec3f Kt = (coarseDistanceMap->K[1] * fhToNew.translation().cast()); + + + for(unsigned int i=0;iimmaturePoints.size();i+=1) + { + ImmaturePoint* ph = host->immaturePoints[i]; + ph->idxInImmaturePoints = i; + + // delete points that have never been traced successfully, or that are outlier on the last trace. + if(!std::isfinite(ph->idepth_max) || ph->lastTraceStatus == IPS_OUTLIER) + { +// immature_invalid_deleted++; + // remove point. + delete ph; + host->immaturePoints[i]=0; + continue; + } + + // can activate only if this is true. + bool canActivate = (ph->lastTraceStatus == IPS_GOOD + || ph->lastTraceStatus == IPS_SKIPPED + || ph->lastTraceStatus == IPS_BADCONDITION + || ph->lastTraceStatus == IPS_OOB ) + && ph->lastTracePixelInterval < 8 + && ph->quality > setting_minTraceQuality + && (ph->idepth_max+ph->idepth_min) > 0; + + + // if I cannot activate the point, skip it. Maybe also delete it. + if(!canActivate) + { + // if point will be out afterwards, delete it instead. + if(ph->host->flaggedForMarginalization || ph->lastTraceStatus == IPS_OOB) + { +// immature_notReady_deleted++; + delete ph; + host->immaturePoints[i]=0; + } +// immature_notReady_skipped++; + continue; + } + + + // see if we need to activate point due to distance map. + Vec3f ptp = KRKi * Vec3f(ph->u, ph->v, 1) + Kt*(0.5f*(ph->idepth_max+ph->idepth_min)); + int u = ptp[0] / ptp[2] + 0.5f; + int v = ptp[1] / ptp[2] + 0.5f; + + if((u > 0 && v > 0 && u < wG[1] && v < hG[1])) + { + + float dist = coarseDistanceMap->fwdWarpedIDDistFinal[u+wG[1]*v] + (ptp[0]-floorf((float)(ptp[0]))); + + if(dist>=currentMinActDist* ph->my_type) + { + coarseDistanceMap->addIntoDistFinal(u,v); + toOptimize.push_back(ph); + } + } + else + { + delete ph; + host->immaturePoints[i]=0; + } + } + } + + +// printf("ACTIVATE: %d. (del %d, notReady %d, marg %d, good %d, marg-skip %d)\n", +// (int)toOptimize.size(), immature_deleted, immature_notReady, immature_needMarg, immature_want, immature_margskip); + + std::vector optimized; optimized.resize(toOptimize.size()); + + if(multiThreading) + treadReduce.reduce(boost::bind(&FullSystem::activatePointsMT_Reductor, this, &optimized, &toOptimize, _1, _2, _3, _4), 0, toOptimize.size(), 50); + + else + activatePointsMT_Reductor(&optimized, &toOptimize, 0, toOptimize.size(), 0, 0); + + + for(unsigned k=0;khost->immaturePoints[ph->idxInImmaturePoints]=0; + newpoint->host->pointHessians.push_back(newpoint); + ef->insertPoint(newpoint); + for(PointFrameResidual* r : newpoint->residuals) + ef->insertResidual(r); + assert(newpoint->efPoint != 0); + delete ph; + } + else if(newpoint == (PointHessian*)((long)(-1)) || ph->lastTraceStatus==IPS_OOB) + { + delete ph; + ph->host->immaturePoints[ph->idxInImmaturePoints]=0; + } + else + { + assert(newpoint == 0 || newpoint == (PointHessian*)((long)(-1))); + } + } + + + for(FrameHessian* host : frameHessians) + { + for(int i=0;i<(int)host->immaturePoints.size();i++) + { + if(host->immaturePoints[i]==0) + { + host->immaturePoints[i] = host->immaturePoints.back(); + host->immaturePoints.pop_back(); + i--; + } + } + } + + +} + + + + + + +void FullSystem::activatePointsOldFirst() +{ + assert(false); +} + +void FullSystem::flagPointsForRemoval() +{ + assert(EFIndicesValid); + + std::vector fhsToKeepPoints; + std::vector fhsToMargPoints; + + //if(setting_margPointVisWindow>0) + { + for(int i=((int)frameHessians.size())-1;i>=0 && i >= ((int)frameHessians.size());i--) + if(!frameHessians[i]->flaggedForMarginalization) fhsToKeepPoints.push_back(frameHessians[i]); + + for(int i=0; i< (int)frameHessians.size();i++) + if(frameHessians[i]->flaggedForMarginalization) fhsToMargPoints.push_back(frameHessians[i]); + } + + + + //ef->setAdjointsF(); + //ef->setDeltaF(&Hcalib); + int flag_oob=0, flag_in=0, flag_inin=0, flag_nores=0; + + for(FrameHessian* host : frameHessians) // go through all active frames + { + for(unsigned int i=0;ipointHessians.size();i++) + { + PointHessian* ph = host->pointHessians[i]; + if(ph==0) continue; + + if(ph->idepth_scaled < 0 || ph->residuals.size()==0) + { + host->pointHessiansOut.push_back(ph); + ph->efPoint->stateFlag = EFPointStatus::PS_DROP; + host->pointHessians[i]=0; + flag_nores++; + } + else if(ph->isOOB(fhsToKeepPoints, fhsToMargPoints) || host->flaggedForMarginalization) + { + flag_oob++; + if(ph->isInlierNew()) + { + flag_in++; + int ngoodRes=0; + for(PointFrameResidual* r : ph->residuals) + { + r->resetOOB(); + r->linearize(&Hcalib); + r->efResidual->isLinearized = false; + r->applyRes(true); + if(r->efResidual->isActive()) + { + r->efResidual->fixLinearizationF(ef); + ngoodRes++; + } + } + if(ph->idepth_hessian > setting_minIdepthH_marg) + { + flag_inin++; + ph->efPoint->stateFlag = EFPointStatus::PS_MARGINALIZE; + host->pointHessiansMarginalized.push_back(ph); + } + else + { + ph->efPoint->stateFlag = EFPointStatus::PS_DROP; + host->pointHessiansOut.push_back(ph); + } + + + } + else + { + host->pointHessiansOut.push_back(ph); + ph->efPoint->stateFlag = EFPointStatus::PS_DROP; + + + //printf("drop point in frame %d (%d goodRes, %d activeRes)\n", ph->host->idx, ph->numGoodResiduals, (int)ph->residuals.size()); + } + + host->pointHessians[i]=0; + } + } + + + for(int i=0;i<(int)host->pointHessians.size();i++) + { + if(host->pointHessians[i]==0) + { + host->pointHessians[i] = host->pointHessians.back(); + host->pointHessians.pop_back(); + i--; + } + } + } + +} + + +void FullSystem::addActiveFrame( ImageAndExposure* image, int id ) +{ + + if(isLost) return; + boost::unique_lock lock(trackMutex); + + + // =========================== add into allFrameHistory ========================= + FrameHessian* fh = new FrameHessian(); + FrameShell* shell = new FrameShell(); + shell->camToWorld = SE3(); // no lock required, as fh is not used anywhere yet. + shell->aff_g2l = AffLight(0,0); + shell->marginalizedAt = shell->id = allFrameHistory.size(); + shell->timestamp = image->timestamp; + shell->incoming_id = id; + fh->shell = shell; + allFrameHistory.push_back(shell); + + + // =========================== make Images / derivatives etc. ========================= + fh->ab_exposure = image->exposure_time; + fh->makeImages(image->image, &Hcalib); + + + + + if(!initialized) + { + // use initializer! + if(coarseInitializer->frameID<0) // first frame set. fh is kept by coarseInitializer. + { + + coarseInitializer->setFirst(&Hcalib, fh); + } + else if(coarseInitializer->trackFrame(fh, outputWrapper)) // if SNAPPED + { + + initializeFromInitializer(fh); + lock.unlock(); + deliverTrackedFrame(fh, true); + } + else + { + // if still initializing + fh->shell->poseValid = false; + delete fh; + } + return; + } + else // do front-end operation. + { + // =========================== SWAP tracking reference?. ========================= + if(coarseTracker_forNewKF->refFrameID > coarseTracker->refFrameID) + { + boost::unique_lock crlock(coarseTrackerSwapMutex); + CoarseTracker* tmp = coarseTracker; coarseTracker=coarseTracker_forNewKF; coarseTracker_forNewKF=tmp; + } + + + Vec4 tres = trackNewCoarse(fh); + if(!std::isfinite((double)tres[0]) || !std::isfinite((double)tres[1]) || !std::isfinite((double)tres[2]) || !std::isfinite((double)tres[3])) + { + printf("Initial Tracking failed: LOST!\n"); + isLost=true; + return; + } + + bool needToMakeKF = false; + if(setting_keyframesPerSecond > 0) + { + needToMakeKF = allFrameHistory.size()== 1 || + (fh->shell->timestamp - allKeyFramesHistory.back()->timestamp) > 0.95f/setting_keyframesPerSecond; + } + else + { + Vec2 refToFh=AffLight::fromToVecExposure(coarseTracker->lastRef->ab_exposure, fh->ab_exposure, + coarseTracker->lastRef_aff_g2l, fh->shell->aff_g2l); + + // BRIGHTNESS CHECK + needToMakeKF = allFrameHistory.size()== 1 || + setting_kfGlobalWeight*setting_maxShiftWeightT * sqrtf((double)tres[1]) / (wG[0]+hG[0]) + + setting_kfGlobalWeight*setting_maxShiftWeightR * sqrtf((double)tres[2]) / (wG[0]+hG[0]) + + setting_kfGlobalWeight*setting_maxShiftWeightRT * sqrtf((double)tres[3]) / (wG[0]+hG[0]) + + setting_kfGlobalWeight*setting_maxAffineWeight * fabs(logf((float)refToFh[0])) > 1 || + 2*coarseTracker->firstCoarseRMSE < tres[0]; + + } + + + + + for(IOWrap::Output3DWrapper* ow : outputWrapper) + ow->publishCamPose(fh->shell, &Hcalib); + + + + + lock.unlock(); + deliverTrackedFrame(fh, needToMakeKF); + return; + } +} +void FullSystem::deliverTrackedFrame(FrameHessian* fh, bool needKF) +{ + + + if(linearizeOperation) + { + if(goStepByStep && lastRefStopID != coarseTracker->refFrameID) + { + MinimalImageF3 img(wG[0], hG[0], fh->dI); + IOWrap::displayImage("frameToTrack", &img); + while(true) + { + char k=IOWrap::waitKey(0); + if(k==' ') break; + handleKey( k ); + } + lastRefStopID = coarseTracker->refFrameID; + } + else handleKey( IOWrap::waitKey(1) ); + + + + if(needKF) makeKeyFrame(fh); + else makeNonKeyFrame(fh); + } + else + { + boost::unique_lock lock(trackMapSyncMutex); + unmappedTrackedFrames.push_back(fh); + if(needKF) needNewKFAfter=fh->shell->trackingRef->id; + trackedFrameSignal.notify_all(); + + while(coarseTracker_forNewKF->refFrameID == -1 && coarseTracker->refFrameID == -1 ) + { + mappedFrameSignal.wait(lock); + } + + lock.unlock(); + } +} + +void FullSystem::mappingLoop() +{ + boost::unique_lock lock(trackMapSyncMutex); + + while(runMapping) + { + while(unmappedTrackedFrames.size()==0) + { + trackedFrameSignal.wait(lock); + if(!runMapping) return; + } + + FrameHessian* fh = unmappedTrackedFrames.front(); + unmappedTrackedFrames.pop_front(); + + + // guaranteed to make a KF for the very first two tracked frames. + if(allKeyFramesHistory.size() <= 2) + { + lock.unlock(); + makeKeyFrame(fh); + lock.lock(); + mappedFrameSignal.notify_all(); + continue; + } + + if(unmappedTrackedFrames.size() > 3) + needToKetchupMapping=true; + + + if(unmappedTrackedFrames.size() > 0) // if there are other frames to tracke, do that first. + { + lock.unlock(); + makeNonKeyFrame(fh); + lock.lock(); + + if(needToKetchupMapping && unmappedTrackedFrames.size() > 0) + { + FrameHessian* fh = unmappedTrackedFrames.front(); + unmappedTrackedFrames.pop_front(); + { + boost::unique_lock crlock(shellPoseMutex); + assert(fh->shell->trackingRef != 0); + fh->shell->camToWorld = fh->shell->trackingRef->camToWorld * fh->shell->camToTrackingRef; + fh->setEvalPT_scaled(fh->shell->camToWorld.inverse(),fh->shell->aff_g2l); + } + delete fh; + } + + } + else + { + if(setting_realTimeMaxKF || needNewKFAfter >= frameHessians.back()->shell->id) + { + lock.unlock(); + makeKeyFrame(fh); + needToKetchupMapping=false; + lock.lock(); + } + else + { + lock.unlock(); + makeNonKeyFrame(fh); + lock.lock(); + } + } + mappedFrameSignal.notify_all(); + } + printf("MAPPING FINISHED!\n"); +} + +void FullSystem::blockUntilMappingIsFinished() +{ + boost::unique_lock lock(trackMapSyncMutex); + runMapping = false; + trackedFrameSignal.notify_all(); + lock.unlock(); + + mappingThread.join(); + +} + +void FullSystem::makeNonKeyFrame( FrameHessian* fh) +{ + // needs to be set by mapping thread. no lock required since we are in mapping thread. + { + boost::unique_lock crlock(shellPoseMutex); + assert(fh->shell->trackingRef != 0); + fh->shell->camToWorld = fh->shell->trackingRef->camToWorld * fh->shell->camToTrackingRef; + fh->setEvalPT_scaled(fh->shell->camToWorld.inverse(),fh->shell->aff_g2l); + } + + traceNewCoarse(fh); + delete fh; +} + +void FullSystem::makeKeyFrame( FrameHessian* fh) +{ + // needs to be set by mapping thread + { + boost::unique_lock crlock(shellPoseMutex); + assert(fh->shell->trackingRef != 0); + fh->shell->camToWorld = fh->shell->trackingRef->camToWorld * fh->shell->camToTrackingRef; + fh->setEvalPT_scaled(fh->shell->camToWorld.inverse(),fh->shell->aff_g2l); + } + + traceNewCoarse(fh); + + boost::unique_lock lock(mapMutex); + + // =========================== Flag Frames to be Marginalized. ========================= + flagFramesForMarginalization(fh); + + + // =========================== add New Frame to Hessian Struct. ========================= + fh->idx = frameHessians.size(); + frameHessians.push_back(fh); + fh->frameID = allKeyFramesHistory.size(); + allKeyFramesHistory.push_back(fh->shell); + ef->insertFrame(fh, &Hcalib); + + setPrecalcValues(); + + + + // =========================== add new residuals for old points ========================= + int numFwdResAdde=0; + for(FrameHessian* fh1 : frameHessians) // go through all active frames + { + if(fh1 == fh) continue; + for(PointHessian* ph : fh1->pointHessians) + { + PointFrameResidual* r = new PointFrameResidual(ph, fh1, fh); + r->setState(ResState::IN); + ph->residuals.push_back(r); + ef->insertResidual(r); + ph->lastResiduals[1] = ph->lastResiduals[0]; + ph->lastResiduals[0] = std::pair(r, ResState::IN); + numFwdResAdde+=1; + } + } + + + + + // =========================== Activate Points (& flag for marginalization). ========================= + activatePointsMT(); + ef->makeIDX(); + + + + + // =========================== OPTIMIZE ALL ========================= + + fh->frameEnergyTH = frameHessians.back()->frameEnergyTH; + float rmse = optimize(setting_maxOptIterations); + + + + + + // =========================== Figure Out if INITIALIZATION FAILED ========================= + if(allKeyFramesHistory.size() <= 4) + { + if(allKeyFramesHistory.size()==2 && rmse > 20*benchmark_initializerSlackFactor) + { + printf("I THINK INITIALIZATINO FAILED! Resetting.\n"); + initFailed=true; + } + if(allKeyFramesHistory.size()==3 && rmse > 13*benchmark_initializerSlackFactor) + { + printf("I THINK INITIALIZATINO FAILED! Resetting.\n"); + initFailed=true; + } + if(allKeyFramesHistory.size()==4 && rmse > 9*benchmark_initializerSlackFactor) + { + printf("I THINK INITIALIZATINO FAILED! Resetting.\n"); + initFailed=true; + } + } + + + + if(isLost) return; + + + + + // =========================== REMOVE OUTLIER ========================= + removeOutliers(); + + + + + { + boost::unique_lock crlock(coarseTrackerSwapMutex); + coarseTracker_forNewKF->makeK(&Hcalib); + coarseTracker_forNewKF->setCoarseTrackingRef(frameHessians); + + + + coarseTracker_forNewKF->debugPlotIDepthMap(&minIdJetVisTracker, &maxIdJetVisTracker, outputWrapper); + coarseTracker_forNewKF->debugPlotIDepthMapFloat(outputWrapper); + } + + + debugPlot("post Optimize"); + + + + + + + // =========================== (Activate-)Marginalize Points ========================= + flagPointsForRemoval(); + ef->dropPointsF(); + getNullspaces( + ef->lastNullspaces_pose, + ef->lastNullspaces_scale, + ef->lastNullspaces_affA, + ef->lastNullspaces_affB); + ef->marginalizePointsF(); + + + + // =========================== add new Immature points & new residuals ========================= + makeNewTraces(fh, 0); + + + + + + for(IOWrap::Output3DWrapper* ow : outputWrapper) + { + ow->publishGraph(ef->connectivityMap); + ow->publishKeyframes(frameHessians, false, &Hcalib); + } + + + + // =========================== Marginalize Frames ========================= + + for(unsigned int i=0;iflaggedForMarginalization) + {marginalizeFrame(frameHessians[i]); i=0;} + + + + printLogLine(); + //printEigenValLine(); + +} + + +void FullSystem::initializeFromInitializer(FrameHessian* newFrame) +{ + boost::unique_lock lock(mapMutex); + + // add firstframe. + FrameHessian* firstFrame = coarseInitializer->firstFrame; + firstFrame->idx = frameHessians.size(); + frameHessians.push_back(firstFrame); + firstFrame->frameID = allKeyFramesHistory.size(); + allKeyFramesHistory.push_back(firstFrame->shell); + ef->insertFrame(firstFrame, &Hcalib); + setPrecalcValues(); + + //int numPointsTotal = makePixelStatus(firstFrame->dI, selectionMap, wG[0], hG[0], setting_desiredDensity); + //int numPointsTotal = pixelSelector->makeMaps(firstFrame->dIp, selectionMap,setting_desiredDensity); + + firstFrame->pointHessians.reserve(wG[0]*hG[0]*0.2f); + firstFrame->pointHessiansMarginalized.reserve(wG[0]*hG[0]*0.2f); + firstFrame->pointHessiansOut.reserve(wG[0]*hG[0]*0.2f); + + + float sumID=1e-5, numID=1e-5; + for(int i=0;inumPoints[0];i++) + { + sumID += coarseInitializer->points[0][i].iR; + numID++; + } + float rescaleFactor = 1 / (sumID / numID); + + // randomly sub-select the points I need. + float keepPercentage = setting_desiredPointDensity / coarseInitializer->numPoints[0]; + + if(!setting_debugout_runquiet) + printf("Initialization: keep %.1f%% (need %d, have %d)!\n", 100*keepPercentage, + (int)(setting_desiredPointDensity), coarseInitializer->numPoints[0] ); + + for(int i=0;inumPoints[0];i++) + { + if(rand()/(float)RAND_MAX > keepPercentage) continue; + + Pnt* point = coarseInitializer->points[0]+i; + ImmaturePoint* pt = new ImmaturePoint(point->u+0.5f,point->v+0.5f,firstFrame,point->my_type, &Hcalib); + + if(!std::isfinite(pt->energyTH)) { delete pt; continue; } + + + pt->idepth_max=pt->idepth_min=1; + PointHessian* ph = new PointHessian(pt, &Hcalib); + delete pt; + if(!std::isfinite(ph->energyTH)) {delete ph; continue;} + + ph->setIdepthScaled(point->iR*rescaleFactor); + ph->setIdepthZero(ph->idepth); + ph->hasDepthPrior=true; + ph->setPointStatus(PointHessian::ACTIVE); + + firstFrame->pointHessians.push_back(ph); + ef->insertPoint(ph); + } + + + + SE3 firstToNew = coarseInitializer->thisToNext; + firstToNew.translation() /= rescaleFactor; + + + // really no lock required, as we are initializing. + { + boost::unique_lock crlock(shellPoseMutex); + firstFrame->shell->camToWorld = SE3(); + firstFrame->shell->aff_g2l = AffLight(0,0); + firstFrame->setEvalPT_scaled(firstFrame->shell->camToWorld.inverse(),firstFrame->shell->aff_g2l); + firstFrame->shell->trackingRef=0; + firstFrame->shell->camToTrackingRef = SE3(); + + newFrame->shell->camToWorld = firstToNew.inverse(); + newFrame->shell->aff_g2l = AffLight(0,0); + newFrame->setEvalPT_scaled(newFrame->shell->camToWorld.inverse(),newFrame->shell->aff_g2l); + newFrame->shell->trackingRef = firstFrame->shell; + newFrame->shell->camToTrackingRef = firstToNew.inverse(); + + } + + initialized=true; + printf("INITIALIZE FROM INITIALIZER (%d pts)!\n", (int)firstFrame->pointHessians.size()); +} + +void FullSystem::makeNewTraces(FrameHessian* newFrame, float* gtDepth) +{ + pixelSelector->allowFast = true; + //int numPointsTotal = makePixelStatus(newFrame->dI, selectionMap, wG[0], hG[0], setting_desiredDensity); + int numPointsTotal = pixelSelector->makeMaps(newFrame, selectionMap,setting_desiredImmatureDensity); + + newFrame->pointHessians.reserve(numPointsTotal*1.2f); + //fh->pointHessiansInactive.reserve(numPointsTotal*1.2f); + newFrame->pointHessiansMarginalized.reserve(numPointsTotal*1.2f); + newFrame->pointHessiansOut.reserve(numPointsTotal*1.2f); + + + for(int y=patternPadding+1;yenergyTH)) delete impt; + else newFrame->immaturePoints.push_back(impt); + + } + //printf("MADE %d IMMATURE POINTS!\n", (int)newFrame->immaturePoints.size()); + +} + + + +void FullSystem::setPrecalcValues() +{ + for(FrameHessian* fh : frameHessians) + { + fh->targetPrecalc.resize(frameHessians.size()); + for(unsigned int i=0;itargetPrecalc[i].set(fh, frameHessians[i], &Hcalib); + } + + ef->setDeltaF(&Hcalib); +} + + +void FullSystem::printLogLine() +{ + if(frameHessians.size()==0) return; + + if(!setting_debugout_runquiet) + printf("LOG %d: %.3f fine. Res: %d A, %d L, %d M; (%'d / %'d) forceDrop. a=%f, b=%f. Window %d (%d)\n", + allKeyFramesHistory.back()->id, + statistics_lastFineTrackRMSE, + ef->resInA, + ef->resInL, + ef->resInM, + (int)statistics_numForceDroppedResFwd, + (int)statistics_numForceDroppedResBwd, + allKeyFramesHistory.back()->aff_g2l.a, + allKeyFramesHistory.back()->aff_g2l.b, + frameHessians.back()->shell->id - frameHessians.front()->shell->id, + (int)frameHessians.size()); + + + if(!setting_logStuff) return; + + if(numsLog != 0) + { + (*numsLog) << allKeyFramesHistory.back()->id << " " << + statistics_lastFineTrackRMSE << " " << + (int)statistics_numCreatedPoints << " " << + (int)statistics_numActivatedPoints << " " << + (int)statistics_numDroppedPoints << " " << + (int)statistics_lastNumOptIts << " " << + ef->resInA << " " << + ef->resInL << " " << + ef->resInM << " " << + statistics_numMargResFwd << " " << + statistics_numMargResBwd << " " << + statistics_numForceDroppedResFwd << " " << + statistics_numForceDroppedResBwd << " " << + frameHessians.back()->aff_g2l().a << " " << + frameHessians.back()->aff_g2l().b << " " << + frameHessians.back()->shell->id - frameHessians.front()->shell->id << " " << + (int)frameHessians.size() << " " << "\n"; + numsLog->flush(); + } + + +} + + + +void FullSystem::printEigenValLine() +{ + if(!setting_logStuff) return; + if(ef->lastHS.rows() < 12) return; + + + MatXX Hp = ef->lastHS.bottomRightCorner(ef->lastHS.cols()-CPARS,ef->lastHS.cols()-CPARS); + MatXX Ha = ef->lastHS.bottomRightCorner(ef->lastHS.cols()-CPARS,ef->lastHS.cols()-CPARS); + int n = Hp.cols()/8; + assert(Hp.cols()%8==0); + + // sub-select + for(int i=0;ilastHS.eigenvalues().real(); + VecX eigenP = Hp.topLeftCorner(n*6,n*6).eigenvalues().real(); + VecX eigenA = Ha.topLeftCorner(n*2,n*2).eigenvalues().real(); + VecX diagonal = ef->lastHS.diagonal(); + + std::sort(eigenvaluesAll.data(), eigenvaluesAll.data()+eigenvaluesAll.size()); + std::sort(eigenP.data(), eigenP.data()+eigenP.size()); + std::sort(eigenA.data(), eigenA.data()+eigenA.size()); + + int nz = std::max(100,setting_maxFrames*10); + + if(eigenAllLog != 0) + { + VecX ea = VecX::Zero(nz); ea.head(eigenvaluesAll.size()) = eigenvaluesAll; + (*eigenAllLog) << allKeyFramesHistory.back()->id << " " << ea.transpose() << "\n"; + eigenAllLog->flush(); + } + if(eigenALog != 0) + { + VecX ea = VecX::Zero(nz); ea.head(eigenA.size()) = eigenA; + (*eigenALog) << allKeyFramesHistory.back()->id << " " << ea.transpose() << "\n"; + eigenALog->flush(); + } + if(eigenPLog != 0) + { + VecX ea = VecX::Zero(nz); ea.head(eigenP.size()) = eigenP; + (*eigenPLog) << allKeyFramesHistory.back()->id << " " << ea.transpose() << "\n"; + eigenPLog->flush(); + } + + if(DiagonalLog != 0) + { + VecX ea = VecX::Zero(nz); ea.head(diagonal.size()) = diagonal; + (*DiagonalLog) << allKeyFramesHistory.back()->id << " " << ea.transpose() << "\n"; + DiagonalLog->flush(); + } + + if(variancesLog != 0) + { + VecX ea = VecX::Zero(nz); ea.head(diagonal.size()) = ef->lastHS.inverse().diagonal(); + (*variancesLog) << allKeyFramesHistory.back()->id << " " << ea.transpose() << "\n"; + variancesLog->flush(); + } + + std::vector &nsp = ef->lastNullspaces_forLogging; + (*nullspacesLog) << allKeyFramesHistory.back()->id << " "; + for(unsigned int i=0;ilastHS * nsp[i]) << " " << nsp[i].dot(ef->lastbS) << " " ; + (*nullspacesLog) << "\n"; + nullspacesLog->flush(); + +} + +void FullSystem::printFrameLifetimes() +{ + if(!setting_logStuff) return; + + + boost::unique_lock lock(trackMutex); + + std::ofstream* lg = new std::ofstream(); + lg->open("logs/lifetimeLog.txt", std::ios::trunc | std::ios::out); + lg->precision(15); + + for(FrameShell* s : allFrameHistory) + { + (*lg) << s->id + << " " << s->marginalizedAt + << " " << s->statistics_goodResOnThis + << " " << s->statistics_outlierResOnThis + << " " << s->movedByOpt; + + + + (*lg) << "\n"; + } + + + + + + lg->close(); + delete lg; + +} + + +void FullSystem::printEvalLine() +{ + return; +} + + + + + +} diff --git a/src/FullSystem/FullSystem.h b/src/FullSystem/FullSystem.h new file mode 100644 index 0000000..921362f --- /dev/null +++ b/src/FullSystem/FullSystem.h @@ -0,0 +1,324 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#define MAX_ACTIVE_FRAMES 100 + +#include +#include "util/NumType.h" +#include "util/globalCalib.h" +#include "vector" + +#include +#include +#include "util/NumType.h" +#include "FullSystem/Residuals.h" +#include "FullSystem/HessianBlocks.h" +#include "util/FrameShell.h" +#include "util/IndexThreadReduce.h" +#include "OptimizationBackend/EnergyFunctional.h" +#include "FullSystem/PixelSelector2.h" + +#include + +namespace dso +{ +namespace IOWrap +{ +class Output3DWrapper; +} + +class PixelSelector; +class PCSyntheticPoint; +class CoarseTracker; +struct FrameHessian; +struct PointHessian; +class CoarseInitializer; +struct ImmaturePointTemporaryResidual; +class ImageAndExposure; +class CoarseDistanceMap; + +class EnergyFunctional; + +template inline void deleteOut(std::vector &v, const int i) +{ + delete v[i]; + v[i] = v.back(); + v.pop_back(); +} +template inline void deleteOutPt(std::vector &v, const T* i) +{ + delete i; + + for(unsigned int k=0;k inline void deleteOutOrder(std::vector &v, const int i) +{ + delete v[i]; + for(unsigned int k=i+1; k inline void deleteOutOrder(std::vector &v, const T* element) +{ + int i=-1; + for(unsigned int k=0; k outputWrapper; + + bool isLost; + bool initFailed; + bool initialized; + bool linearizeOperation; + + + void setGammaFunction(float* BInv); + void setOriginalCalib(const VecXf &originalCalib, int originalW, int originalH); + + //Addition + FrameShell* getLastPose(); + CalibHessian* getHCalib(); + +private: + + CalibHessian Hcalib; + + + + + // opt single point + int optimizePoint(PointHessian* point, int minObs, bool flagOOB); + PointHessian* optimizeImmaturePoint(ImmaturePoint* point, int minObs, ImmaturePointTemporaryResidual* residuals); + + double linAllPointSinle(PointHessian* point, float outlierTHSlack, bool plot); + + // mainPipelineFunctions + Vec4 trackNewCoarse(FrameHessian* fh); + void traceNewCoarse(FrameHessian* fh); + void activatePoints(); + void activatePointsMT(); + void activatePointsOldFirst(); + void flagPointsForRemoval(); + void makeNewTraces(FrameHessian* newFrame, float* gtDepth); + void initializeFromInitializer(FrameHessian* newFrame); + void flagFramesForMarginalization(FrameHessian* newFH); + + + void removeOutliers(); + + + // set precalc values. + void setPrecalcValues(); + + + // solce. eventually migrate to ef. + void solveSystem(int iteration, double lambda); + Vec3 linearizeAll(bool fixLinearization); + bool doStepFromBackup(float stepfacC,float stepfacT,float stepfacR,float stepfacA,float stepfacD); + void backupState(bool backupLastStep); + void loadSateBackup(); + double calcLEnergy(); + double calcMEnergy(); + void linearizeAll_Reductor(bool fixLinearization, std::vector* toRemove, int min, int max, Vec10* stats, int tid); + void activatePointsMT_Reductor(std::vector* optimized,std::vector* toOptimize,int min, int max, Vec10* stats, int tid); + void applyRes_Reductor(bool copyJacobians, int min, int max, Vec10* stats, int tid); + + void printOptRes(const Vec3 &res, double resL, double resM, double resPrior, double LExact, float a, float b); + + void debugPlotTracking(); + + std::vector getNullspaces( + std::vector &nullspaces_pose, + std::vector &nullspaces_scale, + std::vector &nullspaces_affA, + std::vector &nullspaces_affB); + + void setNewFrameEnergyTH(); + + + void printLogLine(); + void printEvalLine(); + void printEigenValLine(); + std::ofstream* calibLog; + std::ofstream* numsLog; + std::ofstream* errorsLog; + std::ofstream* eigenAllLog; + std::ofstream* eigenPLog; + std::ofstream* eigenALog; + std::ofstream* DiagonalLog; + std::ofstream* variancesLog; + std::ofstream* nullspacesLog; + + std::ofstream* coarseTrackingLog; + + // statistics + long int statistics_lastNumOptIts; + long int statistics_numDroppedPoints; + long int statistics_numActivatedPoints; + long int statistics_numCreatedPoints; + long int statistics_numForceDroppedResBwd; + long int statistics_numForceDroppedResFwd; + long int statistics_numMargResFwd; + long int statistics_numMargResBwd; + float statistics_lastFineTrackRMSE; + + + + + + + + // =================== changed by tracker-thread. protected by trackMutex ============ + boost::mutex trackMutex; + std::vector allFrameHistory; + CoarseInitializer* coarseInitializer; + Vec5 lastCoarseRMSE; + + + // ================== changed by mapper-thread. protected by mapMutex =============== + boost::mutex mapMutex; + std::vector allKeyFramesHistory; + + EnergyFunctional* ef; + IndexThreadReduce treadReduce; + + float* selectionMap; + PixelSelector* pixelSelector; + CoarseDistanceMap* coarseDistanceMap; + + std::vector frameHessians; // ONLY changed in marginalizeFrame and addFrame. + std::vector activeResiduals; + float currentMinActDist; + + + std::vector allResVec; + + + + // mutex etc. for tracker exchange. + boost::mutex coarseTrackerSwapMutex; // if tracker sees that there is a new reference, tracker locks [coarseTrackerSwapMutex] and swaps the two. + CoarseTracker* coarseTracker_forNewKF; // set as as reference. protected by [coarseTrackerSwapMutex]. + CoarseTracker* coarseTracker; // always used to track new frames. protected by [trackMutex]. + float minIdJetVisTracker, maxIdJetVisTracker; + float minIdJetVisDebug, maxIdJetVisDebug; + + + + + + // mutex for camToWorl's in shells (these are always in a good configuration). + boost::mutex shellPoseMutex; + + + +/* + * tracking always uses the newest KF as reference. + * + */ + + void makeKeyFrame( FrameHessian* fh); + void makeNonKeyFrame( FrameHessian* fh); + void deliverTrackedFrame(FrameHessian* fh, bool needKF); + void mappingLoop(); + + // tracking / mapping synchronization. All protected by [trackMapSyncMutex]. + boost::mutex trackMapSyncMutex; + boost::condition_variable trackedFrameSignal; + boost::condition_variable mappedFrameSignal; + std::deque unmappedTrackedFrames; + int needNewKFAfter; // Otherwise, a new KF is *needed that has ID bigger than [needNewKFAfter]*. + boost::thread mappingThread; + bool runMapping; + bool needToKetchupMapping; + + int lastRefStopID; +}; +} + diff --git a/src/FullSystem/FullSystemDebugStuff.cpp b/src/FullSystem/FullSystemDebugStuff.cpp new file mode 100644 index 0000000..85ec59a --- /dev/null +++ b/src/FullSystem/FullSystemDebugStuff.cpp @@ -0,0 +1,365 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "IOWrapper/ImageRW.h" +#include "util/globalCalib.h" +#include +#include +#include + +#include "FullSystem/ImmaturePoint.h" + + +namespace dso +{ + + + void FullSystem::debugPlotTracking() + { + if(disableAllDisplay) return; + if(!setting_render_plotTrackingFull) return; + int wh = hG[0]*wG[0]; + + int idx=0; + for(FrameHessian* f : frameHessians) + { + std::vector images; + + // make images for all frames. will be deleted by the FrameHessian's destructor. + for(FrameHessian* f2 : frameHessians) + if(f2->debugImage == 0) f2->debugImage = new MinimalImageB3(wG[0], hG[0]); + + for(FrameHessian* f2 : frameHessians) + { + MinimalImageB3* debugImage=f2->debugImage; + images.push_back(debugImage); + + Eigen::Vector3f* fd = f2->dI; + + Vec2 affL = AffLight::fromToVecExposure(f2->ab_exposure, f->ab_exposure, f2->aff_g2l(), f->aff_g2l()); + + for(int i=0;i255) colL =255; + debugImage->at(i) = Vec3b(colL, colL, colL); + } + } + + + for(PointHessian* ph : f->pointHessians) + { + assert(ph->status == PointHessian::ACTIVE); + if(ph->status == PointHessian::ACTIVE || ph->status == PointHessian::MARGINALIZED) + { + for(PointFrameResidual* r : ph->residuals) + r->debugPlot(); + f->debugImage->setPixel9(ph->u+0.5, ph->v+0.5, makeRainbow3B(ph->idepth_scaled)); + } + } + + + char buf[100]; + snprintf(buf, 100, "IMG %d", idx); + IOWrap::displayImageStitch(buf, images); + idx++; + } + + IOWrap::waitKey(0); + + } + + + void FullSystem::debugPlot(std::string name) + { + if(disableAllDisplay) return; + if(!setting_render_renderWindowFrames) return; + std::vector images; + + + + + float minID=0, maxID=0; + if((int)(freeDebugParam5+0.5f) == 7 || (debugSaveImages&&false)) + { + std::vector allID; + for(unsigned int f=0;fpointHessians) + if(ph!=0) allID.push_back(ph->idepth_scaled); + + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + if(ph!=0) allID.push_back(ph->idepth_scaled); + + for(PointHessian* ph : frameHessians[f]->pointHessiansOut) + if(ph!=0) allID.push_back(ph->idepth_scaled); + } + std::sort(allID.begin(), allID.end()); + int n = allID.size()-1; + minID = allID[(int)(n*0.05)]; + maxID = allID[(int)(n*0.95)]; + + + // slowly adapt: change by maximum 10% of old span. + float maxChange = 0.1*(maxIdJetVisDebug - minIdJetVisDebug); + if(maxIdJetVisDebug < 0 || minIdJetVisDebug < 0 ) maxChange = 1e5; + + + if(minID < minIdJetVisDebug - maxChange) + minID = minIdJetVisDebug - maxChange; + if(minID > minIdJetVisDebug + maxChange) + minID = minIdJetVisDebug + maxChange; + + + if(maxID < maxIdJetVisDebug - maxChange) + maxID = maxIdJetVisDebug - maxChange; + if(maxID > maxIdJetVisDebug + maxChange) + maxID = maxIdJetVisDebug + maxChange; + + maxIdJetVisDebug = maxID; + minIdJetVisDebug = minID; + + } + + + + + + + + + + + + + int wh = hG[0]*wG[0]; + for(unsigned int f=0;fI; + Eigen::Vector3f* fd = frameHessians[f]->dI; + + + for(int i=0;i255) c=255; + img->at(i) = Vec3b(c,c,c); + } + + if((int)(freeDebugParam5+0.5f) == 0) + { + for(PointHessian* ph : frameHessians[f]->pointHessians) + { + if(ph==0) continue; + + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeRainbow3B(ph->idepth_scaled)); + } + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + { + if(ph==0) continue; + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeRainbow3B(ph->idepth_scaled)); + } + for(PointHessian* ph : frameHessians[f]->pointHessiansOut) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,255,255)); + } + else if((int)(freeDebugParam5+0.5f) == 1) + { + for(PointHessian* ph : frameHessians[f]->pointHessians) + { + if(ph==0) continue; + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeRainbow3B(ph->idepth_scaled)); + } + + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,0)); + + for(PointHessian* ph : frameHessians[f]->pointHessiansOut) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,255,255)); + } + else if((int)(freeDebugParam5+0.5f) == 2) + { + + } + else if((int)(freeDebugParam5+0.5f) == 3) + { + for(ImmaturePoint* ph : frameHessians[f]->immaturePoints) + { + if(ph==0) continue; + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_GOOD || + ph->lastTraceStatus==ImmaturePointStatus::IPS_SKIPPED || + ph->lastTraceStatus==ImmaturePointStatus::IPS_BADCONDITION) + { + if(!std::isfinite(ph->idepth_max)) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,0)); + else + { + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeRainbow3B((ph->idepth_min + ph->idepth_max)*0.5f)); + } + } + } + } + else if((int)(freeDebugParam5+0.5f) == 4) + { + for(ImmaturePoint* ph : frameHessians[f]->immaturePoints) + { + if(ph==0) continue; + + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_GOOD) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,255,0)); + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_OOB) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,0,0)); + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_OUTLIER) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,255)); + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_SKIPPED) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,255,0)); + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_BADCONDITION) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,255,255)); + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_UNINITIALIZED) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,0)); + } + } + else if((int)(freeDebugParam5+0.5f) == 5) + { + for(ImmaturePoint* ph : frameHessians[f]->immaturePoints) + { + if(ph==0) continue; + + if(ph->lastTraceStatus==ImmaturePointStatus::IPS_UNINITIALIZED) continue; + float d = freeDebugParam1 * (sqrtf(ph->quality)-1); + if(d<0) d=0; + if(d>1) d=1; + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,d*255,(1-d)*255)); + } + + } + else if((int)(freeDebugParam5+0.5f) == 6) + { + for(PointHessian* ph : frameHessians[f]->pointHessians) + { + if(ph==0) continue; + if(ph->my_type==0) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,0,255)); + if(ph->my_type==1) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,0,0)); + if(ph->my_type==2) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,255)); + if(ph->my_type==3) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,255,255)); + } + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + { + if(ph==0) continue; + if(ph->my_type==0) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,0,255)); + if(ph->my_type==1) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(255,0,0)); + if(ph->my_type==2) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,255)); + if(ph->my_type==3) + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,255,255)); + } + + } + if((int)(freeDebugParam5+0.5f) == 7) + { + for(PointHessian* ph : frameHessians[f]->pointHessians) + { + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeJet3B((ph->idepth_scaled-minID) / ((maxID-minID)))); + } + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + { + if(ph==0) continue; + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,0)); + } + } + } + IOWrap::displayImageStitch(name.c_str(), images); + IOWrap::waitKey(5); + + for(unsigned int i=0;idI; + + for(int i=0;i255) c=255; + img->at(i) = Vec3b(c,c,c); + } + + for(PointHessian* ph : frameHessians[f]->pointHessians) + { + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, makeJet3B((ph->idepth_scaled-minID) / ((maxID-minID)))); + } + for(PointHessian* ph : frameHessians[f]->pointHessiansMarginalized) + { + if(ph==0) continue; + img->setPixelCirc(ph->u+0.5f, ph->v+0.5f, Vec3b(0,0,0)); + } + + char buf[1000]; + snprintf(buf, 1000, "images_out/kf_%05d_%05d_%02d.png", + frameHessians.back()->shell->id, frameHessians.back()->frameID, f); + IOWrap::writeImage(buf,img); + + delete img; + } + } + + + + + } + + + + + + +} diff --git a/src/FullSystem/FullSystemMarginalize.cpp b/src/FullSystem/FullSystemMarginalize.cpp new file mode 100644 index 0000000..e294540 --- /dev/null +++ b/src/FullSystem/FullSystemMarginalize.cpp @@ -0,0 +1,220 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" + +#include +#include +#include "FullSystem/ResidualProjections.h" +#include "FullSystem/ImmaturePoint.h" + +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +#include "IOWrapper/Output3DWrapper.h" + +#include "FullSystem/CoarseTracker.h" + +namespace dso +{ + + + +void FullSystem::flagFramesForMarginalization(FrameHessian* newFH) +{ + if(setting_minFrameAge > setting_maxFrames) + { + for(int i=setting_maxFrames;i<(int)frameHessians.size();i++) + { + FrameHessian* fh = frameHessians[i-setting_maxFrames]; + fh->flaggedForMarginalization = true; + } + return; + } + + + int flagged = 0; + // marginalize all frames that have not enough points. + for(int i=0;i<(int)frameHessians.size();i++) + { + FrameHessian* fh = frameHessians[i]; + int in = fh->pointHessians.size() + fh->immaturePoints.size(); + int out = fh->pointHessiansMarginalized.size() + fh->pointHessiansOut.size(); + + + Vec2 refToFh=AffLight::fromToVecExposure(frameHessians.back()->ab_exposure, fh->ab_exposure, + frameHessians.back()->aff_g2l(), fh->aff_g2l()); + + + if( (in < setting_minPointsRemaining *(in+out) || fabs(logf((float)refToFh[0])) > setting_maxLogAffFacInWindow) + && ((int)frameHessians.size())-flagged > setting_minFrames) + { +// printf("MARGINALIZE frame %d, as only %'d/%'d points remaining (%'d %'d %'d %'d). VisInLast %'d / %'d. traces %d, activated %d!\n", +// fh->frameID, in, in+out, +// (int)fh->pointHessians.size(), (int)fh->immaturePoints.size(), +// (int)fh->pointHessiansMarginalized.size(), (int)fh->pointHessiansOut.size(), +// visInLast, outInLast, +// fh->statistics_tracesCreatedForThisFrame, fh->statistics_pointsActivatedForThisFrame); + fh->flaggedForMarginalization = true; + flagged++; + } + else + { +// printf("May Keep frame %d, as %'d/%'d points remaining (%'d %'d %'d %'d). VisInLast %'d / %'d. traces %d, activated %d!\n", +// fh->frameID, in, in+out, +// (int)fh->pointHessians.size(), (int)fh->immaturePoints.size(), +// (int)fh->pointHessiansMarginalized.size(), (int)fh->pointHessiansOut.size(), +// visInLast, outInLast, +// fh->statistics_tracesCreatedForThisFrame, fh->statistics_pointsActivatedForThisFrame); + } + } + + // marginalize one. + if((int)frameHessians.size()-flagged >= setting_maxFrames) + { + double smallestScore = 1; + FrameHessian* toMarginalize=0; + FrameHessian* latest = frameHessians.back(); + + + for(FrameHessian* fh : frameHessians) + { + if(fh->frameID > latest->frameID-setting_minFrameAge || fh->frameID == 0) continue; + //if(fh==frameHessians.front() == 0) continue; + + double distScore = 0; + for(FrameFramePrecalc &ffh : fh->targetPrecalc) + { + if(ffh.target->frameID > latest->frameID-setting_minFrameAge+1 || ffh.target == ffh.host) continue; + distScore += 1/(1e-5+ffh.distanceLL); + + } + distScore *= -sqrtf(fh->targetPrecalc.back().distanceLL); + + + if(distScore < smallestScore) + { + smallestScore = distScore; + toMarginalize = fh; + } + } + +// printf("MARGINALIZE frame %d, as it is the closest (score %.2f)!\n", +// toMarginalize->frameID, smallestScore); + toMarginalize->flaggedForMarginalization = true; + flagged++; + } + +// printf("FRAMES LEFT: "); +// for(FrameHessian* fh : frameHessians) +// printf("%d ", fh->frameID); +// printf("\n"); +} + + + + +void FullSystem::marginalizeFrame(FrameHessian* frame) +{ + // marginalize or remove all this frames points. + + assert((int)frame->pointHessians.size()==0); + + + ef->marginalizeFrame(frame->efFrame); + + // drop all observations of existing points in that frame. + + for(FrameHessian* fh : frameHessians) + { + if(fh==frame) continue; + + for(PointHessian* ph : fh->pointHessians) + { + for(unsigned int i=0;iresiduals.size();i++) + { + PointFrameResidual* r = ph->residuals[i]; + if(r->target == frame) + { + if(ph->lastResiduals[0].first == r) + ph->lastResiduals[0].first=0; + else if(ph->lastResiduals[1].first == r) + ph->lastResiduals[1].first=0; + + + if(r->host->frameID < r->target->frameID) + statistics_numForceDroppedResFwd++; + else + statistics_numForceDroppedResBwd++; + + ef->dropResidual(r->efResidual); + deleteOut(ph->residuals,i); + break; + } + } + } + } + + + + { + std::vector v; + v.push_back(frame); + for(IOWrap::Output3DWrapper* ow : outputWrapper) + ow->publishKeyframes(v, true, &Hcalib); + } + + + frame->shell->marginalizedAt = frameHessians.back()->shell->id; + frame->shell->movedByOpt = frame->w2c_leftEps().norm(); + + deleteOutOrder(frameHessians, frame); + for(unsigned int i=0;iidx = i; + + + + + setPrecalcValues(); + ef->setAdjointsF(&Hcalib); +} + + + + +} diff --git a/src/FullSystem/FullSystemOptPoint.cpp b/src/FullSystem/FullSystemOptPoint.cpp new file mode 100644 index 0000000..166b573 --- /dev/null +++ b/src/FullSystem/FullSystemOptPoint.cpp @@ -0,0 +1,209 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" + +#include +#include +#include "FullSystem/ImmaturePoint.h" +#include "math.h" + +namespace dso +{ + + + +PointHessian* FullSystem::optimizeImmaturePoint( + ImmaturePoint* point, int minObs, + ImmaturePointTemporaryResidual* residuals) +{ + int nres = 0; + for(FrameHessian* fh : frameHessians) + { + if(fh != point->host) + { + residuals[nres].state_NewEnergy = residuals[nres].state_energy = 0; + residuals[nres].state_NewState = ResState::OUTLIER; + residuals[nres].state_state = ResState::IN; + residuals[nres].target = fh; + nres++; + } + } + assert(nres == ((int)frameHessians.size())-1); + + bool print = false;//rand()%50==0; + + float lastEnergy = 0; + float lastHdd=0; + float lastbd=0; + float currentIdepth=(point->idepth_max+point->idepth_min)*0.5f; + + + + + + + for(int i=0;ilinearizeResidual(&Hcalib, 1000, residuals+i,lastHdd, lastbd, currentIdepth); + residuals[i].state_state = residuals[i].state_NewState; + residuals[i].state_energy = residuals[i].state_NewEnergy; + } + + if(!std::isfinite(lastEnergy) || lastHdd < setting_minIdepthH_act) + { + if(print) + printf("OptPoint: Not well-constrained (%d res, H=%.1f). E=%f. SKIP!\n", + nres, lastHdd, lastEnergy); + return 0; + } + + if(print) printf("Activate point. %d residuals. H=%f. Initial Energy: %f. Initial Id=%f\n" , + nres, lastHdd,lastEnergy,currentIdepth); + + float lambda = 0.1; + for(int iteration=0;iterationlinearizeResidual(&Hcalib, 1, residuals+i,newHdd, newbd, newIdepth); + + if(!std::isfinite(lastEnergy) || newHdd < setting_minIdepthH_act) + { + if(print) printf("OptPoint: Not well-constrained (%d res, H=%.1f). E=%f. SKIP!\n", + nres, + newHdd, + lastEnergy); + return 0; + } + + if(print) printf("%s %d (L %.2f) %s: %f -> %f (idepth %f)!\n", + (true || newEnergy < lastEnergy) ? "ACCEPT" : "REJECT", + iteration, + log10(lambda), + "", + lastEnergy, newEnergy, newIdepth); + + if(newEnergy < lastEnergy) + { + currentIdepth = newIdepth; + lastHdd = newHdd; + lastbd = newbd; + lastEnergy = newEnergy; + for(int i=0;ienergyTH)) {delete p; return (PointHessian*)((long)(-1));} + + p->lastResiduals[0].first = 0; + p->lastResiduals[0].second = ResState::OOB; + p->lastResiduals[1].first = 0; + p->lastResiduals[1].second = ResState::OOB; + p->setIdepthZero(currentIdepth); + p->setIdepth(currentIdepth); + p->setPointStatus(PointHessian::ACTIVE); + + for(int i=0;ihost, residuals[i].target); + r->state_NewEnergy = r->state_energy = 0; + r->state_NewState = ResState::OUTLIER; + r->setState(ResState::IN); + p->residuals.push_back(r); + + if(r->target == frameHessians.back()) + { + p->lastResiduals[0].first = r; + p->lastResiduals[0].second = ResState::IN; + } + else if(r->target == (frameHessians.size()<2 ? 0 : frameHessians[frameHessians.size()-2])) + { + p->lastResiduals[1].first = r; + p->lastResiduals[1].second = ResState::IN; + } + } + + if(print) printf("point activated!\n"); + + statistics_numActivatedPoints++; + return p; +} + + + +} diff --git a/src/FullSystem/FullSystemOptimize.cpp b/src/FullSystem/FullSystemOptimize.cpp new file mode 100644 index 0000000..74af9c1 --- /dev/null +++ b/src/FullSystem/FullSystemOptimize.cpp @@ -0,0 +1,714 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" +#include +#include +#include "FullSystem/ResidualProjections.h" + +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +#include + +#include + +namespace dso +{ + + + + + +void FullSystem::linearizeAll_Reductor(bool fixLinearization, std::vector* toRemove, int min, int max, Vec10* stats, int tid) +{ + for(int k=min;klinearize(&Hcalib); + + if(fixLinearization) + { + r->applyRes(true); + + if(r->efResidual->isActive()) + { + if(r->isNew) + { + PointHessian* p = r->point; + Vec3f ptp_inf = r->host->targetPrecalc[r->target->idx].PRE_KRKiTll * Vec3f(p->u,p->v, 1); // projected point assuming infinite depth. + Vec3f ptp = ptp_inf + r->host->targetPrecalc[r->target->idx].PRE_KtTll*p->idepth_scaled; // projected point with real depth. + float relBS = 0.01*((ptp_inf.head<2>() / ptp_inf[2])-(ptp.head<2>() / ptp[2])).norm(); // 0.01 = one pixel. + + + if(relBS > p->maxRelBaseline) + p->maxRelBaseline = relBS; + + p->numGoodResiduals++; + } + } + else + { + toRemove[tid].push_back(activeResiduals[k]); + } + } + } +} + + +void FullSystem::applyRes_Reductor(bool copyJacobians, int min, int max, Vec10* stats, int tid) +{ + for(int k=min;kapplyRes(true); +} +void FullSystem::setNewFrameEnergyTH() +{ + + // collect all residuals and make decision on TH. + allResVec.clear(); + allResVec.reserve(activeResiduals.size()*2); + FrameHessian* newFrame = frameHessians.back(); + + for(PointFrameResidual* r : activeResiduals) + if(r->state_NewEnergyWithOutlier >= 0 && r->target == newFrame) + { + allResVec.push_back(r->state_NewEnergyWithOutlier); + + } + + if(allResVec.size()==0) + { + newFrame->frameEnergyTH = 12*12*patternNum; + return; // should never happen, but lets make sure. + } + + + int nthIdx = setting_frameEnergyTHN*allResVec.size(); + + assert(nthIdx < (int)allResVec.size()); + assert(setting_frameEnergyTHN < 1); + + std::nth_element(allResVec.begin(), allResVec.begin()+nthIdx, allResVec.end()); + float nthElement = sqrtf(allResVec[nthIdx]); + + + + + + + newFrame->frameEnergyTH = nthElement*setting_frameEnergyTHFacMedian; + newFrame->frameEnergyTH = 26.0f*setting_frameEnergyTHConstWeight + newFrame->frameEnergyTH*(1-setting_frameEnergyTHConstWeight); + newFrame->frameEnergyTH = newFrame->frameEnergyTH*newFrame->frameEnergyTH; + newFrame->frameEnergyTH *= setting_overallEnergyTHWeight*setting_overallEnergyTHWeight; + + + +// +// int good=0,bad=0; +// for(float f : allResVec) if(fframeEnergyTH) good++; else bad++; +// printf("EnergyTH: mean %f, median %f, result %f (in %d, out %d)! \n", +// meanElement, nthElement, sqrtf(newFrame->frameEnergyTH), +// good, bad); +} +Vec3 FullSystem::linearizeAll(bool fixLinearization) +{ + double lastEnergyP = 0; + double lastEnergyR = 0; + double num = 0; + + + std::vector toRemove[NUM_THREADS]; + for(int i=0;ipoint; + if(ph->lastResiduals[0].first == r) + ph->lastResiduals[0].second = r->state_state; + else if(ph->lastResiduals[1].first == r) + ph->lastResiduals[1].second = r->state_state; + + + + } + + int nResRemoved=0; + for(int i=0;ipoint; + + if(ph->lastResiduals[0].first == r) + ph->lastResiduals[0].first=0; + else if(ph->lastResiduals[1].first == r) + ph->lastResiduals[1].first=0; + + for(unsigned int k=0; kresiduals.size();k++) + if(ph->residuals[k] == r) + { + ef->dropResidual(r->efResidual); + deleteOut(ph->residuals,k); + nResRemoved++; + break; + } + } + } + //printf("FINAL LINEARIZATION: removed %d / %d residuals!\n", nResRemoved, (int)activeResiduals.size()); + + } + + return Vec3(lastEnergyP, lastEnergyR, num); +} + + + + +// applies step to linearization point. +bool FullSystem::doStepFromBackup(float stepfacC,float stepfacT,float stepfacR,float stepfacA,float stepfacD) +{ +// float meanStepC=0,meanStepP=0,meanStepD=0; +// meanStepC += Hcalib.step.norm(); + + Vec10 pstepfac; + pstepfac.segment<3>(0).setConstant(stepfacT); + pstepfac.segment<3>(3).setConstant(stepfacR); + pstepfac.segment<4>(6).setConstant(stepfacA); + + + float sumA=0, sumB=0, sumT=0, sumR=0, sumID=0, numID=0; + + float sumNID=0; + + if(setting_solverMode & SOLVER_MOMENTUM) + { + Hcalib.setValue(Hcalib.value_backup + Hcalib.step); + for(FrameHessian* fh : frameHessians) + { + Vec10 step = fh->step; + step.head<6>() += 0.5f*(fh->step_backup.head<6>()); + + fh->setState(fh->state_backup + step); + sumA += step[6]*step[6]; + sumB += step[7]*step[7]; + sumT += step.segment<3>(0).squaredNorm(); + sumR += step.segment<3>(3).squaredNorm(); + + for(PointHessian* ph : fh->pointHessians) + { + float step = ph->step+0.5f*(ph->step_backup); + ph->setIdepth(ph->idepth_backup + step); + sumID += step*step; + sumNID += fabsf(ph->idepth_backup); + numID++; + + ph->setIdepthZero(ph->idepth_backup + step); + } + } + } + else + { + Hcalib.setValue(Hcalib.value_backup + stepfacC*Hcalib.step); + for(FrameHessian* fh : frameHessians) + { + fh->setState(fh->state_backup + pstepfac.cwiseProduct(fh->step)); + sumA += fh->step[6]*fh->step[6]; + sumB += fh->step[7]*fh->step[7]; + sumT += fh->step.segment<3>(0).squaredNorm(); + sumR += fh->step.segment<3>(3).squaredNorm(); + + for(PointHessian* ph : fh->pointHessians) + { + ph->setIdepth(ph->idepth_backup + stepfacD*ph->step); + sumID += ph->step*ph->step; + sumNID += fabsf(ph->idepth_backup); + numID++; + + ph->setIdepthZero(ph->idepth_backup + stepfacD*ph->step); + } + } + } + + sumA /= frameHessians.size(); + sumB /= frameHessians.size(); + sumR /= frameHessians.size(); + sumT /= frameHessians.size(); + sumID /= numID; + sumNID /= numID; + + + + if(!setting_debugout_runquiet) + printf("STEPS: A %.1f; B %.1f; R %.1f; T %.1f. \t", + sqrtf(sumA) / (0.0005*setting_thOptIterations), + sqrtf(sumB) / (0.00005*setting_thOptIterations), + sqrtf(sumR) / (0.00005*setting_thOptIterations), + sqrtf(sumT)*sumNID / (0.00005*setting_thOptIterations)); + + + EFDeltaValid=false; + setPrecalcValues(); + + + + return sqrtf(sumA) < 0.0005*setting_thOptIterations && + sqrtf(sumB) < 0.00005*setting_thOptIterations && + sqrtf(sumR) < 0.00005*setting_thOptIterations && + sqrtf(sumT)*sumNID < 0.00005*setting_thOptIterations; +// +// printf("mean steps: %f %f %f!\n", +// meanStepC, meanStepP, meanStepD); +} + + + +// sets linearization point. +void FullSystem::backupState(bool backupLastStep) +{ + if(setting_solverMode & SOLVER_MOMENTUM) + { + if(backupLastStep) + { + Hcalib.step_backup = Hcalib.step; + Hcalib.value_backup = Hcalib.value; + for(FrameHessian* fh : frameHessians) + { + fh->step_backup = fh->step; + fh->state_backup = fh->get_state(); + for(PointHessian* ph : fh->pointHessians) + { + ph->idepth_backup = ph->idepth; + ph->step_backup = ph->step; + } + } + } + else + { + Hcalib.step_backup.setZero(); + Hcalib.value_backup = Hcalib.value; + for(FrameHessian* fh : frameHessians) + { + fh->step_backup.setZero(); + fh->state_backup = fh->get_state(); + for(PointHessian* ph : fh->pointHessians) + { + ph->idepth_backup = ph->idepth; + ph->step_backup=0; + } + } + } + } + else + { + Hcalib.value_backup = Hcalib.value; + for(FrameHessian* fh : frameHessians) + { + fh->state_backup = fh->get_state(); + for(PointHessian* ph : fh->pointHessians) + ph->idepth_backup = ph->idepth; + } + } +} + +// sets linearization point. +void FullSystem::loadSateBackup() +{ + Hcalib.setValue(Hcalib.value_backup); + for(FrameHessian* fh : frameHessians) + { + fh->setState(fh->state_backup); + for(PointHessian* ph : fh->pointHessians) + { + ph->setIdepth(ph->idepth_backup); + + ph->setIdepthZero(ph->idepth_backup); + } + + } + + + EFDeltaValid=false; + setPrecalcValues(); +} + + +double FullSystem::calcMEnergy() +{ + if(setting_forceAceptStep) return 0; + // calculate (x-x0)^T * [2b + H * (x-x0)] for everything saved in L. + //ef->makeIDX(); + //ef->setDeltaF(&Hcalib); + return ef->calcMEnergyF(); + +} + + +void FullSystem::printOptRes(const Vec3 &res, double resL, double resM, double resPrior, double LExact, float a, float b) +{ + printf("A(%f)=(AV %.3f). Num: A(%'d) + M(%'d); ab %f %f!\n", + res[0], + sqrtf((float)(res[0] / (patternNum*ef->resInA))), + ef->resInA, + ef->resInM, + a, + b + ); + +} + + +float FullSystem::optimize(int mnumOptIts) +{ + + if(frameHessians.size() < 2) return 0; + if(frameHessians.size() < 3) mnumOptIts = 20; + if(frameHessians.size() < 4) mnumOptIts = 15; + + + + + + + // get statistics and active residuals. + + activeResiduals.clear(); + int numPoints = 0; + int numLRes = 0; + for(FrameHessian* fh : frameHessians) + for(PointHessian* ph : fh->pointHessians) + { + for(PointFrameResidual* r : ph->residuals) + { + if(!r->efResidual->isLinearized) + { + activeResiduals.push_back(r); + r->resetOOB(); + } + else + numLRes++; + } + numPoints++; + } + + if(!setting_debugout_runquiet) + printf("OPTIMIZE %d pts, %d active res, %d lin res!\n",ef->nPoints,(int)activeResiduals.size(), numLRes); + + + Vec3 lastEnergy = linearizeAll(false); + double lastEnergyL = calcLEnergy(); + double lastEnergyM = calcMEnergy(); + + + + + + if(multiThreading) + treadReduce.reduce(boost::bind(&FullSystem::applyRes_Reductor, this, true, _1, _2, _3, _4), 0, activeResiduals.size(), 50); + else + applyRes_Reductor(true,0,activeResiduals.size(),0,0); + + + if(!setting_debugout_runquiet) + { + printf("Initial Error \t"); + printOptRes(lastEnergy, lastEnergyL, lastEnergyM, 0, 0, frameHessians.back()->aff_g2l().a, frameHessians.back()->aff_g2l().b); + } + + debugPlotTracking(); + + + + double lambda = 1e-1; + float stepsize=1; + VecX previousX = VecX::Constant(CPARS+ 8*frameHessians.size(), NAN); + for(int iteration=0;iterationlastX)) / (1e-20 + previousX.norm() * ef->lastX.norm()); + previousX = ef->lastX; + + + if(std::isfinite(incDirChange) && (setting_solverMode & SOLVER_STEPMOMENTUM)) + { + float newStepsize = exp(incDirChange*1.4); + if(incDirChange<0 && stepsize>1) stepsize=1; + + stepsize = sqrtf(sqrtf(newStepsize*stepsize*stepsize*stepsize)); + if(stepsize > 2) stepsize=2; + if(stepsize <0.25) stepsize=0.25; + } + + bool canbreak = doStepFromBackup(stepsize,stepsize,stepsize,stepsize,stepsize); + + + + + + + + // eval new energy! + Vec3 newEnergy = linearizeAll(false); + double newEnergyL = calcLEnergy(); + double newEnergyM = calcMEnergy(); + + + + + if(!setting_debugout_runquiet) + { + printf("%s %d (L %.2f, dir %.2f, ss %.1f): \t", + (newEnergy[0] + newEnergy[1] + newEnergyL + newEnergyM < + lastEnergy[0] + lastEnergy[1] + lastEnergyL + lastEnergyM) ? "ACCEPT" : "REJECT", + iteration, + log10(lambda), + incDirChange, + stepsize); + printOptRes(newEnergy, newEnergyL, newEnergyM , 0, 0, frameHessians.back()->aff_g2l().a, frameHessians.back()->aff_g2l().b); + } + + if(setting_forceAceptStep || (newEnergy[0] + newEnergy[1] + newEnergyL + newEnergyM < + lastEnergy[0] + lastEnergy[1] + lastEnergyL + lastEnergyM)) + { + + if(multiThreading) + treadReduce.reduce(boost::bind(&FullSystem::applyRes_Reductor, this, true, _1, _2, _3, _4), 0, activeResiduals.size(), 50); + else + applyRes_Reductor(true,0,activeResiduals.size(),0,0); + + lastEnergy = newEnergy; + lastEnergyL = newEnergyL; + lastEnergyM = newEnergyM; + + lambda *= 0.25; + } + else + { + loadSateBackup(); + lastEnergy = linearizeAll(false); + lastEnergyL = calcLEnergy(); + lastEnergyM = calcMEnergy(); + lambda *= 1e2; + } + + + if(canbreak && iteration >= setting_minOptIterations) break; + } + + + + Vec10 newStateZero = Vec10::Zero(); + newStateZero.segment<2>(6) = frameHessians.back()->get_state().segment<2>(6); + + frameHessians.back()->setEvalPT(frameHessians.back()->PRE_worldToCam, + newStateZero); + EFDeltaValid=false; + EFAdjointsValid=false; + ef->setAdjointsF(&Hcalib); + setPrecalcValues(); + + + + + lastEnergy = linearizeAll(true); + + + + + if(!std::isfinite((double)lastEnergy[0]) || !std::isfinite((double)lastEnergy[1]) || !std::isfinite((double)lastEnergy[2])) + { + printf("KF Tracking failed: LOST!\n"); + isLost=true; + } + + + statistics_lastFineTrackRMSE = sqrtf((float)(lastEnergy[0] / (patternNum*ef->resInA))); + + if(calibLog != 0) + { + (*calibLog) << Hcalib.value_scaled.transpose() << + " " << frameHessians.back()->get_state_scaled().transpose() << + " " << sqrtf((float)(lastEnergy[0] / (patternNum*ef->resInA))) << + " " << ef->resInM << "\n"; + calibLog->flush(); + } + + { + boost::unique_lock crlock(shellPoseMutex); + for(FrameHessian* fh : frameHessians) + { + fh->shell->camToWorld = fh->PRE_camToWorld; + fh->shell->aff_g2l = fh->aff_g2l(); + } + } + + + + + debugPlotTracking(); + + return sqrtf((float)(lastEnergy[0] / (patternNum*ef->resInA))); + +} + + + + + +void FullSystem::solveSystem(int iteration, double lambda) +{ + ef->lastNullspaces_forLogging = getNullspaces( + ef->lastNullspaces_pose, + ef->lastNullspaces_scale, + ef->lastNullspaces_affA, + ef->lastNullspaces_affB); + + ef->solveSystemF(iteration, lambda,&Hcalib); +} + + + +double FullSystem::calcLEnergy() +{ + if(setting_forceAceptStep) return 0; + + double Ef = ef->calcLEnergyF_MT(); + return Ef; + +} + + +void FullSystem::removeOutliers() +{ + int numPointsDropped=0; + for(FrameHessian* fh : frameHessians) + { + for(unsigned int i=0;ipointHessians.size();i++) + { + PointHessian* ph = fh->pointHessians[i]; + if(ph==0) continue; + + if(ph->residuals.size() == 0) + { + fh->pointHessiansOut.push_back(ph); + ph->efPoint->stateFlag = EFPointStatus::PS_DROP; + fh->pointHessians[i] = fh->pointHessians.back(); + fh->pointHessians.pop_back(); + i--; + numPointsDropped++; + } + } + } + ef->dropPointsF(); +} + + + + +std::vector FullSystem::getNullspaces( + std::vector &nullspaces_pose, + std::vector &nullspaces_scale, + std::vector &nullspaces_affA, + std::vector &nullspaces_affB) +{ + nullspaces_pose.clear(); + nullspaces_scale.clear(); + nullspaces_affA.clear(); + nullspaces_affB.clear(); + + + int n=CPARS+frameHessians.size()*8; + std::vector nullspaces_x0_pre; + for(int i=0;i<6;i++) + { + VecX nullspace_x0(n); + nullspace_x0.setZero(); + for(FrameHessian* fh : frameHessians) + { + nullspace_x0.segment<6>(CPARS+fh->idx*8) = fh->nullspaces_pose.col(i); + nullspace_x0.segment<3>(CPARS+fh->idx*8) *= SCALE_XI_TRANS_INVERSE; + nullspace_x0.segment<3>(CPARS+fh->idx*8+3) *= SCALE_XI_ROT_INVERSE; + } + nullspaces_x0_pre.push_back(nullspace_x0); + nullspaces_pose.push_back(nullspace_x0); + } + for(int i=0;i<2;i++) + { + VecX nullspace_x0(n); + nullspace_x0.setZero(); + for(FrameHessian* fh : frameHessians) + { + nullspace_x0.segment<2>(CPARS+fh->idx*8+6) = fh->nullspaces_affine.col(i).head<2>(); + nullspace_x0[CPARS+fh->idx*8+6] *= SCALE_A_INVERSE; + nullspace_x0[CPARS+fh->idx*8+7] *= SCALE_B_INVERSE; + } + nullspaces_x0_pre.push_back(nullspace_x0); + if(i==0) nullspaces_affA.push_back(nullspace_x0); + if(i==1) nullspaces_affB.push_back(nullspace_x0); + } + + VecX nullspace_x0(n); + nullspace_x0.setZero(); + for(FrameHessian* fh : frameHessians) + { + nullspace_x0.segment<6>(CPARS+fh->idx*8) = fh->nullspaces_scale; + nullspace_x0.segment<3>(CPARS+fh->idx*8) *= SCALE_XI_TRANS_INVERSE; + nullspace_x0.segment<3>(CPARS+fh->idx*8+3) *= SCALE_XI_ROT_INVERSE; + } + nullspaces_x0_pre.push_back(nullspace_x0); + nullspaces_scale.push_back(nullspace_x0); + + return nullspaces_x0_pre; +} + +} diff --git a/src/FullSystem/HessianBlocks.cpp b/src/FullSystem/HessianBlocks.cpp new file mode 100644 index 0000000..ef801b7 --- /dev/null +++ b/src/FullSystem/HessianBlocks.cpp @@ -0,0 +1,226 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "FullSystem/HessianBlocks.h" +#include "util/FrameShell.h" +#include "FullSystem/ImmaturePoint.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +namespace dso +{ + + +PointHessian::PointHessian(const ImmaturePoint* const rawPoint, CalibHessian* Hcalib) +{ + instanceCounter++; + host = rawPoint->host; + hasDepthPrior=false; + + idepth_hessian=0; + maxRelBaseline=0; + numGoodResiduals=0; + + // set static values & initialization. + u = rawPoint->u; + v = rawPoint->v; + assert(std::isfinite(rawPoint->idepth_max)); + //idepth_init = rawPoint->idepth_GT; + + my_type = rawPoint->my_type; + + setIdepthScaled((rawPoint->idepth_max + rawPoint->idepth_min)*0.5); + setPointStatus(PointHessian::INACTIVE); + + int n = patternNum; + memcpy(color, rawPoint->color, sizeof(float)*n); + memcpy(weights, rawPoint->weights, sizeof(float)*n); + energyTH = rawPoint->energyTH; + + efPoint=0; + + +} + + +void PointHessian::release() +{ + for(unsigned int i=0;i().squaredNorm() < 1e-20); + + this->state_zero = state_zero; + + + for(int i=0;i<6;i++) + { + Vec6 eps; eps.setZero(); eps[i] = 1e-3; + SE3 EepsP = Sophus::SE3::exp(eps); + SE3 EepsM = Sophus::SE3::exp(-eps); + SE3 w2c_leftEps_P_x0 = (get_worldToCam_evalPT() * EepsP) * get_worldToCam_evalPT().inverse(); + SE3 w2c_leftEps_M_x0 = (get_worldToCam_evalPT() * EepsM) * get_worldToCam_evalPT().inverse(); + nullspaces_pose.col(i) = (w2c_leftEps_P_x0.log() - w2c_leftEps_M_x0.log())/(2e-3); + } + //nullspaces_pose.topRows<3>() *= SCALE_XI_TRANS_INVERSE; + //nullspaces_pose.bottomRows<3>() *= SCALE_XI_ROT_INVERSE; + + // scale change + SE3 w2c_leftEps_P_x0 = (get_worldToCam_evalPT()); + w2c_leftEps_P_x0.translation() *= 1.00001; + w2c_leftEps_P_x0 = w2c_leftEps_P_x0 * get_worldToCam_evalPT().inverse(); + SE3 w2c_leftEps_M_x0 = (get_worldToCam_evalPT()); + w2c_leftEps_M_x0.translation() /= 1.00001; + w2c_leftEps_M_x0 = w2c_leftEps_M_x0 * get_worldToCam_evalPT().inverse(); + nullspaces_scale = (w2c_leftEps_P_x0.log() - w2c_leftEps_M_x0.log())/(2e-3); + + + nullspaces_affine.setZero(); + nullspaces_affine.topLeftCorner<2,1>() = Vec2(1,0); + assert(ab_exposure > 0); + nullspaces_affine.topRightCorner<2,1>() = Vec2(0, expf(aff_g2l_0().a)*ab_exposure); +}; + + + +void FrameHessian::release() +{ + // DELETE POINT + // DELETE RESIDUAL + for(unsigned int i=0;i0) + { + int lvlm1 = lvl-1; + int wlm1 = wG[lvlm1]; + Eigen::Vector3f* dI_lm = dIp[lvlm1]; + + + + for(int y=0;ygetBGradOnly((float)(dI_l[idx][0])); + dabs_l[idx] *= gw*gw; // convert to gradient of original color space (before removing response). + } + } + } +} + +void FrameFramePrecalc::set(FrameHessian* host, FrameHessian* target, CalibHessian* HCalib ) +{ + this->host = host; + this->target = target; + + SE3 leftToLeft_0 = target->get_worldToCam_evalPT() * host->get_worldToCam_evalPT().inverse(); + PRE_RTll_0 = (leftToLeft_0.rotationMatrix()).cast(); + PRE_tTll_0 = (leftToLeft_0.translation()).cast(); + + + + SE3 leftToLeft = target->PRE_worldToCam * host->PRE_camToWorld; + PRE_RTll = (leftToLeft.rotationMatrix()).cast(); + PRE_tTll = (leftToLeft.translation()).cast(); + distanceLL = leftToLeft.translation().norm(); + + + Mat33f K = Mat33f::Zero(); + K(0,0) = HCalib->fxl(); + K(1,1) = HCalib->fyl(); + K(0,2) = HCalib->cxl(); + K(1,2) = HCalib->cyl(); + K(2,2) = 1; + PRE_KRKiTll = K * PRE_RTll * K.inverse(); + PRE_RKiTll = PRE_RTll * K.inverse(); + PRE_KtTll = K * PRE_tTll; + + + PRE_aff_mode = AffLight::fromToVecExposure(host->ab_exposure, target->ab_exposure, host->aff_g2l(), target->aff_g2l()).cast(); + PRE_b0_mode = host->aff_g2l_0().b; +} + +} + diff --git a/src/FullSystem/HessianBlocks.h b/src/FullSystem/HessianBlocks.h new file mode 100644 index 0000000..f16a85c --- /dev/null +++ b/src/FullSystem/HessianBlocks.h @@ -0,0 +1,505 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#define MAX_ACTIVE_FRAMES 100 + + +#include "util/globalCalib.h" +#include "vector" + +#include +#include +#include "util/NumType.h" +#include "FullSystem/Residuals.h" +#include "util/ImageAndExposure.h" + + +namespace dso +{ + + +inline Vec2 affFromTo(const Vec2 &from, const Vec2 &to) // contains affine parameters as XtoWorld. +{ + return Vec2(from[0] / to[0], (from[1] - to[1]) / to[0]); +} + + +struct FrameHessian; +struct PointHessian; + +class ImmaturePoint; +class FrameShell; + +class EFFrame; +class EFPoint; + +#define SCALE_IDEPTH 1.0f // scales internal value to idepth. +#define SCALE_XI_ROT 1.0f +#define SCALE_XI_TRANS 0.5f +#define SCALE_F 50.0f +#define SCALE_C 50.0f +#define SCALE_W 1.0f +#define SCALE_A 10.0f +#define SCALE_B 1000.0f + +#define SCALE_IDEPTH_INVERSE (1.0f / SCALE_IDEPTH) +#define SCALE_XI_ROT_INVERSE (1.0f / SCALE_XI_ROT) +#define SCALE_XI_TRANS_INVERSE (1.0f / SCALE_XI_TRANS) +#define SCALE_F_INVERSE (1.0f / SCALE_F) +#define SCALE_C_INVERSE (1.0f / SCALE_C) +#define SCALE_W_INVERSE (1.0f / SCALE_W) +#define SCALE_A_INVERSE (1.0f / SCALE_A) +#define SCALE_B_INVERSE (1.0f / SCALE_B) + + +struct FrameFramePrecalc +{ + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + // static values + static int instanceCounter; + FrameHessian* host; // defines row + FrameHessian* target; // defines column + + // precalc values + Mat33f PRE_RTll; + Mat33f PRE_KRKiTll; + Mat33f PRE_RKiTll; + Mat33f PRE_RTll_0; + + Vec2f PRE_aff_mode; + float PRE_b0_mode; + + Vec3f PRE_tTll; + Vec3f PRE_KtTll; + Vec3f PRE_tTll_0; + + float distanceLL; + + + inline ~FrameFramePrecalc() {} + inline FrameFramePrecalc() {host=target=0;} + void set(FrameHessian* host, FrameHessian* target, CalibHessian* HCalib); +}; + + + + + +struct FrameHessian +{ + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + EFFrame* efFrame; + + // constant info & pre-calculated values + //DepthImageWrap* frame; + FrameShell* shell; + + Eigen::Vector3f* dI; // trace, fine tracking. Used for direction select (not for gradient histograms etc.) + Eigen::Vector3f* dIp[PYR_LEVELS]; // coarse tracking / coarse initializer. NAN in [0] only. + float* absSquaredGrad[PYR_LEVELS]; // only used for pixel select (histograms etc.). no NAN. + + + + + + + int frameID; // incremental ID for keyframes only! + static int instanceCounter; + int idx; + + // Photometric Calibration Stuff + float frameEnergyTH; // set dynamically depending on tracking residual + float ab_exposure; + + bool flaggedForMarginalization; + + std::vector pointHessians; // contains all ACTIVE points. + std::vector pointHessiansMarginalized; // contains all MARGINALIZED points (= fully marginalized, usually because point went OOB.) + std::vector pointHessiansOut; // contains all OUTLIER points (= discarded.). + std::vector immaturePoints; // contains all OUTLIER points (= discarded.). + + + Mat66 nullspaces_pose; + Mat42 nullspaces_affine; + Vec6 nullspaces_scale; + + // variable info. + SE3 worldToCam_evalPT; + Vec10 state_zero; + Vec10 state_scaled; + Vec10 state; // [0-5: worldToCam-leftEps. 6-7: a,b] + Vec10 step; + Vec10 step_backup; + Vec10 state_backup; + + + EIGEN_STRONG_INLINE const SE3 &get_worldToCam_evalPT() const {return worldToCam_evalPT;} + EIGEN_STRONG_INLINE const Vec10 &get_state_zero() const {return state_zero;} + EIGEN_STRONG_INLINE const Vec10 &get_state() const {return state;} + EIGEN_STRONG_INLINE const Vec10 &get_state_scaled() const {return state_scaled;} + EIGEN_STRONG_INLINE const Vec10 get_state_minus_stateZero() const {return get_state() - get_state_zero();} + + + // precalc values + SE3 PRE_worldToCam; + SE3 PRE_camToWorld; + std::vector> targetPrecalc; + MinimalImageB3* debugImage; + + + inline Vec6 w2c_leftEps() const {return get_state_scaled().head<6>();} + inline AffLight aff_g2l() const {return AffLight(get_state_scaled()[6], get_state_scaled()[7]);} + inline AffLight aff_g2l_0() const {return AffLight(get_state_zero()[6]*SCALE_A, get_state_zero()[7]*SCALE_B);} + + + + void setStateZero(const Vec10 &state_zero); + inline void setState(const Vec10 &state) + { + + this->state = state; + state_scaled.segment<3>(0) = SCALE_XI_TRANS * state.segment<3>(0); + state_scaled.segment<3>(3) = SCALE_XI_ROT * state.segment<3>(3); + state_scaled[6] = SCALE_A * state[6]; + state_scaled[7] = SCALE_B * state[7]; + state_scaled[8] = SCALE_A * state[8]; + state_scaled[9] = SCALE_B * state[9]; + + PRE_worldToCam = SE3::exp(w2c_leftEps()) * get_worldToCam_evalPT(); + PRE_camToWorld = PRE_worldToCam.inverse(); + //setCurrentNullspace(); + }; + inline void setStateScaled(const Vec10 &state_scaled) + { + + this->state_scaled = state_scaled; + state.segment<3>(0) = SCALE_XI_TRANS_INVERSE * state_scaled.segment<3>(0); + state.segment<3>(3) = SCALE_XI_ROT_INVERSE * state_scaled.segment<3>(3); + state[6] = SCALE_A_INVERSE * state_scaled[6]; + state[7] = SCALE_B_INVERSE * state_scaled[7]; + state[8] = SCALE_A_INVERSE * state_scaled[8]; + state[9] = SCALE_B_INVERSE * state_scaled[9]; + + PRE_worldToCam = SE3::exp(w2c_leftEps()) * get_worldToCam_evalPT(); + PRE_camToWorld = PRE_worldToCam.inverse(); + //setCurrentNullspace(); + }; + inline void setEvalPT(const SE3 &worldToCam_evalPT, const Vec10 &state) + { + + this->worldToCam_evalPT = worldToCam_evalPT; + setState(state); + setStateZero(state); + }; + + + + inline void setEvalPT_scaled(const SE3 &worldToCam_evalPT, const AffLight &aff_g2l) + { + Vec10 initial_state = Vec10::Zero(); + initial_state[6] = aff_g2l.a; + initial_state[7] = aff_g2l.b; + this->worldToCam_evalPT = worldToCam_evalPT; + setStateScaled(initial_state); + setStateZero(this->get_state()); + }; + + void release(); + + inline ~FrameHessian() + { + assert(efFrame==0); + release(); instanceCounter--; + for(int i=0;i() = Vec3::Constant(setting_initialTransPrior); + p.segment<3>(3) = Vec3::Constant(setting_initialRotPrior); + if(setting_solverMode & SOLVER_REMOVE_POSEPRIOR) p.head<6>().setZero(); + + p[6] = setting_initialAffAPrior; + p[7] = setting_initialAffBPrior; + } + else + { + if(setting_affineOptModeA < 0) + p[6] = setting_initialAffAPrior; + else + p[6] = setting_affineOptModeA; + + if(setting_affineOptModeB < 0) + p[7] = setting_initialAffBPrior; + else + p[7] = setting_affineOptModeB; + } + p[8] = setting_initialAffAPrior; + p[9] = setting_initialAffBPrior; + return p; + } + + + inline Vec10 getPriorZero() + { + return Vec10::Zero(); + } + +}; + +struct CalibHessian +{ + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + static int instanceCounter; + + VecC value_zero; + VecC value_scaled; + VecCf value_scaledf; + VecCf value_scaledi; + VecC value; + VecC step; + VecC step_backup; + VecC value_backup; + VecC value_minus_value_zero; + + inline ~CalibHessian() {instanceCounter--;} + inline CalibHessian() + { + + VecC initial_value = VecC::Zero(); + initial_value[0] = fxG[0]; + initial_value[1] = fyG[0]; + initial_value[2] = cxG[0]; + initial_value[3] = cyG[0]; + + setValueScaled(initial_value); + value_zero = value; + value_minus_value_zero.setZero(); + + instanceCounter++; + for(int i=0;i<256;i++) + Binv[i] = B[i] = i; // set gamma function to identity + }; + + + // normal mode: use the optimized parameters everywhere! + inline float& fxl() {return value_scaledf[0];} + inline float& fyl() {return value_scaledf[1];} + inline float& cxl() {return value_scaledf[2];} + inline float& cyl() {return value_scaledf[3];} + inline float& fxli() {return value_scaledi[0];} + inline float& fyli() {return value_scaledi[1];} + inline float& cxli() {return value_scaledi[2];} + inline float& cyli() {return value_scaledi[3];} + + + + inline void setValue(const VecC &value) + { + // [0-3: Kl, 4-7: Kr, 8-12: l2r] + this->value = value; + value_scaled[0] = SCALE_F * value[0]; + value_scaled[1] = SCALE_F * value[1]; + value_scaled[2] = SCALE_C * value[2]; + value_scaled[3] = SCALE_C * value[3]; + + this->value_scaledf = this->value_scaled.cast(); + this->value_scaledi[0] = 1.0f / this->value_scaledf[0]; + this->value_scaledi[1] = 1.0f / this->value_scaledf[1]; + this->value_scaledi[2] = - this->value_scaledf[2] / this->value_scaledf[0]; + this->value_scaledi[3] = - this->value_scaledf[3] / this->value_scaledf[1]; + this->value_minus_value_zero = this->value - this->value_zero; + }; + + inline void setValueScaled(const VecC &value_scaled) + { + this->value_scaled = value_scaled; + this->value_scaledf = this->value_scaled.cast(); + value[0] = SCALE_F_INVERSE * value_scaled[0]; + value[1] = SCALE_F_INVERSE * value_scaled[1]; + value[2] = SCALE_C_INVERSE * value_scaled[2]; + value[3] = SCALE_C_INVERSE * value_scaled[3]; + + this->value_minus_value_zero = this->value - this->value_zero; + this->value_scaledi[0] = 1.0f / this->value_scaledf[0]; + this->value_scaledi[1] = 1.0f / this->value_scaledf[1]; + this->value_scaledi[2] = - this->value_scaledf[2] / this->value_scaledf[0]; + this->value_scaledi[3] = - this->value_scaledf[3] / this->value_scaledf[1]; + }; + + + float Binv[256]; + float B[256]; + + + EIGEN_STRONG_INLINE float getBGradOnly(float color) + { + int c = color+0.5f; + if(c<5) c=5; + if(c>250) c=250; + return B[c+1]-B[c]; + } + + EIGEN_STRONG_INLINE float getBInvGradOnly(float color) + { + int c = color+0.5f; + if(c<5) c=5; + if(c>250) c=250; + return Binv[c+1]-Binv[c]; + } +}; + + +// hessian component associated with one point. +struct PointHessian +{ + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + static int instanceCounter; + EFPoint* efPoint; + + // static values + float color[MAX_RES_PER_POINT]; // colors in host frame + float weights[MAX_RES_PER_POINT]; // host-weights for respective residuals. + + + + float u,v; + int idx; + float energyTH; + FrameHessian* host; + bool hasDepthPrior; + + float my_type; + + float idepth_scaled; + float idepth_zero_scaled; + float idepth_zero; + float idepth; + float step; + float step_backup; + float idepth_backup; + + float nullspaces_scale; + float idepth_hessian; + float maxRelBaseline; + int numGoodResiduals; + + enum PtStatus {ACTIVE=0, INACTIVE, OUTLIER, OOB, MARGINALIZED}; + PtStatus status; + + inline void setPointStatus(PtStatus s) {status=s;} + + + inline void setIdepth(float idepth) { + this->idepth = idepth; + this->idepth_scaled = SCALE_IDEPTH * idepth; + } + inline void setIdepthScaled(float idepth_scaled) { + this->idepth = SCALE_IDEPTH_INVERSE * idepth_scaled; + this->idepth_scaled = idepth_scaled; + } + inline void setIdepthZero(float idepth) { + idepth_zero = idepth; + idepth_zero_scaled = SCALE_IDEPTH * idepth; + nullspaces_scale = -(idepth*1.001 - idepth/1.001)*500; + } + + + std::vector residuals; // only contains good residuals (not OOB and not OUTLIER). Arbitrary order. + std::pair lastResiduals[2]; // contains information about residuals to the last two (!) frames. ([0] = latest, [1] = the one before). + + + void release(); + PointHessian(const ImmaturePoint* const rawPoint, CalibHessian* Hcalib); + inline ~PointHessian() {assert(efPoint==0); release(); instanceCounter--;} + + + inline bool isOOB(const std::vector& toKeep, const std::vector& toMarg) const + { + + int visInToMarg = 0; + for(PointFrameResidual* r : residuals) + { + if(r->state_state != ResState::IN) continue; + for(FrameHessian* k : toMarg) + if(r->target == k) visInToMarg++; + } + if((int)residuals.size() >= setting_minGoodActiveResForMarg && + numGoodResiduals > setting_minGoodResForMarg+10 && + (int)residuals.size()-visInToMarg < setting_minGoodActiveResForMarg) + return true; + + + + + + if(lastResiduals[0].second == ResState::OOB) return true; + if(residuals.size() < 2) return false; + if(lastResiduals[0].second == ResState::OUTLIER && lastResiduals[1].second == ResState::OUTLIER) return true; + return false; + } + + + inline bool isInlierNew() + { + return (int)residuals.size() >= setting_minGoodActiveResForMarg + && numGoodResiduals >= setting_minGoodResForMarg; + } + +}; + + + + + +} + diff --git a/src/FullSystem/ImmaturePoint.cpp b/src/FullSystem/ImmaturePoint.cpp new file mode 100644 index 0000000..c1bcdbb --- /dev/null +++ b/src/FullSystem/ImmaturePoint.cpp @@ -0,0 +1,547 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "FullSystem/ImmaturePoint.h" +#include "util/FrameShell.h" +#include "FullSystem/ResidualProjections.h" + +namespace dso +{ +ImmaturePoint::ImmaturePoint(int u_, int v_, FrameHessian* host_, float type, CalibHessian* HCalib) +: u(u_), v(v_), host(host_), my_type(type), idepth_min(0), idepth_max(NAN), lastTraceStatus(IPS_UNINITIALIZED) +{ + + gradH.setZero(); + + for(int idx=0;idxdI, u+dx, v+dy,wG[0]); + + + + color[idx] = ptc[0]; + if(!std::isfinite(color[idx])) {energyTH=NAN; return;} + + + gradH += ptc.tail<2>() * ptc.tail<2>().transpose(); + + weights[idx] = sqrtf(setting_outlierTHSumComponent / (setting_outlierTHSumComponent + ptc.tail<2>().squaredNorm())); + } + + energyTH = patternNum*setting_outlierTH; + energyTH *= setting_overallEnergyTHWeight*setting_overallEnergyTHWeight; + + idepth_GT=0; + quality=10000; +} + +ImmaturePoint::~ImmaturePoint() +{ +} + + + +/* + * returns + * * OOB -> point is optimized and marginalized + * * UPDATED -> point has been updated. + * * SKIP -> point has not been updated. + */ +ImmaturePointStatus ImmaturePoint::traceOn(FrameHessian* frame,const Mat33f &hostToFrame_KRKi, const Vec3f &hostToFrame_Kt, const Vec2f& hostToFrame_affine, CalibHessian* HCalib, bool debugPrint) +{ + if(lastTraceStatus == ImmaturePointStatus::IPS_OOB) return lastTraceStatus; + + + debugPrint = false;//rand()%100==0; + float maxPixSearch = (wG[0]+hG[0])*setting_maxPixSearch; + + if(debugPrint) + printf("trace pt (%.1f %.1f) from frame %d to %d. Range %f -> %f. t %f %f %f!\n", + u,v, + host->shell->id, frame->shell->id, + idepth_min, idepth_max, + hostToFrame_Kt[0],hostToFrame_Kt[1],hostToFrame_Kt[2]); + +// const float stepsize = 1.0; // stepsize for initial discrete search. +// const int GNIterations = 3; // max # GN iterations +// const float GNThreshold = 0.1; // GN stop after this stepsize. +// const float extraSlackOnTH = 1.2; // for energy-based outlier check, be slightly more relaxed by this factor. +// const float slackInterval = 0.8; // if pixel-interval is smaller than this, leave it be. +// const float minImprovementFactor = 2; // if pixel-interval is smaller than this, leave it be. + // ============== project min and max. return if one of them is OOB =================== + Vec3f pr = hostToFrame_KRKi * Vec3f(u,v, 1); + Vec3f ptpMin = pr + hostToFrame_Kt*idepth_min; + float uMin = ptpMin[0] / ptpMin[2]; + float vMin = ptpMin[1] / ptpMin[2]; + + if(!(uMin > 4 && vMin > 4 && uMin < wG[0]-5 && vMin < hG[0]-5)) + { + if(debugPrint) printf("OOB uMin %f %f - %f %f %f (id %f-%f)!\n", + u,v,uMin, vMin, ptpMin[2], idepth_min, idepth_max); + lastTraceUV = Vec2f(-1,-1); + lastTracePixelInterval=0; + return lastTraceStatus = ImmaturePointStatus::IPS_OOB; + } + + float dist; + float uMax; + float vMax; + Vec3f ptpMax; + if(std::isfinite(idepth_max)) + { + ptpMax = pr + hostToFrame_Kt*idepth_max; + uMax = ptpMax[0] / ptpMax[2]; + vMax = ptpMax[1] / ptpMax[2]; + + + if(!(uMax > 4 && vMax > 4 && uMax < wG[0]-5 && vMax < hG[0]-5)) + { + if(debugPrint) printf("OOB uMax %f %f - %f %f!\n",u,v, uMax, vMax); + lastTraceUV = Vec2f(-1,-1); + lastTracePixelInterval=0; + return lastTraceStatus = ImmaturePointStatus::IPS_OOB; + } + + + + // ============== check their distance. everything below 2px is OK (-> skip). =================== + dist = (uMin-uMax)*(uMin-uMax) + (vMin-vMax)*(vMin-vMax); + dist = sqrtf(dist); + if(dist < setting_trace_slackInterval) + { + if(debugPrint) + printf("TOO CERTAIN ALREADY (dist %f)!\n", dist); + + lastTraceUV = Vec2f(uMax+uMin, vMax+vMin)*0.5; + lastTracePixelInterval=dist; + return lastTraceStatus = ImmaturePointStatus::IPS_SKIPPED; + } + assert(dist>0); + } + else + { + dist = maxPixSearch; + + // project to arbitrary depth to get direction. + ptpMax = pr + hostToFrame_Kt*0.01; + uMax = ptpMax[0] / ptpMax[2]; + vMax = ptpMax[1] / ptpMax[2]; + + // direction. + float dx = uMax-uMin; + float dy = vMax-vMin; + float d = 1.0f / sqrtf(dx*dx+dy*dy); + + // set to [setting_maxPixSearch]. + uMax = uMin + dist*dx*d; + vMax = vMin + dist*dy*d; + + // may still be out! + if(!(uMax > 4 && vMax > 4 && uMax < wG[0]-5 && vMax < hG[0]-5)) + { + if(debugPrint) printf("OOB uMax-coarse %f %f %f!\n", uMax, vMax, ptpMax[2]); + lastTraceUV = Vec2f(-1,-1); + lastTracePixelInterval=0; + return lastTraceStatus = ImmaturePointStatus::IPS_OOB; + } + assert(dist>0); + } + + + // set OOB if scale change too big. + if(!(idepth_min<0 || (ptpMin[2]>0.75 && ptpMin[2]<1.5))) + { + if(debugPrint) printf("OOB SCALE %f %f %f!\n", uMax, vMax, ptpMin[2]); + lastTraceUV = Vec2f(-1,-1); + lastTracePixelInterval=0; + return lastTraceStatus = ImmaturePointStatus::IPS_OOB; + } + + + // ============== compute error-bounds on result in pixel. if the new interval is not at least 1/2 of the old, SKIP =================== + float dx = setting_trace_stepsize*(uMax-uMin); + float dy = setting_trace_stepsize*(vMax-vMin); + + float a = (Vec2f(dx,dy).transpose() * gradH * Vec2f(dx,dy)); + float b = (Vec2f(dy,-dx).transpose() * gradH * Vec2f(dy,-dx)); + float errorInPixel = 0.2f + 0.2f * (a+b) / a; + + if(errorInPixel*setting_trace_minImprovementFactor > dist && std::isfinite(idepth_max)) + { + if(debugPrint) + printf("NO SIGNIFICANT IMPROVMENT (%f)!\n", errorInPixel); + lastTraceUV = Vec2f(uMax+uMin, vMax+vMin)*0.5; + lastTracePixelInterval=dist; + return lastTraceStatus = ImmaturePointStatus::IPS_BADCONDITION; + } + + if(errorInPixel >10) errorInPixel=10; + + + + // ============== do the discrete search =================== + dx /= dist; + dy /= dist; + + if(debugPrint) + printf("trace pt (%.1f %.1f) from frame %d to %d. Range %f (%.1f %.1f) -> %f (%.1f %.1f)! ErrorInPixel %.1f!\n", + u,v, + host->shell->id, frame->shell->id, + idepth_min, uMin, vMin, + idepth_max, uMax, vMax, + errorInPixel + ); + + + if(dist>maxPixSearch) + { + uMax = uMin + maxPixSearch*dx; + vMax = vMin + maxPixSearch*dy; + dist = maxPixSearch; + } + + int numSteps = 1.9999f + dist / setting_trace_stepsize; + Mat22f Rplane = hostToFrame_KRKi.topLeftCorner<2,2>(); + + float randShift = uMin*1000-floorf(uMin*1000); + float ptx = uMin-randShift*dx; + float pty = vMin-randShift*dy; + + + Vec2f rotatetPattern[MAX_RES_PER_POINT]; + for(int idx=0;idx= 100) numSteps = 99; + + for(int i=0;idI, + (float)(ptx+rotatetPattern[idx][0]), + (float)(pty+rotatetPattern[idx][1]), + wG[0]); + + if(!std::isfinite(hitColor)) {energy+=1e5; continue;} + float residual = hitColor - (float)(hostToFrame_affine[0] * color[idx] + hostToFrame_affine[1]); + float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); + energy += hw *residual*residual*(2-hw); + } + + if(debugPrint) + printf("step %.1f %.1f (id %f): energy = %f!\n", + ptx, pty, 0.0f, energy); + + + errors[i] = energy; + if(energy < bestEnergy) + { + bestU = ptx; bestV = pty; bestEnergy = energy; bestIdx = i; + } + + ptx+=dx; + pty+=dy; + } + + + // find best score outside a +-2px radius. + float secondBest=1e10; + for(int i=0;i bestIdx+setting_minTraceTestRadius) && errors[i] < secondBest) + secondBest = errors[i]; + } + float newQuality = secondBest / bestEnergy; + if(newQuality < quality || numSteps > 10) quality = newQuality; + + + // ============== do GN optimization =================== + float uBak=bestU, vBak=bestV, gnstepsize=1, stepBack=0; + if(setting_trace_GNIterations>0) bestEnergy = 1e5; + int gnStepsGood=0, gnStepsBad=0; + for(int it=0;itdI, + (float)(bestU+rotatetPattern[idx][0]), + (float)(bestV+rotatetPattern[idx][1]),wG[0]); + + if(!std::isfinite((float)hitColor[0])) {energy+=1e5; continue;} + float residual = hitColor[0] - (hostToFrame_affine[0] * color[idx] + hostToFrame_affine[1]); + float dResdDist = dx*hitColor[1] + dy*hitColor[2]; + float hw = fabs(residual) < setting_huberTH ? 1 : setting_huberTH / fabs(residual); + + H += hw*dResdDist*dResdDist; + b += hw*residual*dResdDist; + energy += weights[idx]*weights[idx]*hw *residual*residual*(2-hw); + } + + + if(energy > bestEnergy) + { + gnStepsBad++; + + // do a smaller step from old point. + stepBack*=0.5; + bestU = uBak + stepBack*dx; + bestV = vBak + stepBack*dy; + if(debugPrint) + printf("GN BACK %d: E %f, H %f, b %f. id-step %f. UV %f %f -> %f %f.\n", + it, energy, H, b, stepBack, + uBak, vBak, bestU, bestV); + } + else + { + gnStepsGood++; + + float step = -gnstepsize*b/H; + if(step < -0.5) step = -0.5; + else if(step > 0.5) step=0.5; + + if(!std::isfinite(step)) step=0; + + uBak=bestU; + vBak=bestV; + stepBack=step; + + bestU += step*dx; + bestV += step*dy; + bestEnergy = energy; + + if(debugPrint) + printf("GN step %d: E %f, H %f, b %f. id-step %f. UV %f %f -> %f %f.\n", + it, energy, H, b, step, + uBak, vBak, bestU, bestV); + } + + if(fabsf(stepBack) < setting_trace_GNThreshold) break; + } + + + // ============== detect energy-based outlier. =================== +// float absGrad0 = getInterpolatedElement(frame->absSquaredGrad[0],bestU, bestV, wG[0]); +// float absGrad1 = getInterpolatedElement(frame->absSquaredGrad[1],bestU*0.5-0.25, bestV*0.5-0.25, wG[1]); +// float absGrad2 = getInterpolatedElement(frame->absSquaredGrad[2],bestU*0.25-0.375, bestV*0.25-0.375, wG[2]); + if(!(bestEnergy < energyTH*setting_trace_extraSlackOnTH)) +// || (absGrad0*areaGradientSlackFactor < host->frameGradTH +// && absGrad1*areaGradientSlackFactor < host->frameGradTH*0.75f +// && absGrad2*areaGradientSlackFactor < host->frameGradTH*0.50f)) + { + if(debugPrint) + printf("OUTLIER!\n"); + + lastTracePixelInterval=0; + lastTraceUV = Vec2f(-1,-1); + if(lastTraceStatus == ImmaturePointStatus::IPS_OUTLIER) + return lastTraceStatus = ImmaturePointStatus::IPS_OOB; + else + return lastTraceStatus = ImmaturePointStatus::IPS_OUTLIER; + } + + + // ============== set new interval =================== + if(dx*dx>dy*dy) + { + idepth_min = (pr[2]*(bestU-errorInPixel*dx) - pr[0]) / (hostToFrame_Kt[0] - hostToFrame_Kt[2]*(bestU-errorInPixel*dx)); + idepth_max = (pr[2]*(bestU+errorInPixel*dx) - pr[0]) / (hostToFrame_Kt[0] - hostToFrame_Kt[2]*(bestU+errorInPixel*dx)); + } + else + { + idepth_min = (pr[2]*(bestV-errorInPixel*dy) - pr[1]) / (hostToFrame_Kt[1] - hostToFrame_Kt[2]*(bestV-errorInPixel*dy)); + idepth_max = (pr[2]*(bestV+errorInPixel*dy) - pr[1]) / (hostToFrame_Kt[1] - hostToFrame_Kt[2]*(bestV+errorInPixel*dy)); + } + if(idepth_min > idepth_max) std::swap(idepth_min, idepth_max); + + + if(!std::isfinite(idepth_min) || !std::isfinite(idepth_max) || (idepth_max<0)) + { + //printf("COUGHT INF / NAN minmax depth (%f %f)!\n", idepth_min, idepth_max); + + lastTracePixelInterval=0; + lastTraceUV = Vec2f(-1,-1); + return lastTraceStatus = ImmaturePointStatus::IPS_OUTLIER; + } + + lastTracePixelInterval=2*errorInPixel; + lastTraceUV = Vec2f(bestU, bestV); + return lastTraceStatus = ImmaturePointStatus::IPS_GOOD; +} + + +float ImmaturePoint::getdPixdd( + CalibHessian * HCalib, + ImmaturePointTemporaryResidual* tmpRes, + float idepth) +{ + FrameFramePrecalc* precalc = &(host->targetPrecalc[tmpRes->target->idx]); + const Vec3f &PRE_tTll = precalc->PRE_tTll; + float drescale, u=0, v=0, new_idepth; + float Ku, Kv; + Vec3f KliP; + + projectPoint(this->u,this->v, idepth, 0, 0,HCalib, + precalc->PRE_RTll,PRE_tTll, drescale, u, v, Ku, Kv, KliP, new_idepth); + + float dxdd = (PRE_tTll[0]-PRE_tTll[2]*u)*HCalib->fxl(); + float dydd = (PRE_tTll[1]-PRE_tTll[2]*v)*HCalib->fyl(); + return drescale*sqrtf(dxdd*dxdd + dydd*dydd); +} + + +float ImmaturePoint::calcResidual( + CalibHessian * HCalib, const float outlierTHSlack, + ImmaturePointTemporaryResidual* tmpRes, + float idepth) +{ + FrameFramePrecalc* precalc = &(host->targetPrecalc[tmpRes->target->idx]); + + float energyLeft=0; + const Eigen::Vector3f* dIl = tmpRes->target->dI; + const Mat33f &PRE_KRKiTll = precalc->PRE_KRKiTll; + const Vec3f &PRE_KtTll = precalc->PRE_KtTll; + Vec2f affLL = precalc->PRE_aff_mode; + + for(int idx=0;idxu+patternP[idx][0], this->v+patternP[idx][1], idepth, PRE_KRKiTll, PRE_KtTll, Ku, Kv)) + {return 1e10;} + + Vec3f hitColor = (getInterpolatedElement33(dIl, Ku, Kv, wG[0])); + if(!std::isfinite((float)hitColor[0])) {return 1e10;} + //if(benchmarkSpecialOption==5) hitColor = (getInterpolatedElement13BiCub(tmpRes->target->I, Ku, Kv, wG[0])); + + float residual = hitColor[0] - (affLL[0] * color[idx] + affLL[1]); + + float hw = fabsf(residual) < setting_huberTH ? 1 : setting_huberTH / fabsf(residual); + energyLeft += weights[idx]*weights[idx]*hw *residual*residual*(2-hw); + } + + if(energyLeft > energyTH*outlierTHSlack) + { + energyLeft = energyTH*outlierTHSlack; + } + return energyLeft; +} + + + + +double ImmaturePoint::linearizeResidual( + CalibHessian * HCalib, const float outlierTHSlack, + ImmaturePointTemporaryResidual* tmpRes, + float &Hdd, float &bd, + float idepth) +{ + if(tmpRes->state_state == ResState::OOB) + { tmpRes->state_NewState = ResState::OOB; return tmpRes->state_energy; } + + FrameFramePrecalc* precalc = &(host->targetPrecalc[tmpRes->target->idx]); + + // check OOB due to scale angle change. + + float energyLeft=0; + const Eigen::Vector3f* dIl = tmpRes->target->dI; + const Mat33f &PRE_RTll = precalc->PRE_RTll; + const Vec3f &PRE_tTll = precalc->PRE_tTll; + //const float * const Il = tmpRes->target->I; + + Vec2f affLL = precalc->PRE_aff_mode; + + for(int idx=0;idxu,this->v, idepth, dx, dy,HCalib, + PRE_RTll,PRE_tTll, drescale, u, v, Ku, Kv, KliP, new_idepth)) + {tmpRes->state_NewState = ResState::OOB; return tmpRes->state_energy;} + + + Vec3f hitColor = (getInterpolatedElement33(dIl, Ku, Kv, wG[0])); + + if(!std::isfinite((float)hitColor[0])) {tmpRes->state_NewState = ResState::OOB; return tmpRes->state_energy;} + float residual = hitColor[0] - (affLL[0] * color[idx] + affLL[1]); + + float hw = fabsf(residual) < setting_huberTH ? 1 : setting_huberTH / fabsf(residual); + energyLeft += weights[idx]*weights[idx]*hw *residual*residual*(2-hw); + + // depth derivatives. + float dxInterp = hitColor[1]*HCalib->fxl(); + float dyInterp = hitColor[2]*HCalib->fyl(); + float d_idepth = derive_idepth(PRE_tTll, u, v, dx, dy, dxInterp, dyInterp, drescale); + + hw *= weights[idx]*weights[idx]; + + Hdd += (hw*d_idepth)*d_idepth; + bd += (hw*residual)*d_idepth; + } + + + if(energyLeft > energyTH*outlierTHSlack) + { + energyLeft = energyTH*outlierTHSlack; + tmpRes->state_NewState = ResState::OUTLIER; + } + else + { + tmpRes->state_NewState = ResState::IN; + } + + tmpRes->state_NewEnergy = energyLeft; + return energyLeft; +} + + + +} diff --git a/src/FullSystem/ImmaturePoint.h b/src/FullSystem/ImmaturePoint.h new file mode 100644 index 0000000..cc93ec4 --- /dev/null +++ b/src/FullSystem/ImmaturePoint.h @@ -0,0 +1,111 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" + +#include "FullSystem/HessianBlocks.h" +namespace dso +{ + + +struct ImmaturePointTemporaryResidual +{ +public: + ResState state_state; + double state_energy; + ResState state_NewState; + double state_NewEnergy; + FrameHessian* target; +}; + + +enum ImmaturePointStatus { + IPS_GOOD=0, // traced well and good + IPS_OOB, // OOB: end tracking & marginalize! + IPS_OUTLIER, // energy too high: if happens again: outlier! + IPS_SKIPPED, // traced well and good (but not actually traced). + IPS_BADCONDITION, // not traced because of bad condition. + IPS_UNINITIALIZED}; // not even traced once. + + +class ImmaturePoint +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + // static values + float color[MAX_RES_PER_POINT]; + float weights[MAX_RES_PER_POINT]; + + + + + + Mat22f gradH; + Vec2f gradH_ev; + Mat22f gradH_eig; + float energyTH; + float u,v; + FrameHessian* host; + int idxInImmaturePoints; + + float quality; + + float my_type; + + float idepth_min; + float idepth_max; + ImmaturePoint(int u_, int v_, FrameHessian* host_, float type, CalibHessian* HCalib); + ~ImmaturePoint(); + + ImmaturePointStatus traceOn(FrameHessian* frame, const Mat33f &hostToFrame_KRKi, const Vec3f &hostToFrame_Kt, const Vec2f &hostToFrame_affine, CalibHessian* HCalib, bool debugPrint=false); + + ImmaturePointStatus lastTraceStatus; + Vec2f lastTraceUV; + float lastTracePixelInterval; + + float idepth_GT; + + double linearizeResidual( + CalibHessian * HCalib, const float outlierTHSlack, + ImmaturePointTemporaryResidual* tmpRes, + float &Hdd, float &bd, + float idepth); + float getdPixdd( + CalibHessian * HCalib, + ImmaturePointTemporaryResidual* tmpRes, + float idepth); + + float calcResidual( + CalibHessian * HCalib, const float outlierTHSlack, + ImmaturePointTemporaryResidual* tmpRes, + float idepth); + +private: +}; + +} + diff --git a/src/FullSystem/PixelSelector.h b/src/FullSystem/PixelSelector.h new file mode 100644 index 0000000..3a00fa1 --- /dev/null +++ b/src/FullSystem/PixelSelector.h @@ -0,0 +1,256 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" + + + + +namespace dso +{ + + +const float minUseGrad_pixsel = 10; + + +template +inline int gridMaxSelection(Eigen::Vector3f* grads, bool* map_out, int w, int h, float THFac) +{ + + memset(map_out, 0, sizeof(bool)*w*h); + + int numGood = 0; + for(int y=1;y().squaredNorm(); + float TH = THFac*minUseGrad_pixsel * (0.75f); + + if(sqgd > TH*TH) + { + float agx = fabs((float)g[1]); + if(agx > bestXX) {bestXX=agx; bestXXID=idx;} + + float agy = fabs((float)g[2]); + if(agy > bestYY) {bestYY=agy; bestYYID=idx;} + + float gxpy = fabs((float)(g[1]-g[2])); + if(gxpy > bestXY) {bestXY=gxpy; bestXYID=idx;} + + float gxmy = fabs((float)(g[1]+g[2])); + if(gxmy > bestYX) {bestYX=gxmy; bestYXID=idx;} + } + } + + bool* map0 = map_out+x+y*w; + + if(bestXXID>=0) + { + if(!map0[bestXXID]) + numGood++; + map0[bestXXID] = true; + + } + if(bestYYID>=0) + { + if(!map0[bestYYID]) + numGood++; + map0[bestYYID] = true; + + } + if(bestXYID>=0) + { + if(!map0[bestXYID]) + numGood++; + map0[bestXYID] = true; + + } + if(bestYXID>=0) + { + if(!map0[bestYXID]) + numGood++; + map0[bestYXID] = true; + + } + } + } + + return numGood; +} + + +inline int gridMaxSelection(Eigen::Vector3f* grads, bool* map_out, int w, int h, int pot, float THFac) +{ + + memset(map_out, 0, sizeof(bool)*w*h); + + int numGood = 0; + for(int y=1;y().squaredNorm(); + float TH = THFac*minUseGrad_pixsel * (0.75f); + + if(sqgd > TH*TH) + { + float agx = fabs((float)g[1]); + if(agx > bestXX) {bestXX=agx; bestXXID=idx;} + + float agy = fabs((float)g[2]); + if(agy > bestYY) {bestYY=agy; bestYYID=idx;} + + float gxpy = fabs((float)(g[1]-g[2])); + if(gxpy > bestXY) {bestXY=gxpy; bestXYID=idx;} + + float gxmy = fabs((float)(g[1]+g[2])); + if(gxmy > bestYX) {bestYX=gxmy; bestYXID=idx;} + } + } + + bool* map0 = map_out+x+y*w; + + if(bestXXID>=0) + { + if(!map0[bestXXID]) + numGood++; + map0[bestXXID] = true; + + } + if(bestYYID>=0) + { + if(!map0[bestYYID]) + numGood++; + map0[bestYYID] = true; + + } + if(bestXYID>=0) + { + if(!map0[bestXYID]) + numGood++; + map0[bestXYID] = true; + + } + if(bestYXID>=0) + { + if(!map0[bestYXID]) + numGood++; + map0[bestYXID] = true; + + } + } + } + + return numGood; +} + + +inline int makePixelStatus(Eigen::Vector3f* grads, bool* map, int w, int h, float desiredDensity, int recsLeft=5, float THFac = 1) +{ + if(sparsityFactor < 1) sparsityFactor = 1; + + int numGoodPoints; + + + if(sparsityFactor==1) numGoodPoints = gridMaxSelection<1>(grads, map, w, h, THFac); + else if(sparsityFactor==2) numGoodPoints = gridMaxSelection<2>(grads, map, w, h, THFac); + else if(sparsityFactor==3) numGoodPoints = gridMaxSelection<3>(grads, map, w, h, THFac); + else if(sparsityFactor==4) numGoodPoints = gridMaxSelection<4>(grads, map, w, h, THFac); + else if(sparsityFactor==5) numGoodPoints = gridMaxSelection<5>(grads, map, w, h, THFac); + else if(sparsityFactor==6) numGoodPoints = gridMaxSelection<6>(grads, map, w, h, THFac); + else if(sparsityFactor==7) numGoodPoints = gridMaxSelection<7>(grads, map, w, h, THFac); + else if(sparsityFactor==8) numGoodPoints = gridMaxSelection<8>(grads, map, w, h, THFac); + else if(sparsityFactor==9) numGoodPoints = gridMaxSelection<9>(grads, map, w, h, THFac); + else if(sparsityFactor==10) numGoodPoints = gridMaxSelection<10>(grads, map, w, h, THFac); + else if(sparsityFactor==11) numGoodPoints = gridMaxSelection<11>(grads, map, w, h, THFac); + else numGoodPoints = gridMaxSelection(grads, map, w, h, sparsityFactor, THFac); + + + /* + * #points is approximately proportional to sparsityFactor^2. + */ + + float quotia = numGoodPoints / (float)(desiredDensity); + + int newSparsity = (sparsityFactor * sqrtf(quotia))+0.7f; + + + if(newSparsity < 1) newSparsity=1; + + + float oldTHFac = THFac; + if(newSparsity==1 && sparsityFactor==1) THFac = 0.5; + + + if((abs(newSparsity-sparsityFactor) < 1 && THFac==oldTHFac) || + ( quotia > 0.8 && 1.0f / quotia > 0.8) || + recsLeft == 0) + { + +// printf(" \n"); + //all good + sparsityFactor = newSparsity; + return numGoodPoints; + } + else + { +// printf(" -> re-evaluate! \n"); + // re-evaluate. + sparsityFactor = newSparsity; + return makePixelStatus(grads, map, w,h, desiredDensity, recsLeft-1, THFac); + } +} + +} + diff --git a/src/FullSystem/PixelSelector2.cpp b/src/FullSystem/PixelSelector2.cpp new file mode 100644 index 0000000..5e2242e --- /dev/null +++ b/src/FullSystem/PixelSelector2.cpp @@ -0,0 +1,442 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#include "FullSystem/PixelSelector2.h" + +// + + + +#include "util/NumType.h" +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" +#include "FullSystem/HessianBlocks.h" +#include "util/globalFuncs.h" + +namespace dso +{ + + +PixelSelector::PixelSelector(int w, int h) +{ + randomPattern = new unsigned char[w*h]; + std::srand(3141592); // want to be deterministic. + for(int i=0;iabsSquaredGrad[0]; + + int w = wG[0]; + int h = hG[0]; + + int w32 = w/32; + int h32 = h/32; + thsStep = w32; + + for(int y=0;yw-2 || jt>h-2 || it<1 || jt<1) continue; + int g = sqrtf(map0[i+j*w]); + if(g>48) g=48; + hist0[g+1]++; + hist0[0]++; + } + + ths[x+y*w32] = computeHistQuantil(hist0,setting_minGradHistCut) + setting_minGradHistAdd; + } + + for(int y=0;y0) + { + if(y>0) {num++; sum+=ths[x-1+(y-1)*w32];} + if(y0) {num++; sum+=ths[x+1+(y-1)*w32];} + if(y0) {num++; sum+=ths[x+(y-1)*w32];} + if(y0 && allowFast) +// { +// memset(map_out, 0, sizeof(float)*wG[0]*hG[0]); +// std::vector pts; +// cv::Mat img8u(hG[0],wG[0],CV_8U); +// for(int i=0;idI[i][0]*0.8; +// img8u.at(i) = (!std::isfinite(v) || v>255) ? 255 : v; +// } +// cv::FAST(img8u, pts, setting_pixelSelectionUseFast, true); +// for(unsigned int i=0;iselect(fh, map_out,currentPotential, thFactor); + + // sub-select! + numHave = n[0]+n[1]+n[2]; + quotia = numWant / numHave; + + // by default we want to over-sample by 40% just to be sure. + float K = numHave * (currentPotential+1) * (currentPotential+1); + idealPotential = sqrtf(K/numWant)-1; // round down. + if(idealPotential<1) idealPotential=1; + + if( recursionsLeft>0 && quotia > 1.25 && currentPotential>1) + { + //re-sample to get more points! + // potential needs to be smaller + if(idealPotential>=currentPotential) + idealPotential = currentPotential-1; + + // printf("PixelSelector: have %.2f%%, need %.2f%%. RESAMPLE with pot %d -> %d.\n", + // 100*numHave/(float)(wG[0]*hG[0]), + // 100*numWant/(float)(wG[0]*hG[0]), + // currentPotential, + // idealPotential); + currentPotential = idealPotential; + return makeMaps(fh,map_out, density, recursionsLeft-1, plot,thFactor); + } + else if(recursionsLeft>0 && quotia < 0.25) + { + // re-sample to get less points! + + if(idealPotential<=currentPotential) + idealPotential = currentPotential+1; + + // printf("PixelSelector: have %.2f%%, need %.2f%%. RESAMPLE with pot %d -> %d.\n", + // 100*numHave/(float)(wG[0]*hG[0]), + // 100*numWant/(float)(wG[0]*hG[0]), + // currentPotential, + // idealPotential); + currentPotential = idealPotential; + return makeMaps(fh,map_out, density, recursionsLeft-1, plot,thFactor); + + } + } + + int numHaveSub = numHave; + if(quotia < 0.95) + { + int wh=wG[0]*hG[0]; + int rn=0; + unsigned char charTH = 255*quotia; + for(int i=0;i charTH ) + { + map_out[i]=0; + numHaveSub--; + } + rn++; + } + } + } + +// printf("PixelSelector: have %.2f%%, need %.2f%%. KEEPCURR with pot %d -> %d. Subsampled to %.2f%%\n", +// 100*numHave/(float)(wG[0]*hG[0]), +// 100*numWant/(float)(wG[0]*hG[0]), +// currentPotential, +// idealPotential, +// 100*numHaveSub/(float)(wG[0]*hG[0])); + currentPotential = idealPotential; + + + if(plot) + { + int w = wG[0]; + int h = hG[0]; + + + MinimalImageB3 img(w,h); + + for(int i=0;idI[i][0]*0.7; + if(c>255) c=255; + img.at(i) = Vec3b(c,c,c); + } + IOWrap::displayImage("Selector Image", &img); + + for(int y=0; ydI; + + float * mapmax0 = fh->absSquaredGrad[0]; + float * mapmax1 = fh->absSquaredGrad[1]; + float * mapmax2 = fh->absSquaredGrad[2]; + + + int w = wG[0]; + int w1 = wG[1]; + int w2 = wG[2]; + int h = hG[0]; + + + const Vec2f directions[16] = { + Vec2f(0, 1.0000), + Vec2f(0.3827, 0.9239), + Vec2f(0.1951, 0.9808), + Vec2f(0.9239, 0.3827), + Vec2f(0.7071, 0.7071), + Vec2f(0.3827, -0.9239), + Vec2f(0.8315, 0.5556), + Vec2f(0.8315, -0.5556), + Vec2f(0.5556, -0.8315), + Vec2f(0.9808, 0.1951), + Vec2f(0.9239, -0.3827), + Vec2f(0.7071, -0.7071), + Vec2f(0.5556, 0.8315), + Vec2f(0.9808, -0.1951), + Vec2f(1.0000, 0.0000), + Vec2f(0.1951, -0.9808)}; + + memset(map_out,0,w*h*sizeof(PixelSelectorStatus)); + + + + float dw1 = setting_gradDownweightPerLevel; + float dw2 = dw1*dw1; + + + int n3=0, n2=0, n4=0; + for(int y4=0;y4=w-5 || yf<4 || yf>h-4) continue; + + + float pixelTH0 = thsSmoothed[(xf>>5) + (yf>>5) * thsStep]; + float pixelTH1 = pixelTH0*dw1; + float pixelTH2 = pixelTH1*dw2; + + + float ag0 = mapmax0[idx]; + if(ag0 > pixelTH0*thFactor) + { + Vec2f ag0d = map0[idx].tail<2>(); + float dirNorm = fabsf((float)(ag0d.dot(dir2))); + if(!setting_selectDirectionDistribution) dirNorm = ag0; + + if(dirNorm > bestVal2) + { bestVal2 = dirNorm; bestIdx2 = idx; bestIdx3 = -2; bestIdx4 = -2;} + } + if(bestIdx3==-2) continue; + + float ag1 = mapmax1[(int)(xf*0.5f+0.25f) + (int)(yf*0.5f+0.25f)*w1]; + if(ag1 > pixelTH1*thFactor) + { + Vec2f ag0d = map0[idx].tail<2>(); + float dirNorm = fabsf((float)(ag0d.dot(dir3))); + if(!setting_selectDirectionDistribution) dirNorm = ag1; + + if(dirNorm > bestVal3) + { bestVal3 = dirNorm; bestIdx3 = idx; bestIdx4 = -2;} + } + if(bestIdx4==-2) continue; + + float ag2 = mapmax2[(int)(xf*0.25f+0.125) + (int)(yf*0.25f+0.125)*w2]; + if(ag2 > pixelTH2*thFactor) + { + Vec2f ag0d = map0[idx].tail<2>(); + float dirNorm = fabsf((float)(ag0d.dot(dir4))); + if(!setting_selectDirectionDistribution) dirNorm = ag2; + + if(dirNorm > bestVal4) + { bestVal4 = dirNorm; bestIdx4 = idx; } + } + } + + if(bestIdx2>0) + { + map_out[bestIdx2] = 1; + bestVal3 = 1e10; + n2++; + } + } + + if(bestIdx3>0) + { + map_out[bestIdx3] = 2; + bestVal4 = 1e10; + n3++; + } + } + + if(bestIdx4>0) + { + map_out[bestIdx4] = 4; + n4++; + } + } + + + return Eigen::Vector3i(n2,n3,n4); +} + + +} + diff --git a/src/FullSystem/PixelSelector2.h b/src/FullSystem/PixelSelector2.h new file mode 100644 index 0000000..2d06e95 --- /dev/null +++ b/src/FullSystem/PixelSelector2.h @@ -0,0 +1,72 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/NumType.h" + +namespace dso +{ + +enum PixelSelectorStatus {PIXSEL_VOID=0, PIXSEL_1, PIXSEL_2, PIXSEL_3}; + + +class FrameHessian; + +class PixelSelector +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + int makeMaps( + const FrameHessian* const fh, + float* map_out, float density, int recursionsLeft=1, bool plot=false, float thFactor=1); + + PixelSelector(int w, int h); + ~PixelSelector(); + int currentPotential; + + + bool allowFast; + void makeHists(const FrameHessian* const fh); +private: + + Eigen::Vector3i select(const FrameHessian* const fh, + float* map_out, int pot, float thFactor=1); + + + unsigned char* randomPattern; + + + int* gradHist; + float* ths; + float* thsSmoothed; + int thsStep; + const FrameHessian* gradHistFrame; +}; + + + + +} + diff --git a/src/FullSystem/ResidualProjections.h b/src/FullSystem/ResidualProjections.h new file mode 100644 index 0000000..1944845 --- /dev/null +++ b/src/FullSystem/ResidualProjections.h @@ -0,0 +1,93 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/NumType.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/HessianBlocks.h" +#include "util/settings.h" + +namespace dso +{ + + +EIGEN_STRONG_INLINE float derive_idepth( + const Vec3f &t, const float &u, const float &v, + const int &dx, const int &dy, const float &dxInterp, + const float &dyInterp, const float &drescale) +{ + return (dxInterp*drescale * (t[0]-t[2]*u) + + dyInterp*drescale * (t[1]-t[2]*v))*SCALE_IDEPTH; +} + + + +EIGEN_STRONG_INLINE bool projectPoint( + const float &u_pt,const float &v_pt, + const float &idepth, + const Mat33f &KRKi, const Vec3f &Kt, + float &Ku, float &Kv) +{ + Vec3f ptp = KRKi * Vec3f(u_pt,v_pt, 1) + Kt*idepth; + Ku = ptp[0] / ptp[2]; + Kv = ptp[1] / ptp[2]; + return Ku>1.1f && Kv>1.1f && Kucxl())*HCalib->fxli(), + (v_pt+dy-HCalib->cyl())*HCalib->fyli(), + 1); + + Vec3f ptp = R * KliP + t*idepth; + drescale = 1.0f/ptp[2]; + new_idepth = idepth*drescale; + + if(!(drescale>0)) return false; + + u = ptp[0] * drescale; + v = ptp[1] * drescale; + Ku = u*HCalib->fxl() + HCalib->cxl(); + Kv = v*HCalib->fyl() + HCalib->cyl(); + + return Ku>1.1f && Kv>1.1f && Ku, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/* + * KFBuffer.cpp + * + * Created on: Jan 7, 2014 + * Author: engelj + */ + +#include "FullSystem/FullSystem.h" + +#include "stdio.h" +#include "util/globalFuncs.h" +#include +#include +#include "IOWrapper/ImageDisplay.h" +#include "util/globalCalib.h" +#include +#include + +#include "FullSystem/ResidualProjections.h" +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +#include "FullSystem/HessianBlocks.h" + +namespace dso +{ +int PointFrameResidual::instanceCounter = 0; + + +long runningResID=0; + + +PointFrameResidual::PointFrameResidual(){assert(false); instanceCounter++;} + +PointFrameResidual::~PointFrameResidual(){assert(efResidual==0); instanceCounter--; delete J;} + +PointFrameResidual::PointFrameResidual(PointHessian* point_, FrameHessian* host_, FrameHessian* target_) : + point(point_), + host(host_), + target(target_) +{ + efResidual=0; + instanceCounter++; + resetOOB(); + J = new RawResidualJacobian(); + assert(((long)J)%16==0); + + isNew=true; +} + + + + +double PointFrameResidual::linearize(CalibHessian* HCalib) +{ + state_NewEnergyWithOutlier=-1; + + if(state_state == ResState::OOB) + { state_NewState = ResState::OOB; return state_energy; } + + FrameFramePrecalc* precalc = &(host->targetPrecalc[target->idx]); + float energyLeft=0; + const Eigen::Vector3f* dIl = target->dI; + //const float* const Il = target->I; + const Mat33f &PRE_KRKiTll = precalc->PRE_KRKiTll; + const Vec3f &PRE_KtTll = precalc->PRE_KtTll; + const Mat33f &PRE_RTll_0 = precalc->PRE_RTll_0; + const Vec3f &PRE_tTll_0 = precalc->PRE_tTll_0; + const float * const color = point->color; + const float * const weights = point->weights; + + Vec2f affLL = precalc->PRE_aff_mode; + float b0 = precalc->PRE_b0_mode; + + + Vec6f d_xi_x, d_xi_y; + Vec4f d_C_x, d_C_y; + float d_d_x, d_d_y; + { + float drescale, u, v, new_idepth; + float Ku, Kv; + Vec3f KliP; + + if(!projectPoint(point->u, point->v, point->idepth_zero_scaled, 0, 0,HCalib, + PRE_RTll_0,PRE_tTll_0, drescale, u, v, Ku, Kv, KliP, new_idepth)) + { state_NewState = ResState::OOB; return state_energy; } + + centerProjectedTo = Vec3f(Ku, Kv, new_idepth); + + + // diff d_idepth + d_d_x = drescale * (PRE_tTll_0[0]-PRE_tTll_0[2]*u)*SCALE_IDEPTH*HCalib->fxl(); + d_d_y = drescale * (PRE_tTll_0[1]-PRE_tTll_0[2]*v)*SCALE_IDEPTH*HCalib->fyl(); + + + + + // diff calib + d_C_x[2] = drescale*(PRE_RTll_0(2,0)*u-PRE_RTll_0(0,0)); + d_C_x[3] = HCalib->fxl() * drescale*(PRE_RTll_0(2,1)*u-PRE_RTll_0(0,1)) * HCalib->fyli(); + d_C_x[0] = KliP[0]*d_C_x[2]; + d_C_x[1] = KliP[1]*d_C_x[3]; + + d_C_y[2] = HCalib->fyl() * drescale*(PRE_RTll_0(2,0)*v-PRE_RTll_0(1,0)) * HCalib->fxli(); + d_C_y[3] = drescale*(PRE_RTll_0(2,1)*v-PRE_RTll_0(1,1)); + d_C_y[0] = KliP[0]*d_C_y[2]; + d_C_y[1] = KliP[1]*d_C_y[3]; + + d_C_x[0] = (d_C_x[0]+u)*SCALE_F; + d_C_x[1] *= SCALE_F; + d_C_x[2] = (d_C_x[2]+1)*SCALE_C; + d_C_x[3] *= SCALE_C; + + d_C_y[0] *= SCALE_F; + d_C_y[1] = (d_C_y[1]+v)*SCALE_F; + d_C_y[2] *= SCALE_C; + d_C_y[3] = (d_C_y[3]+1)*SCALE_C; + + + d_xi_x[0] = new_idepth*HCalib->fxl(); + d_xi_x[1] = 0; + d_xi_x[2] = -new_idepth*u*HCalib->fxl(); + d_xi_x[3] = -u*v*HCalib->fxl(); + d_xi_x[4] = (1+u*u)*HCalib->fxl(); + d_xi_x[5] = -v*HCalib->fxl(); + + d_xi_y[0] = 0; + d_xi_y[1] = new_idepth*HCalib->fyl(); + d_xi_y[2] = -new_idepth*v*HCalib->fyl(); + d_xi_y[3] = -(1+v*v)*HCalib->fyl(); + d_xi_y[4] = u*v*HCalib->fyl(); + d_xi_y[5] = u*HCalib->fyl(); + } + + + { + J->Jpdxi[0] = d_xi_x; + J->Jpdxi[1] = d_xi_y; + + J->Jpdc[0] = d_C_x; + J->Jpdc[1] = d_C_y; + + J->Jpdd[0] = d_d_x; + J->Jpdd[1] = d_d_y; + + } + + + + + + + float JIdxJIdx_00=0, JIdxJIdx_11=0, JIdxJIdx_10=0; + float JabJIdx_00=0, JabJIdx_01=0, JabJIdx_10=0, JabJIdx_11=0; + float JabJab_00=0, JabJab_01=0, JabJab_11=0; + + float wJI2_sum = 0; + + for(int idx=0;idxu+patternP[idx][0], point->v+patternP[idx][1], point->idepth_scaled, PRE_KRKiTll, PRE_KtTll, Ku, Kv)) + { state_NewState = ResState::OOB; return state_energy; } + + projectedTo[idx][0] = Ku; + projectedTo[idx][1] = Kv; + + + Vec3f hitColor = (getInterpolatedElement33(dIl, Ku, Kv, wG[0])); + float residual = hitColor[0] - (float)(affLL[0] * color[idx] + affLL[1]); + + + + float drdA = (color[idx]-b0); + if(!std::isfinite((float)hitColor[0])) + { state_NewState = ResState::OOB; return state_energy; } + + + float w = sqrtf(setting_outlierTHSumComponent / (setting_outlierTHSumComponent + hitColor.tail<2>().squaredNorm())); + w = 0.5f*(w + weights[idx]); + + + + float hw = fabsf(residual) < setting_huberTH ? 1 : setting_huberTH / fabsf(residual); + energyLeft += w*w*hw *residual*residual*(2-hw); + + { + if(hw < 1) hw = sqrtf(hw); + hw = hw*w; + + hitColor[1]*=hw; + hitColor[2]*=hw; + + J->resF[idx] = residual*hw; + + J->JIdx[0][idx] = hitColor[1]; + J->JIdx[1][idx] = hitColor[2]; + J->JabF[0][idx] = drdA*hw; + J->JabF[1][idx] = hw; + + JIdxJIdx_00+=hitColor[1]*hitColor[1]; + JIdxJIdx_11+=hitColor[2]*hitColor[2]; + JIdxJIdx_10+=hitColor[1]*hitColor[2]; + + JabJIdx_00+= drdA*hw * hitColor[1]; + JabJIdx_01+= drdA*hw * hitColor[2]; + JabJIdx_10+= hw * hitColor[1]; + JabJIdx_11+= hw * hitColor[2]; + + JabJab_00+= drdA*drdA*hw*hw; + JabJab_01+= drdA*hw*hw; + JabJab_11+= hw*hw; + + + wJI2_sum += hw*hw*(hitColor[1]*hitColor[1]+hitColor[2]*hitColor[2]); + + if(setting_affineOptModeA < 0) J->JabF[0][idx]=0; + if(setting_affineOptModeB < 0) J->JabF[1][idx]=0; + + } + } + + J->JIdx2(0,0) = JIdxJIdx_00; + J->JIdx2(0,1) = JIdxJIdx_10; + J->JIdx2(1,0) = JIdxJIdx_10; + J->JIdx2(1,1) = JIdxJIdx_11; + J->JabJIdx(0,0) = JabJIdx_00; + J->JabJIdx(0,1) = JabJIdx_01; + J->JabJIdx(1,0) = JabJIdx_10; + J->JabJIdx(1,1) = JabJIdx_11; + J->Jab2(0,0) = JabJab_00; + J->Jab2(0,1) = JabJab_01; + J->Jab2(1,0) = JabJab_01; + J->Jab2(1,1) = JabJab_11; + + state_NewEnergyWithOutlier = energyLeft; + + if(energyLeft > std::max(host->frameEnergyTH, target->frameEnergyTH) || wJI2_sum < 2) + { + energyLeft = std::max(host->frameEnergyTH, target->frameEnergyTH); + state_NewState = ResState::OUTLIER; + } + else + { + state_NewState = ResState::IN; + } + + state_NewEnergy = energyLeft; + return energyLeft; +} + + + +void PointFrameResidual::debugPlot() +{ + if(state_state==ResState::OOB) return; + Vec3b cT = Vec3b(0,0,0); + + if(freeDebugParam5==0) + { + float rT = 20*sqrt(state_energy/9); + if(rT<0) rT=0; if(rT>255)rT=255; + cT = Vec3b(0,255-rT,rT); + } + else + { + if(state_state == ResState::IN) cT = Vec3b(255,0,0); + else if(state_state == ResState::OOB) cT = Vec3b(255,255,0); + else if(state_state == ResState::OUTLIER) cT = Vec3b(0,0,255); + else cT = Vec3b(255,255,255); + } + + for(int i=0;i 2 && projectedTo[i][1] > 2 && projectedTo[i][0] < wG[0]-3 && projectedTo[i][1] < hG[0]-3 )) + target->debugImage->setPixel1((float)projectedTo[i][0], (float)projectedTo[i][1],cT); + } +} + + + +void PointFrameResidual::applyRes(bool copyJacobians) +{ + if(copyJacobians) + { + if(state_state == ResState::OOB) + { + assert(!efResidual->isActiveAndIsGoodNEW); + return; // can never go back from OOB + } + if(state_NewState == ResState::IN)// && ) + { + efResidual->isActiveAndIsGoodNEW=true; + efResidual->takeDataF(); + } + else + { + efResidual->isActiveAndIsGoodNEW=false; + } + } + + setState(state_NewState); + state_energy = state_NewEnergy; +} +} diff --git a/src/FullSystem/Residuals.h b/src/FullSystem/Residuals.h new file mode 100644 index 0000000..17745fe --- /dev/null +++ b/src/FullSystem/Residuals.h @@ -0,0 +1,106 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/globalCalib.h" +#include "vector" + +#include "util/NumType.h" +#include +#include +#include "util/globalFuncs.h" +#include "OptimizationBackend/RawResidualJacobian.h" + +namespace dso +{ +class PointHessian; +class FrameHessian; +class CalibHessian; + +class EFResidual; + + +enum ResLocation {ACTIVE=0, LINEARIZED, MARGINALIZED, NONE}; +enum ResState {IN=0, OOB, OUTLIER}; + +struct FullJacRowT +{ + Eigen::Vector2f projectedTo[MAX_RES_PER_POINT]; +}; + +class PointFrameResidual +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + EFResidual* efResidual; + + static int instanceCounter; + + + ResState state_state; + double state_energy; + ResState state_NewState; + double state_NewEnergy; + double state_NewEnergyWithOutlier; + + + void setState(ResState s) {state_state = s;} + + + PointHessian* point; + FrameHessian* host; + FrameHessian* target; + RawResidualJacobian* J; + + + bool isNew; + + + Eigen::Vector2f projectedTo[MAX_RES_PER_POINT]; + Vec3f centerProjectedTo; + + ~PointFrameResidual(); + PointFrameResidual(); + PointFrameResidual(PointHessian* point_, FrameHessian* host_, FrameHessian* target_); + double linearize(CalibHessian* HCalib); + + + void resetOOB() + { + state_NewEnergy = state_energy = 0; + state_NewState = ResState::OUTLIER; + + setState(ResState::IN); + }; + void applyRes( bool copyJacobians); + + void debugPlot(); + + void printRows(std::vector &v, VecX &r, int nFrames, int nPoints, int M, int res); +}; +} + diff --git a/src/IOWrapper/ImageDisplay.h b/src/IOWrapper/ImageDisplay.h new file mode 100644 index 0000000..36729bf --- /dev/null +++ b/src/IOWrapper/ImageDisplay.h @@ -0,0 +1,55 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include +#include "util/NumType.h" +#include "util/MinimalImage.h" + + +namespace dso +{ + +namespace IOWrap +{ + +void displayImage(const char* windowName, const MinimalImageB* img, bool autoSize = false); +void displayImage(const char* windowName, const MinimalImageB3* img, bool autoSize = false); +void displayImage(const char* windowName, const MinimalImageF* img, bool autoSize = false); +void displayImage(const char* windowName, const MinimalImageF3* img, bool autoSize = false); +void displayImage(const char* windowName, const MinimalImageB16* img, bool autoSize = false); + + +void displayImageStitch(const char* windowName, const std::vector images, int cc=0, int rc=0); +void displayImageStitch(const char* windowName, const std::vector images, int cc=0, int rc=0); +void displayImageStitch(const char* windowName, const std::vector images, int cc=0, int rc=0); +void displayImageStitch(const char* windowName, const std::vector images, int cc=0, int rc=0); + +int waitKey(int milliseconds); +void closeAllWindows(); + +} + +} diff --git a/src/IOWrapper/ImageDisplay_dummy.cpp b/src/IOWrapper/ImageDisplay_dummy.cpp new file mode 100644 index 0000000..0ad63c8 --- /dev/null +++ b/src/IOWrapper/ImageDisplay_dummy.cpp @@ -0,0 +1,50 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "IOWrapper/ImageDisplay.h" + +namespace dso +{ + + +namespace IOWrap +{ +void displayImage(const char* windowName, const MinimalImageB* img, bool autoSize) {}; +void displayImage(const char* windowName, const MinimalImageB3* img, bool autoSize) {}; +void displayImage(const char* windowName, const MinimalImageF* img, bool autoSize) {}; +void displayImage(const char* windowName, const MinimalImageF3* img, bool autoSize) {}; +void displayImage(const char* windowName, const MinimalImageB16* img, bool autoSize) {}; + + +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) {}; +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) {}; +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) {}; +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) {}; + +int waitKey(int milliseconds) {return 0;}; +void closeAllWindows() {}; +} + +} diff --git a/src/IOWrapper/ImageRW.h b/src/IOWrapper/ImageRW.h new file mode 100644 index 0000000..de0d406 --- /dev/null +++ b/src/IOWrapper/ImageRW.h @@ -0,0 +1,48 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include "util/NumType.h" +#include "util/MinimalImage.h" + +namespace dso +{ +namespace IOWrap +{ + +MinimalImageB* readImageBW_8U(std::string filename); +MinimalImageB3* readImageRGB_8U(std::string filename); +MinimalImage* readImageBW_16U(std::string filename); + + +MinimalImageB* readStreamBW_8U(char* data, int numBytes); + +void writeImage(std::string filename, MinimalImageB* img); +void writeImage(std::string filename, MinimalImageB3* img); +void writeImage(std::string filename, MinimalImageF* img); +void writeImage(std::string filename, MinimalImageF3* img); + +} +} diff --git a/src/IOWrapper/ImageRW_dummy.cpp b/src/IOWrapper/ImageRW_dummy.cpp new file mode 100644 index 0000000..65603a6 --- /dev/null +++ b/src/IOWrapper/ImageRW_dummy.cpp @@ -0,0 +1,46 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "IOWrapper/ImageRW.h" + +namespace dso +{ + + +namespace IOWrap +{ + +MinimalImageB* readImageBW_8U(std::string filename) {printf("not implemented. bye!\n"); return 0;}; +MinimalImageB3* readImageRGB_8U(std::string filename) {printf("not implemented. bye!\n"); return 0;}; +MinimalImage* readImageBW_16U(std::string filename) {printf("not implemented. bye!\n"); return 0;}; +MinimalImageB* readStreamBW_8U(char* data, int numBytes) {printf("not implemented. bye!\n"); return 0;}; +void writeImage(std::string filename, MinimalImageB* img) {}; +void writeImage(std::string filename, MinimalImageB3* img) {}; +void writeImage(std::string filename, MinimalImageF* img) {}; +void writeImage(std::string filename, MinimalImageF3* img) {}; + +} + +} diff --git a/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp b/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp new file mode 100644 index 0000000..1ba169d --- /dev/null +++ b/src/IOWrapper/OpenCV/ImageDisplay_OpenCV.cpp @@ -0,0 +1,197 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "IOWrapper/ImageDisplay.h" + +#include + +#include +#include + +#include + +#include "util/settings.h" + +namespace dso +{ + + +namespace IOWrap +{ + +std::unordered_set openWindows; +boost::mutex openCVdisplayMutex; + + + +void displayImage(const char* windowName, const cv::Mat& image, bool autoSize) +{ + if(disableAllDisplay) return; + + boost::unique_lock lock(openCVdisplayMutex); + if(!autoSize) + { + if(openWindows.find(windowName) == openWindows.end()) + { + cv::namedWindow(windowName, cv::WINDOW_NORMAL); + cv::resizeWindow(windowName, image.cols, image.rows); + openWindows.insert(windowName); + } + } + cv::imshow(windowName, image); +} + + +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) +{ + if(disableAllDisplay) return; + if(images.size() == 0) return; + + // get dimensions. + int w = images[0]->cols; + int h = images[0]->rows; + + int num = std::max((int)setting_maxFrames, (int)images.size()); + + // get optimal dimensions. + int bestCC = 0; + float bestLoss = 1e10; + for(int cc=1;cc<10;cc++) + { + int ww = w * cc; + int hh = h * ((num+cc-1)/cc); + + + float wLoss = ww/16.0f; + float hLoss = hh/10.0f; + float loss = std::max(wLoss, hLoss); + + if(loss < bestLoss) + { + bestLoss = loss; + bestCC = cc; + } + } + + int bestRC = ((num+bestCC-1)/bestCC); + if(cc != 0) + { + bestCC = cc; + bestRC= rc; + } + cv::Mat stitch = cv::Mat(bestRC*h, bestCC*w, images[0]->type()); + stitch.setTo(0); + for(int i=0;i<(int)images.size() && i < bestCC*bestRC;i++) + { + int c = i%bestCC; + int r = i/bestCC; + + cv::Mat roi = stitch(cv::Rect(c*w, r*h, w,h)); + images[i]->copyTo(roi); + } + displayImage(windowName, stitch, false); +} + + + +void displayImage(const char* windowName, const MinimalImageB* img, bool autoSize) +{ + displayImage(windowName, cv::Mat(img->h, img->w, CV_8U, img->data), autoSize); +} +void displayImage(const char* windowName, const MinimalImageB3* img, bool autoSize) +{ + displayImage(windowName, cv::Mat(img->h, img->w, CV_8UC3, img->data), autoSize); +} +void displayImage(const char* windowName, const MinimalImageF* img, bool autoSize) +{ + displayImage(windowName, cv::Mat(img->h, img->w, CV_32F, img->data)*(1/254.0f), autoSize); +} +void displayImage(const char* windowName, const MinimalImageF3* img, bool autoSize) +{ + displayImage(windowName, cv::Mat(img->h, img->w, CV_32FC3, img->data)*(1/254.0f), autoSize); +} +void displayImage(const char* windowName, const MinimalImageB16* img, bool autoSize) +{ + displayImage(windowName, cv::Mat(img->h, img->w, CV_16U, img->data), autoSize); +} + + +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) +{ + std::vector imagesCV; + for(size_t i=0; i < images.size();i++) + imagesCV.push_back(new cv::Mat(images[i]->h, images[i]->w, CV_8U, images[i]->data)); + displayImageStitch(windowName, imagesCV, cc, rc); + for(size_t i=0; i < images.size();i++) + delete imagesCV[i]; +} +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) +{ + std::vector imagesCV; + for(size_t i=0; i < images.size();i++) + imagesCV.push_back(new cv::Mat(images[i]->h, images[i]->w, CV_8UC3, images[i]->data)); + displayImageStitch(windowName, imagesCV, cc, rc); + for(size_t i=0; i < images.size();i++) + delete imagesCV[i]; +} +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) +{ + std::vector imagesCV; + for(size_t i=0; i < images.size();i++) + imagesCV.push_back(new cv::Mat(images[i]->h, images[i]->w, CV_32F, images[i]->data)); + displayImageStitch(windowName, imagesCV, cc, rc); + for(size_t i=0; i < images.size();i++) + delete imagesCV[i]; +} +void displayImageStitch(const char* windowName, const std::vector images, int cc, int rc) +{ + std::vector imagesCV; + for(size_t i=0; i < images.size();i++) + imagesCV.push_back(new cv::Mat(images[i]->h, images[i]->w, CV_32FC3, images[i]->data)); + displayImageStitch(windowName, imagesCV, cc, rc); + for(size_t i=0; i < images.size();i++) + delete imagesCV[i]; +} + + + +int waitKey(int milliseconds) +{ + if(disableAllDisplay) return 0; + + boost::unique_lock lock(openCVdisplayMutex); + return cv::waitKey(milliseconds); +} + +void closeAllWindows() +{ + if(disableAllDisplay) return; + boost::unique_lock lock(openCVdisplayMutex); + cv::destroyAllWindows(); + openWindows.clear(); +} +} + +} diff --git a/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp b/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp new file mode 100644 index 0000000..170cb33 --- /dev/null +++ b/src/IOWrapper/OpenCV/ImageRW_OpenCV.cpp @@ -0,0 +1,128 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "IOWrapper/ImageRW.h" +#include + + +namespace dso +{ + +namespace IOWrap +{ +MinimalImageB* readImageBW_8U(std::string filename) +{ + cv::Mat m = cv::imread(filename, CV_LOAD_IMAGE_GRAYSCALE); + if(m.rows*m.cols==0) + { + printf("cv::imread could not read image %s! this may segfault. \n", filename.c_str()); + return 0; + } + if(m.type() != CV_8U) + { + printf("cv::imread did something strange! this may segfault. \n"); + return 0; + } + MinimalImageB* img = new MinimalImageB(m.cols, m.rows); + memcpy(img->data, m.data, m.rows*m.cols); + return img; +} + +MinimalImageB3* readImageRGB_8U(std::string filename) +{ + cv::Mat m = cv::imread(filename, CV_LOAD_IMAGE_COLOR); + if(m.rows*m.cols==0) + { + printf("cv::imread could not read image %s! this may segfault. \n", filename.c_str()); + return 0; + } + if(m.type() != CV_8UC3) + { + printf("cv::imread did something strange! this may segfault. \n"); + return 0; + } + MinimalImageB3* img = new MinimalImageB3(m.cols, m.rows); + memcpy(img->data, m.data, 3*m.rows*m.cols); + return img; +} + +MinimalImage* readImageBW_16U(std::string filename) +{ + cv::Mat m = cv::imread(filename, CV_LOAD_IMAGE_UNCHANGED); + if(m.rows*m.cols==0) + { + printf("cv::imread could not read image %s! this may segfault. \n", filename.c_str()); + return 0; + } + if(m.type() != CV_16U) + { + printf("readImageBW_16U called on image that is not a 16bit grayscale image. this may segfault. \n"); + return 0; + } + MinimalImage* img = new MinimalImage(m.cols, m.rows); + memcpy(img->data, m.data, 2*m.rows*m.cols); + return img; +} + +MinimalImageB* readStreamBW_8U(char* data, int numBytes) +{ + cv::Mat m = cv::imdecode(cv::Mat(numBytes,1,CV_8U, data), CV_LOAD_IMAGE_GRAYSCALE); + if(m.rows*m.cols==0) + { + printf("cv::imdecode could not read stream (%d bytes)! this may segfault. \n", numBytes); + return 0; + } + if(m.type() != CV_8U) + { + printf("cv::imdecode did something strange! this may segfault. \n"); + return 0; + } + MinimalImageB* img = new MinimalImageB(m.cols, m.rows); + memcpy(img->data, m.data, m.rows*m.cols); + return img; +} + + + +void writeImage(std::string filename, MinimalImageB* img) +{ + cv::imwrite(filename, cv::Mat(img->h, img->w, CV_8U, img->data)); +} +void writeImage(std::string filename, MinimalImageB3* img) +{ + cv::imwrite(filename, cv::Mat(img->h, img->w, CV_8UC3, img->data)); +} +void writeImage(std::string filename, MinimalImageF* img) +{ + cv::imwrite(filename, cv::Mat(img->h, img->w, CV_32F, img->data)); +} +void writeImage(std::string filename, MinimalImageF3* img) +{ + cv::imwrite(filename, cv::Mat(img->h, img->w, CV_32FC3, img->data)); +} + +} + +} diff --git a/src/IOWrapper/Output3DWrapper.h b/src/IOWrapper/Output3DWrapper.h new file mode 100644 index 0000000..897ab3a --- /dev/null +++ b/src/IOWrapper/Output3DWrapper.h @@ -0,0 +1,209 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include +#include + +#include "util/NumType.h" +#include "util/MinimalImage.h" +#include "map" + +namespace cv { + class Mat; +} + +namespace dso +{ + +class FrameHessian; +class CalibHessian; +class FrameShell; + +namespace IOWrap +{ + +/* ======================= Some typical usecases: =============== + * + * (1) always get the pose of the most recent frame: + * -> Implement [publishCamPose]. + * + * (2) always get the depthmap of the most recent keyframe + * -> Implement [pushDepthImageFloat] (use inverse depth in [image], and pose / frame information from [KF]). + * + * (3) accumulate final model + * -> Implement [publishKeyframes] (skip for final!=false), and accumulate frames. + * + * (4) get evolving model in real-time + * -> Implement [publishKeyframes] (update all frames for final==false). + * + * + * + * + * ==================== How to use the structs: =================== + * [FrameShell]: minimal struct kept for each frame ever tracked. + * ->camToWorld = camera to world transformation + * ->poseValid = false if [camToWorld] is invalid (only happens for frames during initialization). + * ->trackingRef = Shell of the frame this frame was tracked on. + * ->id = ID of that frame, starting with 0 for the very first frame. + * + * ->incoming_id = ID passed into [addActiveFrame( ImageAndExposure* image, int id )]. + * ->timestamp = timestamp passed into [addActiveFrame( ImageAndExposure* image, int id )] as image.timestamp. + * + * [FrameHessian] + * ->immaturePoints: contains points that have not been "activated" (they do however have a depth initialization). + * ->pointHessians: contains active points. + * ->pointHessiansMarginalized: contains marginalized points. + * ->pointHessiansOut: contains outlier points. + * + * ->frameID: incremental ID for keyframes only. + * ->shell: corresponding [FrameShell] struct. + * + * + * [CalibHessian] + * ->fxl(), fyl(), cxl(), cyl(): get optimized, most recent (pinhole) camera intrinsics. + * + * + * [PointHessian] + * ->u,v: pixel-coordinates of point. + * ->idepth_scaled: inverse depth of point. + * DO NOT USE [idepth], since it may be scaled with [SCALE_IDEPTH] ... however that is currently set to 1 so never mind. + * ->host: pointer to host-frame of point. + * ->status: current status of point (ACTIVE=0, INACTIVE, OUTLIER, OOB, MARGINALIZED) + * ->numGoodResiduals: number of non-outlier residuals supporting this point (approximate). + * ->maxRelBaseline: value roughly proportional to the relative baseline this point was observed with (0 = no baseline). + * points for which this value is low are badly contrained. + * ->idepth_hessian: hessian value (inverse variance) of inverse depth. + * + * [ImmaturePoint] + * ->u,v: pixel-coordinates of point. + * ->idepth_min, idepth_max: the initialization sais that the inverse depth of this point is very likely + * between these two thresholds (their mean being the best guess) + * ->host: pointer to host-frame of point. + */ + + + + + + + +class Output3DWrapper +{ +public: + Output3DWrapper() {} + virtual ~Output3DWrapper() {} + + + /* Usage: + * Called once after each new Keyframe is inserted & optimized. + * [connectivity] contains for each frame-frame pair the number of [0] active residuals in between them, + * and [1] the number of marginalized reisduals between them. + * frame-frame pairs are encoded as HASH_IDX = [(int)hostFrameKFID << 32 + (int)targetFrameKFID]. + * the [***frameKFID] used for hashing correspond to the [FrameHessian]->frameID. + * + * Calling: + * Always called, no overhead if not used. + */ + virtual void publishGraph(const std::map, Eigen::aligned_allocator > > &connectivity) {} + + + + + + /* Usage: + * Called after each new Keyframe is inserted & optimized, with all keyframes that were part of the active window during + * that optimization in [frames] (with final=false). Use to access the new frame pose and points. + * Also called just before a frame is marginalized (with final=true) with only that frame in [frames]; at that point, + * no further updates will ever occur to it's optimized values (pose & idepth values of it's points). + * + * If you want always all most recent values for all frames, just use the [final=false] calls. + * If you only want to get the final model, but don't care about it being delay-free, only use the + * [final=true] calls, to save compute. + * + * Calling: + * Always called, negligible overhead if not used. + */ + virtual void publishKeyframes(std::vector &frames, bool final, CalibHessian* HCalib) {} + + + + + + /* Usage: + * Called once for each tracked frame, with the real-time, low-delay frame pose. + * + * Calling: + * Always called, no overhead if not used. + */ + virtual void publishCamPose(FrameShell* frame, CalibHessian* HCalib) {} + + + + + + /* Usage: + * Called once for each new frame, before it is tracked (i.e., it doesn't have a pose yet). + * + * Calling: + * Always called, no overhead if not used. + */ + virtual void pushLiveFrame(FrameHessian* image) {} + + + + + /* called once after a new keyframe is created, with the color-coded, forward-warped inverse depthmap for that keyframe, + * which is used for initial alignment of future frames. Meant for visualization. + * + * Calling: + * Needs to prepare the depth image, so it is only called if [needPushDepthImage()] returned true. + */ + virtual void pushDepthImage(MinimalImageB3* image) {} + virtual bool needPushDepthImage() {return false;} + + + + /* Usage: + * called once after a new keyframe is created, with the forward-warped inverse depthmap for that keyframe. + * (<= 0 for pixels without inv. depth value, >0 for pixels with inv. depth value) + * + * Calling: + * Always called, almost no overhead if not used. + */ + virtual void pushDepthImageFloat(MinimalImageF* image, FrameHessian* KF ) {} + + + + /* call on finish */ + virtual void join() {} + + /* call on reset */ + virtual void reset() {} + +}; + +} +} diff --git a/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h b/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h new file mode 100644 index 0000000..d7d1b1a --- /dev/null +++ b/src/IOWrapper/OutputWrapper/SampleOutputWrapper.h @@ -0,0 +1,158 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#include "boost/thread.hpp" +#include "util/MinimalImage.h" +#include "IOWrapper/Output3DWrapper.h" + + + +#include "FullSystem/HessianBlocks.h" +#include "util/FrameShell.h" + +namespace dso +{ + +class FrameHessian; +class CalibHessian; +class FrameShell; + + +namespace IOWrap +{ + +class SampleOutputWrapper : public Output3DWrapper +{ +public: + inline SampleOutputWrapper() + { + printf("OUT: Created SampleOutputWrapper\n"); + } + + virtual ~SampleOutputWrapper() + { + printf("OUT: Destroyed SampleOutputWrapper\n"); + } + + virtual void publishGraph(const std::map, Eigen::aligned_allocator>> &connectivity) override + { + printf("OUT: got graph with %d edges\n", (int)connectivity.size()); + + int maxWrite = 5; + + for(const std::pair &p : connectivity) + { + int idHost = p.first>>32; + int idTarget = p.first & ((uint64_t)0xFFFFFFFF); + printf("OUT: Example Edge %d -> %d has %d active and %d marg residuals\n", idHost, idTarget, p.second[0], p.second[1]); + maxWrite--; + if(maxWrite==0) break; + } + } + + + + virtual void publishKeyframes( std::vector &frames, bool final, CalibHessian* HCalib) override + { + for(FrameHessian* f : frames) + { + printf("OUT: KF %d (%s) (id %d, tme %f): %d active, %d marginalized, %d immature points. CameraToWorld:\n", + f->frameID, + final ? "final" : "non-final", + f->shell->incoming_id, + f->shell->timestamp, + (int)f->pointHessians.size(), (int)f->pointHessiansMarginalized.size(), (int)f->immaturePoints.size()); + std::cout << f->shell->camToWorld.matrix3x4() << "\n"; + + + int maxWrite = 5; + for(PointHessian* p : f->pointHessians) + { + printf("OUT: Example Point x=%.1f, y=%.1f, idepth=%f, idepth std.dev. %f, %d inlier-residuals\n", + p->u, p->v, p->idepth_scaled, sqrt(1.0f / p->idepth_hessian), p->numGoodResiduals ); + maxWrite--; + if(maxWrite==0) break; + } + } + } + + virtual void publishCamPose(FrameShell* frame, CalibHessian* HCalib) override + { + printf("OUT: Current Frame %d (time %f, internal ID %d). CameraToWorld:\n", + frame->incoming_id, + frame->timestamp, + frame->id); + std::cout << frame->camToWorld.matrix3x4() << "\n"; + } + + + virtual void pushLiveFrame(FrameHessian* image) override + { + // can be used to get the raw image / intensity pyramid. + } + + virtual void pushDepthImage(MinimalImageB3* image) override + { + // can be used to get the raw image with depth overlay. + } + virtual bool needPushDepthImage() override + { + return false; + } + + virtual void pushDepthImageFloat(MinimalImageF* image, FrameHessian* KF ) override + { + printf("OUT: Predicted depth for KF %d (id %d, time %f, internal frame-ID %d). CameraToWorld:\n", + KF->frameID, + KF->shell->incoming_id, + KF->shell->timestamp, + KF->shell->id); + std::cout << KF->shell->camToWorld.matrix3x4() << "\n"; + + int maxWrite = 5; + for(int y=0;yh;y++) + { + for(int x=0;xw;x++) + { + if(image->at(x,y) <= 0) continue; + + printf("OUT: Example Idepth at pixel (%d,%d): %f.\n", x,y,image->at(x,y)); + maxWrite--; + if(maxWrite==0) break; + } + if(maxWrite==0) break; + } + } + + +}; + + + +} + + + +} diff --git a/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp b/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp new file mode 100644 index 0000000..7c6557a --- /dev/null +++ b/src/IOWrapper/Pangolin/KeyFrameDisplay.cpp @@ -0,0 +1,403 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include +#include "util/settings.h" + +//#include +//#include +//#include + +#include +#include "KeyFrameDisplay.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/ImmaturePoint.h" +#include "util/FrameShell.h" + + + +namespace dso +{ +namespace IOWrap +{ + + +KeyFrameDisplay::KeyFrameDisplay() +{ + originalInputSparse = 0; + numSparseBufferSize=0; + numSparsePoints=0; + + id = 0; + active= true; + camToWorld = SE3(); + + needRefresh=true; + + my_scaledTH =1e10; + my_absTH = 1e10; + my_displayMode = 1; + my_minRelBS = 0; + my_sparsifyFactor = 1; + + numGLBufferPoints=0; + bufferValid = false; +} +void KeyFrameDisplay::setFromF(FrameShell* frame, CalibHessian* HCalib) +{ + id = frame->id; + fx = HCalib->fxl(); + fy = HCalib->fyl(); + cx = HCalib->cxl(); + cy = HCalib->cyl(); + width = wG[0]; + height = hG[0]; + fxi = 1/fx; + fyi = 1/fy; + cxi = -cx / fx; + cyi = -cy / fy; + camToWorld = frame->camToWorld; + needRefresh=true; +} + +void KeyFrameDisplay::setFromKF(FrameHessian* fh, CalibHessian* HCalib) +{ + setFromF(fh->shell, HCalib); + + // add all traces, inlier and outlier points. + int npoints = fh->immaturePoints.size() + + fh->pointHessians.size() + + fh->pointHessiansMarginalized.size() + + fh->pointHessiansOut.size(); + + if(numSparseBufferSize < npoints) + { + if(originalInputSparse != 0) delete originalInputSparse; + numSparseBufferSize = npoints+100; + originalInputSparse = new InputPointSparse[numSparseBufferSize]; + } + + InputPointSparse* pc = originalInputSparse; + numSparsePoints=0; + for(ImmaturePoint* p : fh->immaturePoints) + { + for(int i=0;icolor[i]; + + pc[numSparsePoints].u = p->u; + pc[numSparsePoints].v = p->v; + pc[numSparsePoints].idpeth = (p->idepth_max+p->idepth_min)*0.5f; + pc[numSparsePoints].idepth_hessian = 1000; + pc[numSparsePoints].relObsBaseline = 0; + pc[numSparsePoints].numGoodRes = 1; + pc[numSparsePoints].status = 0; + numSparsePoints++; + } + + for(PointHessian* p : fh->pointHessians) + { + for(int i=0;icolor[i]; + pc[numSparsePoints].u = p->u; + pc[numSparsePoints].v = p->v; + pc[numSparsePoints].idpeth = p->idepth_scaled; + pc[numSparsePoints].relObsBaseline = p->maxRelBaseline; + pc[numSparsePoints].idepth_hessian = p->idepth_hessian; + pc[numSparsePoints].numGoodRes = 0; + pc[numSparsePoints].status=1; + + numSparsePoints++; + } + + for(PointHessian* p : fh->pointHessiansMarginalized) + { + for(int i=0;icolor[i]; + pc[numSparsePoints].u = p->u; + pc[numSparsePoints].v = p->v; + pc[numSparsePoints].idpeth = p->idepth_scaled; + pc[numSparsePoints].relObsBaseline = p->maxRelBaseline; + pc[numSparsePoints].idepth_hessian = p->idepth_hessian; + pc[numSparsePoints].numGoodRes = 0; + pc[numSparsePoints].status=2; + numSparsePoints++; + } + + for(PointHessian* p : fh->pointHessiansOut) + { + for(int i=0;icolor[i]; + pc[numSparsePoints].u = p->u; + pc[numSparsePoints].v = p->v; + pc[numSparsePoints].idpeth = p->idepth_scaled; + pc[numSparsePoints].relObsBaseline = p->maxRelBaseline; + pc[numSparsePoints].idepth_hessian = p->idepth_hessian; + pc[numSparsePoints].numGoodRes = 0; + pc[numSparsePoints].status=3; + numSparsePoints++; + } + assert(numSparsePoints <= npoints); + + camToWorld = fh->PRE_camToWorld; + needRefresh=true; +} + + +KeyFrameDisplay::~KeyFrameDisplay() +{ + if(originalInputSparse != 0) + delete[] originalInputSparse; +} + +bool KeyFrameDisplay::refreshPC(bool canRefresh, float scaledTH, float absTH, int mode, float minBS, int sparsity) +{ + if(canRefresh) + { + needRefresh = needRefresh || + my_scaledTH != scaledTH || + my_absTH != absTH || + my_displayMode != mode || + my_minRelBS != minBS || + my_sparsifyFactor != sparsity; + } + + if(!needRefresh) return false; + needRefresh=false; + + my_scaledTH = scaledTH; + my_absTH = absTH; + my_displayMode = mode; + my_minRelBS = minBS; + my_sparsifyFactor = sparsity; + + + // if there are no vertices, done! + if(numSparsePoints == 0) + return false; + + // make data + Vec3f* tmpVertexBuffer = new Vec3f[numSparsePoints*patternNum]; + Vec3b* tmpColorBuffer = new Vec3b[numSparsePoints*patternNum]; + int vertexBufferNumPoints=0; + + for(int i=0;i2) continue; + + if(originalInputSparse[i].idpeth < 0) continue; + + + float depth = 1.0f / originalInputSparse[i].idpeth; + float depth4 = depth*depth; depth4*= depth4; + float var = (1.0f / (originalInputSparse[i].idepth_hessian+0.01)); + + if(var * depth4 > my_scaledTH) + continue; + + if(var > my_absTH) + continue; + + if(originalInputSparse[i].relObsBaseline < my_minRelBS) + continue; + + + for(int pnt=0;pnt 1 && rand()%my_sparsifyFactor != 0) continue; + int dx = patternP[pnt][0]; + int dy = patternP[pnt][1]; + + tmpVertexBuffer[vertexBufferNumPoints][0] = ((originalInputSparse[i].u+dx)*fxi + cxi) * depth; + tmpVertexBuffer[vertexBufferNumPoints][1] = ((originalInputSparse[i].v+dy)*fyi + cyi) * depth; + tmpVertexBuffer[vertexBufferNumPoints][2] = depth*(1 + 2*fxi * (rand()/(float)RAND_MAX-0.5f)); + + + + if(my_displayMode==0) + { + if(originalInputSparse[i].status==0) + { + tmpColorBuffer[vertexBufferNumPoints][0] = 0; + tmpColorBuffer[vertexBufferNumPoints][1] = 255; + tmpColorBuffer[vertexBufferNumPoints][2] = 255; + } + else if(originalInputSparse[i].status==1) + { + tmpColorBuffer[vertexBufferNumPoints][0] = 0; + tmpColorBuffer[vertexBufferNumPoints][1] = 255; + tmpColorBuffer[vertexBufferNumPoints][2] = 0; + } + else if(originalInputSparse[i].status==2) + { + tmpColorBuffer[vertexBufferNumPoints][0] = 0; + tmpColorBuffer[vertexBufferNumPoints][1] = 0; + tmpColorBuffer[vertexBufferNumPoints][2] = 255; + } + else if(originalInputSparse[i].status==3) + { + tmpColorBuffer[vertexBufferNumPoints][0] = 255; + tmpColorBuffer[vertexBufferNumPoints][1] = 0; + tmpColorBuffer[vertexBufferNumPoints][2] = 0; + } + else + { + tmpColorBuffer[vertexBufferNumPoints][0] = 255; + tmpColorBuffer[vertexBufferNumPoints][1] = 255; + tmpColorBuffer[vertexBufferNumPoints][2] = 255; + } + + } + else + { + tmpColorBuffer[vertexBufferNumPoints][0] = originalInputSparse[i].color[pnt]; + tmpColorBuffer[vertexBufferNumPoints][1] = originalInputSparse[i].color[pnt]; + tmpColorBuffer[vertexBufferNumPoints][2] = originalInputSparse[i].color[pnt]; + } + vertexBufferNumPoints++; + + + assert(vertexBufferNumPoints <= numSparsePoints*patternNum); + } + } + + if(vertexBufferNumPoints==0) + { + delete[] tmpColorBuffer; + delete[] tmpVertexBuffer; + return true; + } + + numGLBufferGoodPoints = vertexBufferNumPoints; + if(numGLBufferGoodPoints > numGLBufferPoints) + { + numGLBufferPoints = vertexBufferNumPoints*1.3; + vertexBuffer.Reinitialise(pangolin::GlArrayBuffer, numGLBufferPoints, GL_FLOAT, 3, GL_DYNAMIC_DRAW ); + colorBuffer.Reinitialise(pangolin::GlArrayBuffer, numGLBufferPoints, GL_UNSIGNED_BYTE, 3, GL_DYNAMIC_DRAW ); + } + vertexBuffer.Upload(tmpVertexBuffer, sizeof(float)*3*numGLBufferGoodPoints, 0); + colorBuffer.Upload(tmpColorBuffer, sizeof(unsigned char)*3*numGLBufferGoodPoints, 0); + bufferValid=true; + delete[] tmpColorBuffer; + delete[] tmpVertexBuffer; + + + return true; +} + + + +void KeyFrameDisplay::drawCam(float lineWidth, float* color, float sizeFactor) +{ + if(width == 0) + return; + + float sz=sizeFactor; + + glPushMatrix(); + + Sophus::Matrix4f m = camToWorld.matrix().cast(); + glMultMatrixf((GLfloat*)m.data()); + + if(color == 0) + { + glColor3f(1,0,0); + } + else + glColor3f(color[0],color[1],color[2]); + + glLineWidth(lineWidth); + glBegin(GL_LINES); + glVertex3f(0,0,0); + glVertex3f(sz*(0-cx)/fx,sz*(0-cy)/fy,sz); + glVertex3f(0,0,0); + glVertex3f(sz*(0-cx)/fx,sz*(height-1-cy)/fy,sz); + glVertex3f(0,0,0); + glVertex3f(sz*(width-1-cx)/fx,sz*(height-1-cy)/fy,sz); + glVertex3f(0,0,0); + glVertex3f(sz*(width-1-cx)/fx,sz*(0-cy)/fy,sz); + + glVertex3f(sz*(width-1-cx)/fx,sz*(0-cy)/fy,sz); + glVertex3f(sz*(width-1-cx)/fx,sz*(height-1-cy)/fy,sz); + + glVertex3f(sz*(width-1-cx)/fx,sz*(height-1-cy)/fy,sz); + glVertex3f(sz*(0-cx)/fx,sz*(height-1-cy)/fy,sz); + + glVertex3f(sz*(0-cx)/fx,sz*(height-1-cy)/fy,sz); + glVertex3f(sz*(0-cx)/fx,sz*(0-cy)/fy,sz); + + glVertex3f(sz*(0-cx)/fx,sz*(0-cy)/fy,sz); + glVertex3f(sz*(width-1-cx)/fx,sz*(0-cy)/fy,sz); + + glEnd(); + glPopMatrix(); +} + + +void KeyFrameDisplay::drawPC(float pointSize) +{ + + if(!bufferValid || numGLBufferGoodPoints==0) + return; + + + glDisable(GL_LIGHTING); + + glPushMatrix(); + + Sophus::Matrix4f m = camToWorld.matrix().cast(); + glMultMatrixf((GLfloat*)m.data()); + + glPointSize(pointSize); + + + colorBuffer.Bind(); + glColorPointer(colorBuffer.count_per_element, colorBuffer.datatype, 0, 0); + glEnableClientState(GL_COLOR_ARRAY); + + vertexBuffer.Bind(); + glVertexPointer(vertexBuffer.count_per_element, vertexBuffer.datatype, 0, 0); + glEnableClientState(GL_VERTEX_ARRAY); + glDrawArrays(GL_POINTS, 0, numGLBufferGoodPoints); + glDisableClientState(GL_VERTEX_ARRAY); + vertexBuffer.Unbind(); + + glDisableClientState(GL_COLOR_ARRAY); + colorBuffer.Unbind(); + + glPopMatrix(); +} + +} +} diff --git a/src/IOWrapper/Pangolin/KeyFrameDisplay.h b/src/IOWrapper/Pangolin/KeyFrameDisplay.h new file mode 100644 index 0000000..5f88180 --- /dev/null +++ b/src/IOWrapper/Pangolin/KeyFrameDisplay.h @@ -0,0 +1,123 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#undef Success +#include +#include "util/NumType.h" +#include + +#include +#include + +namespace dso +{ +class CalibHessian; +class FrameHessian; +class FrameShell; + +namespace IOWrap +{ + +template +struct InputPointSparse +{ + float u; + float v; + float idpeth; + float idepth_hessian; + float relObsBaseline; + int numGoodRes; + unsigned char color[ppp]; + unsigned char status; +}; + +struct MyVertex +{ + float point[3]; + unsigned char color[4]; +}; + +// stores a pointcloud associated to a Keyframe. +class KeyFrameDisplay +{ + +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + KeyFrameDisplay(); + ~KeyFrameDisplay(); + + // copies points from KF over to internal buffer, + // keeping some additional information so we can render it differently. + void setFromKF(FrameHessian* fh, CalibHessian* HCalib); + + // copies points from KF over to internal buffer, + // keeping some additional information so we can render it differently. + void setFromF(FrameShell* fs, CalibHessian* HCalib); + + // copies & filters internal data to GL buffer for rendering. if nothing to do: does nothing. + bool refreshPC(bool canRefresh, float scaledTH, float absTH, int mode, float minBS, int sparsity); + + // renders cam & pointcloud. + void drawCam(float lineWidth = 1, float* color = 0, float sizeFactor=1); + void drawPC(float pointSize); + + int id; + bool active; + SE3 camToWorld; + + inline bool operator < (const KeyFrameDisplay& other) const + { + return (id < other.id); + } + + +private: + float fx,fy,cx,cy; + float fxi,fyi,cxi,cyi; + int width, height; + + float my_scaledTH, my_absTH, my_scale; + int my_sparsifyFactor; + int my_displayMode; + float my_minRelBS; + bool needRefresh; + + + int numSparsePoints; + int numSparseBufferSize; + InputPointSparse* originalInputSparse; + + + bool bufferValid; + int numGLBufferPoints; + int numGLBufferGoodPoints; + pangolin::GlBuffer vertexBuffer; + pangolin::GlBuffer colorBuffer; +}; + +} +} + diff --git a/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp b/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp new file mode 100644 index 0000000..cffdc73 --- /dev/null +++ b/src/IOWrapper/Pangolin/PangolinDSOViewer.cpp @@ -0,0 +1,767 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "PangolinDSOViewer.h" +#include "KeyFrameDisplay.h" + +#include "util/settings.h" +#include "util/globalCalib.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/ImmaturePoint.h" + +namespace dso +{ +namespace IOWrap +{ + bool isRotationMatrix(const cv::Mat &R) + { + cv::Mat Rt; + cv::transpose(R, Rt); + cv::Mat shouldBeIdentity = Rt * R; + cv::Mat I = cv::Mat::eye(3,3, shouldBeIdentity.type()); + + return cv::norm(I, shouldBeIdentity) < 1e-6; + + } + + Eigen::Vector3d rot2rvec(Eigen::Matrix& Mat, bool changeAngleSign){ + // Continue the convertion here. + // Convert from matrix to axis-angle representation. + double angle = acos( (Mat.trace() - 1) / 2 ); + Eigen::Vector3d vec = {Mat(2, 1) - Mat(1, 2), Mat(0, 2) - Mat(2, 0), Mat(1, 0) - Mat(0, 1)}; + // The unit vector + Eigen::Vector3d axis = {( 1.0 / 2.0 * sin(angle) ) * vec(0), ( 1.0 / 2.0 * sin(angle) ) * vec(1), ( 1.0 / 2.0 * sin(angle) ) * vec(2)}; + Eigen::Vector3d rvec; + if (changeAngleSign){ + rvec = -angle * axis; + } + else{ + rvec = angle * axis; + } + return rvec; + }; + +void drawLine(int x, int y, int z){ + glLineWidth(10); + glBegin(GL_LINES); + glVertex3f((float)x,(float)y,(float)z); + glVertex3f((float)x,(float)y,(float)z+1); + glEnd(); +} + +void drawCube(float x, float y, float z){ + glColor3f(0, 1, 0); + glLineWidth(5); +// glColor3ui(133, 247, 208); + glBegin(GL_LINES); + + // Bottom +// glColor3ui(133, 247, 208); + glVertex3f(x, y, z); + glVertex3f(x, y+1, z); + +// glColor3ui(253, 59, 86); + glVertex3f(x, y, z); + glVertex3f(x+1, y, z); + +// glColor3ui(147, 175, 215); + glVertex3f(x, y+1, z); + glVertex3f(x+1, y+1, z); + +// glColor3ui(80, 209, 168); + glVertex3f(x+1, y, z); + glVertex3f(x+1, y+1, z); + + // Top +// glColor3ui(154, 13, 88); + glVertex3f(x, y, z+1); + glVertex3f(x, y+1, z+1); + +// glColor3ui(253, 59, 86); + glVertex3f(x, y, z+1); + glVertex3f(x+1, y, z+1); + +// glColor3ui(5, 26, 72); + glVertex3f(x, y+1, z+1); + glVertex3f(x+1, y+1, z+1); + +// glColor3ui(72, 182, 8); + glVertex3f(x+1, y, z+1); + glVertex3f(x+1, y+1, z+1); + + // Sides +// glColor3ui(28, 122, 71); + glVertex3f(x, y, z); + glVertex3f(x, y, z+1); + +// glColor3ui(244, 207, 185); + glVertex3f(x, y+1, z); + glVertex3f(x, y+1, z+1); + +// glColor3ui(88, 153, 225); + glVertex3f(x+1, y, z); + glVertex3f(x+1, y, z+1); + +// glColor3ui(184, 151, 253); + glVertex3f(x+1, y+1, z); + glVertex3f(x+1, y+1, z+1); + + glEnd(); + +} + +PangolinDSOViewer::PangolinDSOViewer(int w, int h, bool startRunThread) +{ + this->w = w; + this->h = h; + running=true; + + + { + boost::unique_lock lk(openImagesMutex); + internalVideoImg = new MinimalImageB3(w,h); + internalKFImg = new MinimalImageB3(w,h); + internalResImg = new MinimalImageB3(w,h); + videoImgChanged=kfImgChanged=resImgChanged=true; + + internalVideoImg->setBlack(); + internalKFImg->setBlack(); + internalResImg->setBlack(); + } + + + { + currentCam = new KeyFrameDisplay(); + } + + needReset = false; + + + if(startRunThread) + runThread = boost::thread(&PangolinDSOViewer::run, this); + +} + + +PangolinDSOViewer::~PangolinDSOViewer() +{ + close(); + runThread.join(); +} + + +void PangolinDSOViewer::run() +{ + printf("START PANGOLIN!\n"); + + pangolin::CreateWindowAndBind("Main",2*w,2*h); + const int UI_WIDTH = 180; + + glEnable(GL_DEPTH_TEST); + + // 3D visualization + pangolin::OpenGlRenderState Visualization3D_camera( + pangolin::ProjectionMatrix(w,h,400,400,w/2,h/2,0.1,1000), + pangolin::ModelViewLookAt(-0,-5,-10, 0,0,0, pangolin::AxisNegY) + ); + + pangolin::View& Visualization3D_display = pangolin::CreateDisplay() + .SetBounds(0.0, 1.0, pangolin::Attach::Pix(UI_WIDTH), 1.0, -w/(float)h) + .SetHandler(new pangolin::Handler3D(Visualization3D_camera)); + + + // 3 images + pangolin::View& d_kfDepth = pangolin::Display("imgKFDepth") + .SetAspect(w/(float)h); + + pangolin::View& d_video = pangolin::Display("imgVideo") + .SetAspect(w/(float)h); + + pangolin::View& d_residual = pangolin::Display("imgResidual") + .SetAspect(w/(float)h); + + pangolin::GlTexture texKFDepth(w,h,GL_RGB,false,0,GL_RGB,GL_UNSIGNED_BYTE); + pangolin::GlTexture texVideo(w,h,GL_RGB,false,0,GL_RGB,GL_UNSIGNED_BYTE); + pangolin::GlTexture texResidual(w,h,GL_RGB,false,0,GL_RGB,GL_UNSIGNED_BYTE); + + + pangolin::CreateDisplay() + .SetBounds(0.0, 0.3, pangolin::Attach::Pix(UI_WIDTH), 1.0) + .SetLayout(pangolin::LayoutEqual) + .AddDisplay(d_kfDepth) + .AddDisplay(d_video) + .AddDisplay(d_residual); + + // parameter reconfigure gui + pangolin::CreatePanel("ui").SetBounds(0.0, 1.0, 0.0, pangolin::Attach::Pix(UI_WIDTH)); + + pangolin::Var settings_pointCloudMode("ui.PC_mode",1,1,4,false); + + pangolin::Var settings_showKFCameras("ui.KFCam",false,true); + pangolin::Var settings_showCurrentCamera("ui.CurrCam",true,true); + pangolin::Var settings_showTrajectory("ui.Trajectory",true,true); + pangolin::Var settings_showFullTrajectory("ui.FullTrajectory",false,true); + pangolin::Var settings_showActiveConstraints("ui.ActiveConst",true,true); + pangolin::Var settings_showAllConstraints("ui.AllConst",false,true); + + // Added by Ivan Podmogilnyi 17.02.2022 + pangolin::Var ifDrawCube("ui.drawCube", false, true); + pangolin::Var changeAngleSign("ui.ChangeAngleSign", false, true); + pangolin::Var xSkew("ui.x", 0, -100, 100); + pangolin::Var ySkew("ui.y", 0, -100, 100); + pangolin::Var zSkew("ui.z", 0, -100, 100); + //End of append by Ivan + + pangolin::Var settings_show3D("ui.show3D",true,true); + pangolin::Var settings_showLiveDepth("ui.showDepth",true,true); + pangolin::Var settings_showLiveVideo("ui.showVideo",true,true); + pangolin::Var settings_showLiveResidual("ui.showResidual",false,true); + + pangolin::Var settings_showFramesWindow("ui.showFramesWindow",false,true); + pangolin::Var settings_showFullTracking("ui.showFullTracking",false,true); + pangolin::Var settings_showCoarseTracking("ui.showCoarseTracking",false,true); + + + pangolin::Var settings_sparsity("ui.sparsity",1,1,20,false); + pangolin::Var settings_scaledVarTH("ui.relVarTH",0.001,1e-10,1e10, true); + pangolin::Var settings_absVarTH("ui.absVarTH",0.001,1e-10,1e10, true); + pangolin::Var settings_minRelBS("ui.minRelativeBS",0.1,0,1, false); + + + pangolin::Var settings_resetButton("ui.Reset",false,false); + + + pangolin::Var settings_nPts("ui.activePoints",setting_desiredPointDensity, 50,5000, false); + pangolin::Var settings_nCandidates("ui.pointCandidates",setting_desiredImmatureDensity, 50,5000, false); + pangolin::Var settings_nMaxFrames("ui.maxFrames",setting_maxFrames, 4,10, false); + pangolin::Var settings_kfFrequency("ui.kfFrequency",setting_kfGlobalWeight,0.1,3, false); + pangolin::Var settings_gradHistAdd("ui.minGradAdd",setting_minGradHistAdd,0,15, false); + + pangolin::Var settings_trackFps("ui.Track fps",0,0,0,false); + pangolin::Var settings_mapFps("ui.KF fps",0,0,0,false); + + // Obtaining the calibration matrix + cv::Mat K = cv::Mat::eye(3, 3, cv::DataType::type); + CalibHessian hcalib = *Hcalib; + std::cout << "Hessian calib" << std::endl; + K.at(0,0) = 190.978477; + std::cout << "fx: " << K.at(0, 0); + K.at(1,1) = 190.973307; + std::cout << "fy: " << K.at(1, 1); + K.at(0,2) = 254.931706; + std::cout << "cx: " << K.at(0, 2); + K.at(1,2) = 256.897442; + std::cout << "cy: " << K.at (1, 2); + + // Obtaining the distortion coefficients + std::vector distCoeffs(5); + distCoeffs[0] = 0.003482389402; + distCoeffs[1] = 0.000715034845; + distCoeffs[2] = -0.002053236141; + distCoeffs[3] = 0.000202936736; + distCoeffs[4] = 0; + + // Default hooks for exiting (Esc) and fullscreen (tab). + while( !pangolin::ShouldQuit() && running ) + { + // Clear entire screen + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); + + if(setting_render_display3D) + { + // Activate efficiently by object + Visualization3D_display.Activate(Visualization3D_camera); + boost::unique_lock lk3d(model3DMutex); + //pangolin::glDrawColouredCube(); + // 17.02.2022 Added by Ivan Podmogilnyi. + //drawLine(xSkew, ySkew, zSkew); + if (ifDrawCube){ + drawCube(xSkew, ySkew, zSkew); + + std::cout << "draw cube in pangolin success"; + + cv::Point3d point1 = {xSkew, ySkew, zSkew}; + cv::Point3d point2 = {xSkew, ySkew+1, zSkew}; + cv::Point3d point3 = {xSkew+1, ySkew, zSkew}; + cv::Point3d point4 = {xSkew+1, ySkew+1, zSkew}; + cv::Point3d point5 = {xSkew, ySkew, zSkew+1}; + cv::Point3d point6 = {xSkew, ySkew+1, zSkew+1}; + cv::Point3d point7 = {xSkew+1, ySkew, zSkew+1}; + cv::Point3d point8 = {xSkew+1, ySkew+1, zSkew+1}; + + cv::Vec3b color1 = {133, 247, 208}; + cv::Vec3b color2 = {253, 59, 86}; + cv::Vec3b color3 = {147, 175, 215}; + cv::Vec3b color4 = {80, 209, 168}; + cv::Vec3b color5 = {154, 13, 88}; + cv::Vec3b color6 = {253, 59, 86}; + cv::Vec3b color7 = {5, 26, 72}; + cv::Vec3b color8 = {72, 182, 8}; + cv::Vec3b color9 = {28, 122, 71}; + cv::Vec3b color10 = {88, 153, 225}; + cv::Vec3b color11 = {184, 151, 253}; + cv::Vec3b color12 = {244, 207, 185}; + + std::vector objectPoints = {point1, point2, point3, point4, point5, point6, point7, point8}; + std::vector imagePoints; + + auto s = lastPose; + std::cout << "getting last pose success" << std::endl; + if (s != nullptr){ + bool write = true; + if(!s->poseValid) { + write=false; + } + std::cout << "is pose valid? " << write << std::endl; + // Obtaining the current camera pose + Eigen::Matrix rotMat = s->camToWorld.so3().matrix(); + Eigen::Vector3d rvec = rot2rvec(rotMat, changeAngleSign); + std::vector rVec(rvec.data(), rvec.data() + rvec.rows() * rvec.cols()); + Eigen::Vector3d tvec = s->camToWorld.translation(); + std::vector tVec(tvec.data(), tvec.data() + tvec.rows() * tvec.cols()); + + // Projecting points + cv::projectPoints(objectPoints, rVec, tVec, K, distCoeffs, imagePoints); + cv::Mat image(h, w, CV_16UC3); + // cv::cvtColor(image, image, cv::COLOR_BGR2RGB); + + // Getting the current image. + openImagesMutex.lock(); + for(int i=0;i(i, j)[0] = internalVideoImg->data[i*w + j][0]; + image.at(i, j)[1] = internalVideoImg->data[i*w + j][1]; + image.at(i, j)[2] = internalVideoImg->data[i*w + j][2]; + } + } + openImagesMutex.unlock(); + + // Drawing the line on the image + // cv::line(image, imagePoints[0], imagePoints[1], color1, 5); + // cv::line(image, imagePoints[0], imagePoints[2], color2, 5); + // cv::line(image, imagePoints[1], imagePoints[3], color3, 5); + // cv::line(image, imagePoints[2], imagePoints[3], color4, 5); + // cv::line(image, imagePoints[4], imagePoints[5], color5, 5); + // cv::line(image, imagePoints[4], imagePoints[6], color6, 5); + // cv::line(image, imagePoints[5], imagePoints[7], color7, 5); + // cv::line(image, imagePoints[6], imagePoints[7], color8, 5); + // cv::line(image, imagePoints[0], imagePoints[4], color9, 5); + // cv::line(image, imagePoints[1], imagePoints[5], color10, 5); + // cv::line(image, imagePoints[2], imagePoints[6], color11, 5); + // cv::line(image, imagePoints[3], imagePoints[7], color12, 5); + + cv::line(image, imagePoints[0], imagePoints[1], color1, 2); + cv::line(image, imagePoints[0], imagePoints[2], color1, 2); + cv::line(image, imagePoints[1], imagePoints[3], color1, 2); + cv::line(image, imagePoints[2], imagePoints[3], color1, 2); + cv::line(image, imagePoints[4], imagePoints[5], color1, 2); + cv::line(image, imagePoints[4], imagePoints[6], color1, 2); + cv::line(image, imagePoints[5], imagePoints[7], color1, 2); + cv::line(image, imagePoints[6], imagePoints[7], color1, 2); + cv::line(image, imagePoints[0], imagePoints[4], color1, 2); + cv::line(image, imagePoints[1], imagePoints[5], color1, 2); + cv::line(image, imagePoints[2], imagePoints[6], color1, 2); + cv::line(image, imagePoints[3], imagePoints[7], color1, 2); + + // Updating the current image and updating the inner image. + openImagesMutex.lock(); + for(int i=0;idata[i*w + j][0] = image.at(i, j)[0]; + internalVideoImg->data[i*w + j][1] = image.at(i, j)[1]; + internalVideoImg->data[i*w + j][2] = image.at(i, j)[2]; + } + } + // texVideo.Upload(internalVideoImg->data,GL_BGR,GL_UNSIGNED_BYTE); + openImagesMutex.unlock(); + } + } + + + int refreshed=0; + for(KeyFrameDisplay* fh : keyframes) + { + + float blue[3] = {0,0,1}; + if(this->settings_showKFCameras) fh->drawCam(1,blue,0.1); + + + refreshed += (int)(fh->refreshPC(refreshed < 10, this->settings_scaledVarTH, this->settings_absVarTH, + this->settings_pointCloudMode, this->settings_minRelBS, this->settings_sparsity)); + fh->drawPC(1); + } + if(this->settings_showCurrentCamera) currentCam->drawCam(2,0,0.2); + drawConstraints(); + lk3d.unlock(); + } + + + + openImagesMutex.lock(); + if(videoImgChanged) texVideo.Upload(internalVideoImg->data,GL_BGR,GL_UNSIGNED_BYTE); + if(kfImgChanged) texKFDepth.Upload(internalKFImg->data,GL_BGR,GL_UNSIGNED_BYTE); + if(resImgChanged) texResidual.Upload(internalResImg->data,GL_BGR,GL_UNSIGNED_BYTE); + videoImgChanged=kfImgChanged=resImgChanged=false; + openImagesMutex.unlock(); + + + + + // update fps counters + { + openImagesMutex.lock(); + float sd=0; + for(float d : lastNMappingMs) sd+=d; + settings_mapFps=lastNMappingMs.size()*1000.0f / sd; + openImagesMutex.unlock(); + } + { + model3DMutex.lock(); + float sd=0; + for(float d : lastNTrackingMs) sd+=d; + settings_trackFps = lastNTrackingMs.size()*1000.0f / sd; + model3DMutex.unlock(); + } + + + if(setting_render_displayVideo) + { + d_video.Activate(); + glColor4f(1.0f,1.0f,1.0f,1.0f); + texVideo.RenderToViewportFlipY(); + } + + if(setting_render_displayDepth) + { + d_kfDepth.Activate(); + glColor4f(1.0f,1.0f,1.0f,1.0f); + texKFDepth.RenderToViewportFlipY(); + } + + if(setting_render_displayResidual) + { + d_residual.Activate(); + glColor4f(1.0f,1.0f,1.0f,1.0f); + texResidual.RenderToViewportFlipY(); + } + + + // update parameters + this->settings_pointCloudMode = settings_pointCloudMode.Get(); + + this->settings_showActiveConstraints = settings_showActiveConstraints.Get(); + this->settings_showAllConstraints = settings_showAllConstraints.Get(); + this->settings_showCurrentCamera = settings_showCurrentCamera.Get(); + this->settings_showKFCameras = settings_showKFCameras.Get(); + this->settings_showTrajectory = settings_showTrajectory.Get(); + this->settings_showFullTrajectory = settings_showFullTrajectory.Get(); + + setting_render_display3D = settings_show3D.Get(); + setting_render_displayDepth = settings_showLiveDepth.Get(); + setting_render_displayVideo = settings_showLiveVideo.Get(); + setting_render_displayResidual = settings_showLiveResidual.Get(); + + setting_render_renderWindowFrames = settings_showFramesWindow.Get(); + setting_render_plotTrackingFull = settings_showFullTracking.Get(); + setting_render_displayCoarseTrackingFull = settings_showCoarseTracking.Get(); + + + this->settings_absVarTH = settings_absVarTH.Get(); + this->settings_scaledVarTH = settings_scaledVarTH.Get(); + this->settings_minRelBS = settings_minRelBS.Get(); + this->settings_sparsity = settings_sparsity.Get(); + + setting_desiredPointDensity = settings_nPts.Get(); + setting_desiredImmatureDensity = settings_nCandidates.Get(); + setting_maxFrames = settings_nMaxFrames.Get(); + setting_kfGlobalWeight = settings_kfFrequency.Get(); + setting_minGradHistAdd = settings_gradHistAdd.Get(); + + + if(settings_resetButton.Get()) + { + printf("RESET!\n"); + settings_resetButton.Reset(); + setting_fullResetRequested = true; + } + + // Swap frames and Process Events + pangolin::FinishFrame(); + + + if(needReset) reset_internal(); + } + + + printf("QUIT Pangolin thread!\n"); + printf("I'll just kill the whole process.\nSo Long, and Thanks for All the Fish!\n"); + + exit(1); +} + + +void PangolinDSOViewer::close() +{ + running = false; +} + +void PangolinDSOViewer::join() +{ + runThread.join(); + printf("JOINED Pangolin thread!\n"); +} + +void PangolinDSOViewer::reset() +{ + needReset = true; +} + +void PangolinDSOViewer::reset_internal() +{ + model3DMutex.lock(); + for(size_t i=0; isetBlack(); + internalKFImg->setBlack(); + internalResImg->setBlack(); + videoImgChanged= kfImgChanged= resImgChanged=true; + openImagesMutex.unlock(); + + needReset = false; +} + + +void PangolinDSOViewer::drawConstraints() +{ + if(settings_showAllConstraints) + { + // draw constraints + glLineWidth(1); + glBegin(GL_LINES); + + glColor3f(0,1,0); + glBegin(GL_LINES); + for(unsigned int i=0;i0 ) + { + Sophus::Vector3f t = connections[i].from->camToWorld.translation().cast(); + glVertex3f((GLfloat) t[0],(GLfloat) t[1], (GLfloat) t[2]); + t = connections[i].to->camToWorld.translation().cast(); + glVertex3f((GLfloat) t[0],(GLfloat) t[1], (GLfloat) t[2]); + } + } + glEnd(); + } + + if(settings_showActiveConstraints) + { + glLineWidth(3); + glColor3f(0,0,1); + glBegin(GL_LINES); + for(unsigned int i=0;i0) + { + Sophus::Vector3f t = connections[i].from->camToWorld.translation().cast(); + glVertex3f((GLfloat) t[0],(GLfloat) t[1], (GLfloat) t[2]); + t = connections[i].to->camToWorld.translation().cast(); + glVertex3f((GLfloat) t[0],(GLfloat) t[1], (GLfloat) t[2]); + } + } + glEnd(); + } + + if(settings_showTrajectory) + { + float colorRed[3] = {1,0,0}; + glColor3f(colorRed[0],colorRed[1],colorRed[2]); + glLineWidth(3); + + glBegin(GL_LINE_STRIP); + for(unsigned int i=0;icamToWorld.translation()[0], + (float)keyframes[i]->camToWorld.translation()[1], + (float)keyframes[i]->camToWorld.translation()[2]); + } + glEnd(); + } + + if(settings_showFullTrajectory) + { + float colorGreen[3] = {0,1,0}; + glColor3f(colorGreen[0],colorGreen[1],colorGreen[2]); + glLineWidth(3); + + glBegin(GL_LINE_STRIP); + for(unsigned int i=0;i, Eigen::aligned_allocator>> &connectivity) +{ + if(!setting_render_display3D) return; + if(disableAllDisplay) return; + + model3DMutex.lock(); + connections.resize(connectivity.size()); + int runningID=0; + int totalActFwd=0, totalActBwd=0, totalMargFwd=0, totalMargBwd=0; + for(std::pair p : connectivity) + { + int host = (int)(p.first >> 32); + int target = (int)(p.first & (uint64_t)0xFFFFFFFF); + + assert(host >= 0 && target >= 0); + if(host == target) + { + assert(p.second[0] == 0 && p.second[1] == 0); + continue; + } + + if(host > target) continue; + + connections[runningID].from = keyframesByKFID.count(host) == 0 ? 0 : keyframesByKFID[host]; + connections[runningID].to = keyframesByKFID.count(target) == 0 ? 0 : keyframesByKFID[target]; + connections[runningID].fwdAct = p.second[0]; + connections[runningID].fwdMarg = p.second[1]; + totalActFwd += p.second[0]; + totalMargFwd += p.second[1]; + + uint64_t inverseKey = (((uint64_t)target) << 32) + ((uint64_t)host); + Eigen::Vector2i st = connectivity.at(inverseKey); + connections[runningID].bwdAct = st[0]; + connections[runningID].bwdMarg = st[1]; + + totalActBwd += st[0]; + totalMargBwd += st[1]; + + runningID++; + } + + + model3DMutex.unlock(); +} +void PangolinDSOViewer::publishKeyframes( + std::vector &frames, + bool final, + CalibHessian* HCalib) +{ + if(!setting_render_display3D) return; + if(disableAllDisplay) return; + + boost::unique_lock lk(model3DMutex); + for(FrameHessian* fh : frames) + { + if(keyframesByKFID.find(fh->frameID) == keyframesByKFID.end()) + { + KeyFrameDisplay* kfd = new KeyFrameDisplay(); + keyframesByKFID[fh->frameID] = kfd; + keyframes.push_back(kfd); + } + keyframesByKFID[fh->frameID]->setFromKF(fh, HCalib); + } +} +void PangolinDSOViewer::publishCamPose(FrameShell* frame, + CalibHessian* HCalib) +{ + if(!setting_render_display3D) return; + if(disableAllDisplay) return; + + boost::unique_lock lk(model3DMutex); + struct timeval time_now; + gettimeofday(&time_now, NULL); + lastNTrackingMs.push_back(((time_now.tv_sec-last_track.tv_sec)*1000.0f + (time_now.tv_usec-last_track.tv_usec)/1000.0f)); + if(lastNTrackingMs.size() > 10) lastNTrackingMs.pop_front(); + last_track = time_now; + + if(!setting_render_display3D) return; + + currentCam->setFromF(frame, HCalib); + allFramePoses.push_back(frame->camToWorld.translation().cast()); +} + + +void PangolinDSOViewer::pushLiveFrame(FrameHessian* image) +{ + if(!setting_render_displayVideo) return; + if(disableAllDisplay) return; + + boost::unique_lock lk(openImagesMutex); + + for(int i=0;idata[i][0] = + internalVideoImg->data[i][1] = + internalVideoImg->data[i][2] = + image->dI[i][0]*0.8 > 255.0f ? 255.0 : image->dI[i][0]*0.8; + + videoImgChanged=true; +} + +bool PangolinDSOViewer::needPushDepthImage() +{ + return setting_render_displayDepth; +} +void PangolinDSOViewer::pushDepthImage(MinimalImageB3* image) +{ + + if(!setting_render_displayDepth) return; + if(disableAllDisplay) return; + + boost::unique_lock lk(openImagesMutex); + + struct timeval time_now; + gettimeofday(&time_now, NULL); + lastNMappingMs.push_back(((time_now.tv_sec-last_map.tv_sec)*1000.0f + (time_now.tv_usec-last_map.tv_usec)/1000.0f)); + if(lastNMappingMs.size() > 10) lastNMappingMs.pop_front(); + last_map = time_now; + + memcpy(internalKFImg->data, image->data, w*h*3); + kfImgChanged=true; +} + +} +} diff --git a/src/IOWrapper/Pangolin/PangolinDSOViewer.h b/src/IOWrapper/Pangolin/PangolinDSOViewer.h new file mode 100644 index 0000000..a26b8dd --- /dev/null +++ b/src/IOWrapper/Pangolin/PangolinDSOViewer.h @@ -0,0 +1,154 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#include +#include "boost/thread.hpp" +#include "util/MinimalImage.h" +#include "IOWrapper/Output3DWrapper.h" +#include +#include + +#include "opencv2/core/core.hpp" +#include "opencv2/imgproc/imgproc.hpp" +#include "opencv2/calib3d/calib3d.hpp" +#include "opencv2/highgui/highgui.hpp" + + + +namespace dso +{ + +class FrameHessian; +class CalibHessian; +class FrameShell; + + +namespace IOWrap +{ + +class KeyFrameDisplay; + +struct GraphConnection +{ + KeyFrameDisplay* from; + KeyFrameDisplay* to; + int fwdMarg, bwdMarg, fwdAct, bwdAct; +}; + + +class PangolinDSOViewer : public Output3DWrapper +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + PangolinDSOViewer(int w, int h, bool startRunThread=true); + virtual ~PangolinDSOViewer(); + + void run(); + void close(); + + void addImageToDisplay(std::string name, MinimalImageB3* image); + void clearAllImagesToDisplay(); + + + // ==================== Output3DWrapper Functionality ====================== + virtual void publishGraph(const std::map, Eigen::aligned_allocator>> &connectivity) override; + virtual void publishKeyframes( std::vector &frames, bool final, CalibHessian* HCalib) override; + virtual void publishCamPose(FrameShell* frame, CalibHessian* HCalib) override; + + + virtual void pushLiveFrame(FrameHessian* image) override; + virtual void pushDepthImage(MinimalImageB3* image) override; + virtual bool needPushDepthImage() override; + + virtual void join() override; + + virtual void reset() override; + + //Append + FrameShell* lastPose = nullptr; + CalibHessian* Hcalib = nullptr; + +private: + + bool needReset; + void reset_internal(); + void drawConstraints(); + + boost::thread runThread; + bool running; + int w,h; + + + + // images rendering + boost::mutex openImagesMutex; + MinimalImageB3* internalVideoImg; + MinimalImageB3* internalKFImg; + MinimalImageB3* internalResImg; + bool videoImgChanged, kfImgChanged, resImgChanged; + + + + // 3D model rendering + boost::mutex model3DMutex; + KeyFrameDisplay* currentCam; + std::vector keyframes; + std::vector> allFramePoses; + std::map keyframesByKFID; + std::vector> connections; + + + + // render settings + bool settings_showKFCameras; + bool settings_showCurrentCamera; + bool settings_showTrajectory; + bool settings_showFullTrajectory; + bool settings_showActiveConstraints; + bool settings_showAllConstraints; + + float settings_scaledVarTH; + float settings_absVarTH; + int settings_pointCloudMode; + float settings_minRelBS; + int settings_sparsity; + + + // timings + struct timeval last_track; + struct timeval last_map; + + + std::deque lastNTrackingMs; + std::deque lastNMappingMs; +}; + + + +} + + + +} diff --git a/src/OptimizationBackend/AccumulatedSCHessian.cpp b/src/OptimizationBackend/AccumulatedSCHessian.cpp new file mode 100644 index 0000000..30486fb --- /dev/null +++ b/src/OptimizationBackend/AccumulatedSCHessian.cpp @@ -0,0 +1,221 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#include "OptimizationBackend/AccumulatedSCHessian.h" +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" + +#include "FullSystem/HessianBlocks.h" + +namespace dso +{ + +void AccumulatedSCHessianSSE::addPoint(EFPoint* p, bool shiftPriorToZero, int tid) +{ + int ngoodres = 0; + for(EFResidual* r : p->residualsAll) if(r->isActive()) ngoodres++; + if(ngoodres==0) + { + p->HdiF=0; + p->bdSumF=0; + p->data->idepth_hessian=0; + p->data->maxRelBaseline=0; + return; + } + + float H = p->Hdd_accAF+p->Hdd_accLF+p->priorF; + if(H < 1e-10) H = 1e-10; + + p->data->idepth_hessian=H; + + p->HdiF = 1.0 / H; + p->bdSumF = p->bd_accAF + p->bd_accLF; + if(shiftPriorToZero) p->bdSumF += p->priorF*p->deltaF; + VecCf Hcd = p->Hcd_accAF + p->Hcd_accLF; + accHcc[tid].update(Hcd,Hcd,p->HdiF); + accbc[tid].update(Hcd, p->bdSumF * p->HdiF); + + assert(std::isfinite((float)(p->HdiF))); + + int nFrames2 = nframes[tid]*nframes[tid]; + for(EFResidual* r1 : p->residualsAll) + { + if(!r1->isActive()) continue; + int r1ht = r1->hostIDX + r1->targetIDX*nframes[tid]; + + for(EFResidual* r2 : p->residualsAll) + { + if(!r2->isActive()) continue; + + accD[tid][r1ht+r2->targetIDX*nFrames2].update(r1->JpJdF, r2->JpJdF, p->HdiF); + } + + accE[tid][r1ht].update(r1->JpJdF, Hcd, p->HdiF); + accEB[tid][r1ht].update(r1->JpJdF,p->HdiF*p->bdSumF); + } +} +void AccumulatedSCHessianSSE::stitchDoubleInternal( + MatXX* H, VecX* b, EnergyFunctional const * const EF, + int min, int max, Vec10* stats, int tid) +{ + int toAggregate = NUM_THREADS; + if(tid == -1) { toAggregate = 1; tid = 0; } // special case: if we dont do multithreading, dont aggregate. + if(min==max) return; + + + int nf = nframes[0]; + int nframes2 = nf*nf; + + for(int k=min;k(); + bp += accEB[tid2][ijIdx].A1m.cast(); + } + + H[tid].block<8,CPARS>(iIdx,0) += EF->adHost[ijIdx] * Hpc; + H[tid].block<8,CPARS>(jIdx,0) += EF->adTarget[ijIdx] * Hpc; + b[tid].segment<8>(iIdx) += EF->adHost[ijIdx] * bp; + b[tid].segment<8>(jIdx) += EF->adTarget[ijIdx] * bp; + + + + for(int k=0;k(); + } + + H[tid].block<8,8>(iIdx, iIdx) += EF->adHost[ijIdx] * accDM * EF->adHost[ikIdx].transpose(); + H[tid].block<8,8>(jIdx, kIdx) += EF->adTarget[ijIdx] * accDM * EF->adTarget[ikIdx].transpose(); + H[tid].block<8,8>(jIdx, iIdx) += EF->adTarget[ijIdx] * accDM * EF->adHost[ikIdx].transpose(); + H[tid].block<8,8>(iIdx, kIdx) += EF->adHost[ijIdx] * accDM * EF->adTarget[ikIdx].transpose(); + } + } + + if(min==0) + { + for(int tid2=0;tid2 < toAggregate;tid2++) + { + accHcc[tid2].finish(); + accbc[tid2].finish(); + H[tid].topLeftCorner() += accHcc[tid2].A1m.cast(); + b[tid].head() += accbc[tid2].A1m.cast(); + } + } + + +// // ----- new: copy transposed parts for calibration only. +// for(int h=0;h(0,hIdx).noalias() = H.block<8,4>(hIdx,0).transpose(); +// } +} + +void AccumulatedSCHessianSSE::stitchDouble(MatXX &H, VecX &b, EnergyFunctional const * const EF, int tid) +{ + + int nf = nframes[0]; + int nframes2 = nf*nf; + + H = MatXX::Zero(nf*8+CPARS, nf*8+CPARS); + b = VecX::Zero(nf*8+CPARS); + + + for(int i=0;i(); + Vec8 accEBV = accEB[tid][ijIdx].A1m.cast(); + + H.block<8,CPARS>(iIdx,0) += EF->adHost[ijIdx] * accEM; + H.block<8,CPARS>(jIdx,0) += EF->adTarget[ijIdx] * accEM; + + b.segment<8>(iIdx) += EF->adHost[ijIdx] * accEBV; + b.segment<8>(jIdx) += EF->adTarget[ijIdx] * accEBV; + + for(int k=0;k(); + + H.block<8,8>(iIdx, iIdx) += EF->adHost[ijIdx] * accDM * EF->adHost[ikIdx].transpose(); + + H.block<8,8>(jIdx, kIdx) += EF->adTarget[ijIdx] * accDM * EF->adTarget[ikIdx].transpose(); + + H.block<8,8>(jIdx, iIdx) += EF->adTarget[ijIdx] * accDM * EF->adHost[ikIdx].transpose(); + + H.block<8,8>(iIdx, kIdx) += EF->adHost[ijIdx] * accDM * EF->adTarget[ikIdx].transpose(); + } + } + + accHcc[tid].finish(); + accbc[tid].finish(); + H.topLeftCorner() = accHcc[tid].A1m.cast(); + b.head() = accbc[tid].A1m.cast(); + + // ----- new: copy transposed parts for calibration only. + for(int h=0;h(0,hIdx).noalias() = H.block<8,CPARS>(hIdx,0).transpose(); + } +} + +} diff --git a/src/OptimizationBackend/AccumulatedSCHessian.h b/src/OptimizationBackend/AccumulatedSCHessian.h new file mode 100644 index 0000000..703ed3b --- /dev/null +++ b/src/OptimizationBackend/AccumulatedSCHessian.h @@ -0,0 +1,159 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" +#include "util/IndexThreadReduce.h" +#include "OptimizationBackend/MatrixAccumulators.h" +#include "vector" +#include + +namespace dso +{ + +class EFPoint; +class EnergyFunctional; + + +class AccumulatedSCHessianSSE +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + inline AccumulatedSCHessianSSE() + { + for(int i=0;i[n*n]; + accEB[tid] = new AccumulatorX<8>[n*n]; + accD[tid] = new AccumulatorXX<8,8>[n*n*n]; + } + accbc[tid].initialize(); + accHcc[tid].initialize(); + + for(int i=0;i* red, MatXX &H, VecX &b, EnergyFunctional const * const EF, bool MT) + { + // sum up, splitting by bock in square. + if(MT) + { + MatXX Hs[NUM_THREADS]; + VecX bs[NUM_THREADS]; + for(int i=0;ireduce(boost::bind(&AccumulatedSCHessianSSE::stitchDoubleInternal, + this,Hs, bs, EF, _1, _2, _3, _4), 0, nframes[0]*nframes[0], 0); + + // sum up results + H = Hs[0]; + b = bs[0]; + + for(int i=1;i(0,hIdx).noalias() = H.block<8,CPARS>(hIdx,0).transpose(); + } + } + + + AccumulatorXX<8,CPARS>* accE[NUM_THREADS]; + AccumulatorX<8>* accEB[NUM_THREADS]; + AccumulatorXX<8,8>* accD[NUM_THREADS]; + AccumulatorXX accHcc[NUM_THREADS]; + AccumulatorX accbc[NUM_THREADS]; + int nframes[NUM_THREADS]; + + + void addPointsInternal( + std::vector* points, bool shiftPriorToZero, + int min=0, int max=1, Vec10* stats=0, int tid=0) + { + for(int i=min;i, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#include "OptimizationBackend/AccumulatedTopHessian.h" +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" +#include + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + + + +template +void AccumulatedTopHessianSSE::addPoint(EFPoint* p, EnergyFunctional const * const ef, int tid) // 0 = active, 1 = linearized, 2=marginalize +{ + + + assert(mode==0 || mode==1 || mode==2); + + VecCf dc = ef->cDeltaF; + float dd = p->deltaF; + + float bd_acc=0; + float Hdd_acc=0; + VecCf Hcd_acc = VecCf::Zero(); + + for(EFResidual* r : p->residualsAll) + { + if(mode==0) + { + if(r->isLinearized || !r->isActive()) continue; + } + if(mode==1) + { + if(!r->isLinearized || !r->isActive()) continue; + } + if(mode==2) + { + if(!r->isActive()) continue; + assert(r->isLinearized); + } + + + RawResidualJacobian* rJ = r->J; + int htIDX = r->hostIDX + r->targetIDX*nframes[tid]; + Mat18f dp = ef->adHTdeltaF[htIDX]; + + + + VecNRf resApprox; + if(mode==0) + resApprox = rJ->resF; + if(mode==2) + resApprox = r->res_toZeroF; + if(mode==1) + { + // compute Jp*delta + __m128 Jp_delta_x = _mm_set1_ps(rJ->Jpdxi[0].dot(dp.head<6>())+rJ->Jpdc[0].dot(dc)+rJ->Jpdd[0]*dd); + __m128 Jp_delta_y = _mm_set1_ps(rJ->Jpdxi[1].dot(dp.head<6>())+rJ->Jpdc[1].dot(dc)+rJ->Jpdd[1]*dd); + __m128 delta_a = _mm_set1_ps((float)(dp[6])); + __m128 delta_b = _mm_set1_ps((float)(dp[7])); + + for(int i=0;ires_toZeroF)+i); + rtz = _mm_add_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JIdx))+i),Jp_delta_x)); + rtz = _mm_add_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JIdx+1))+i),Jp_delta_y)); + rtz = _mm_add_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JabF))+i),delta_a)); + rtz = _mm_add_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JabF+1))+i),delta_b)); + _mm_store_ps(((float*)&resApprox)+i, rtz); + } + } + + // need to compute JI^T * r, and Jab^T * r. (both are 2-vectors). + Vec2f JI_r(0,0); + Vec2f Jab_r(0,0); + float rr=0; + for(int i=0;iJIdx[0][i]; + JI_r[1] += resApprox[i] *rJ->JIdx[1][i]; + Jab_r[0] += resApprox[i] *rJ->JabF[0][i]; + Jab_r[1] += resApprox[i] *rJ->JabF[1][i]; + rr += resApprox[i]*resApprox[i]; + } + + + acc[tid][htIDX].update( + rJ->Jpdc[0].data(), rJ->Jpdxi[0].data(), + rJ->Jpdc[1].data(), rJ->Jpdxi[1].data(), + rJ->JIdx2(0,0),rJ->JIdx2(0,1),rJ->JIdx2(1,1)); + + acc[tid][htIDX].updateBotRight( + rJ->Jab2(0,0), rJ->Jab2(0,1), Jab_r[0], + rJ->Jab2(1,1), Jab_r[1],rr); + + acc[tid][htIDX].updateTopRight( + rJ->Jpdc[0].data(), rJ->Jpdxi[0].data(), + rJ->Jpdc[1].data(), rJ->Jpdxi[1].data(), + rJ->JabJIdx(0,0), rJ->JabJIdx(0,1), + rJ->JabJIdx(1,0), rJ->JabJIdx(1,1), + JI_r[0], JI_r[1]); + + + Vec2f Ji2_Jpdd = rJ->JIdx2 * rJ->Jpdd; + bd_acc += JI_r[0]*rJ->Jpdd[0] + JI_r[1]*rJ->Jpdd[1]; + Hdd_acc += Ji2_Jpdd.dot(rJ->Jpdd); + Hcd_acc += rJ->Jpdc[0]*Ji2_Jpdd[0] + rJ->Jpdc[1]*Ji2_Jpdd[1]; + + nres[tid]++; + } + + if(mode==0) + { + p->Hdd_accAF = Hdd_acc; + p->bd_accAF = bd_acc; + p->Hcd_accAF = Hcd_acc; + } + if(mode==1 || mode==2) + { + p->Hdd_accLF = Hdd_acc; + p->bd_accLF = bd_acc; + p->Hcd_accLF = Hcd_acc; + } + if(mode==2) + { + p->Hcd_accAF.setZero(); + p->Hdd_accAF = 0; + p->bd_accAF = 0; + } + +} +template void AccumulatedTopHessianSSE::addPoint<0>(EFPoint* p, EnergyFunctional const * const ef, int tid); +template void AccumulatedTopHessianSSE::addPoint<1>(EFPoint* p, EnergyFunctional const * const ef, int tid); +template void AccumulatedTopHessianSSE::addPoint<2>(EFPoint* p, EnergyFunctional const * const ef, int tid); + + + + + + + + +void AccumulatedTopHessianSSE::stitchDouble(MatXX &H, VecX &b, EnergyFunctional const * const EF, bool usePrior, bool useDelta, int tid) +{ + H = MatXX::Zero(nframes[tid]*8+CPARS, nframes[tid]*8+CPARS); + b = VecX::Zero(nframes[tid]*8+CPARS); + + + for(int h=0;h(); + + + H.block<8,8>(hIdx, hIdx).noalias() += EF->adHost[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adHost[aidx].transpose(); + + H.block<8,8>(tIdx, tIdx).noalias() += EF->adTarget[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adTarget[aidx].transpose(); + + H.block<8,8>(hIdx, tIdx).noalias() += EF->adHost[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adTarget[aidx].transpose(); + + H.block<8,CPARS>(hIdx,0).noalias() += EF->adHost[aidx] * accH.block<8,CPARS>(CPARS,0); + + H.block<8,CPARS>(tIdx,0).noalias() += EF->adTarget[aidx] * accH.block<8,CPARS>(CPARS,0); + + H.topLeftCorner().noalias() += accH.block(0,0); + + b.segment<8>(hIdx).noalias() += EF->adHost[aidx] * accH.block<8,1>(CPARS,8+CPARS); + + b.segment<8>(tIdx).noalias() += EF->adTarget[aidx] * accH.block<8,1>(CPARS,8+CPARS); + + b.head().noalias() += accH.block(0,8+CPARS); + } + + + // ----- new: copy transposed parts. + for(int h=0;h(0,hIdx).noalias() = H.block<8,CPARS>(hIdx,0).transpose(); + + for(int t=h+1;t(hIdx, tIdx).noalias() += H.block<8,8>(tIdx, hIdx).transpose(); + H.block<8,8>(tIdx, hIdx).noalias() = H.block<8,8>(hIdx, tIdx).transpose(); + } + } + + + if(usePrior) + { + assert(useDelta); + H.diagonal().head() += EF->cPrior; + b.head() += EF->cPrior.cwiseProduct(EF->cDeltaF.cast()); + for(int h=0;h(CPARS+h*8) += EF->frames[h]->prior; + b.segment<8>(CPARS+h*8) += EF->frames[h]->prior.cwiseProduct(EF->frames[h]->delta_prior); + } + } +} + + +void AccumulatedTopHessianSSE::stitchDoubleInternal( + MatXX* H, VecX* b, EnergyFunctional const * const EF, bool usePrior, + int min, int max, Vec10* stats, int tid) +{ + int toAggregate = NUM_THREADS; + if(tid == -1) { toAggregate = 1; tid = 0; } // special case: if we dont do multithreading, dont aggregate. + if(min==max) return; + + + for(int k=min;k(); + } + + H[tid].block<8,8>(hIdx, hIdx).noalias() += EF->adHost[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adHost[aidx].transpose(); + + H[tid].block<8,8>(tIdx, tIdx).noalias() += EF->adTarget[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adTarget[aidx].transpose(); + + H[tid].block<8,8>(hIdx, tIdx).noalias() += EF->adHost[aidx] * accH.block<8,8>(CPARS,CPARS) * EF->adTarget[aidx].transpose(); + + H[tid].block<8,CPARS>(hIdx,0).noalias() += EF->adHost[aidx] * accH.block<8,CPARS>(CPARS,0); + + H[tid].block<8,CPARS>(tIdx,0).noalias() += EF->adTarget[aidx] * accH.block<8,CPARS>(CPARS,0); + + H[tid].topLeftCorner().noalias() += accH.block(0,0); + + b[tid].segment<8>(hIdx).noalias() += EF->adHost[aidx] * accH.block<8,1>(CPARS,CPARS+8); + + b[tid].segment<8>(tIdx).noalias() += EF->adTarget[aidx] * accH.block<8,1>(CPARS,CPARS+8); + + b[tid].head().noalias() += accH.block(0,CPARS+8); + + } + + + // only do this on one thread. + if(min==0 && usePrior) + { + H[tid].diagonal().head() += EF->cPrior; + b[tid].head() += EF->cPrior.cwiseProduct(EF->cDeltaF.cast()); + for(int h=0;h(CPARS+h*8) += EF->frames[h]->prior; + b[tid].segment<8>(CPARS+h*8) += EF->frames[h]->prior.cwiseProduct(EF->frames[h]->delta_prior); + + } + } +} + + + +} + + diff --git a/src/OptimizationBackend/AccumulatedTopHessian.h b/src/OptimizationBackend/AccumulatedTopHessian.h new file mode 100644 index 0000000..17e78ac --- /dev/null +++ b/src/OptimizationBackend/AccumulatedTopHessian.h @@ -0,0 +1,168 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" +#include "OptimizationBackend/MatrixAccumulators.h" +#include "vector" +#include +#include "util/IndexThreadReduce.h" + + +namespace dso +{ + +class EFPoint; +class EnergyFunctional; + + + +class AccumulatedTopHessianSSE +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + inline AccumulatedTopHessianSSE() + { + for(int tid=0;tid < NUM_THREADS; tid++) + { + nres[tid]=0; + acc[tid]=0; + nframes[tid]=0; + } + + }; + inline ~AccumulatedTopHessianSSE() + { + for(int tid=0;tid < NUM_THREADS; tid++) + { + if(acc[tid] != 0) delete[] acc[tid]; + } + }; + + inline void setZero(int nFrames, int min=0, int max=1, Vec10* stats=0, int tid=0) + { + + if(nFrames != nframes[tid]) + { + if(acc[tid] != 0) delete[] acc[tid]; +#if USE_XI_MODEL + acc[tid] = new Accumulator14[nFrames*nFrames]; +#else + acc[tid] = new AccumulatorApprox[nFrames*nFrames]; +#endif + } + + for(int i=0;i void addPoint(EFPoint* p, EnergyFunctional const * const ef, int tid=0); + + + + void stitchDoubleMT(IndexThreadReduce* red, MatXX &H, VecX &b, EnergyFunctional const * const EF, bool usePrior, bool MT) + { + // sum up, splitting by bock in square. + if(MT) + { + MatXX Hs[NUM_THREADS]; + VecX bs[NUM_THREADS]; + for(int i=0;ireduce(boost::bind(&AccumulatedTopHessianSSE::stitchDoubleInternal, + this,Hs, bs, EF, usePrior, _1, _2, _3, _4), 0, nframes[0]*nframes[0], 0); + + // sum up results + H = Hs[0]; + b = bs[0]; + + for(int i=1;i(0,hIdx).noalias() = H.block<8,CPARS>(hIdx,0).transpose(); + + for(int t=h+1;t(hIdx, tIdx).noalias() += H.block<8,8>(tIdx, hIdx).transpose(); + H.block<8,8>(tIdx, hIdx).noalias() = H.block<8,8>(hIdx, tIdx).transpose(); + } + } + } + + + + + int nframes[NUM_THREADS]; + + EIGEN_ALIGN16 AccumulatorApprox* acc[NUM_THREADS]; + + + int nres[NUM_THREADS]; + + + template void addPointsInternal( + std::vector* points, EnergyFunctional const * const ef, + int min=0, int max=1, Vec10* stats=0, int tid=0) + { + for(int i=min;i((*points)[i],ef,tid); + } + + + +private: + + void stitchDoubleInternal( + MatXX* H, VecX* b, EnergyFunctional const * const EF, bool usePrior, + int min, int max, Vec10* stats, int tid); +}; +} + diff --git a/src/OptimizationBackend/EnergyFunctional.cpp b/src/OptimizationBackend/EnergyFunctional.cpp new file mode 100644 index 0000000..ad2c375 --- /dev/null +++ b/src/OptimizationBackend/EnergyFunctional.cpp @@ -0,0 +1,946 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#include "OptimizationBackend/EnergyFunctional.h" +#include "OptimizationBackend/EnergyFunctionalStructs.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/Residuals.h" +#include "OptimizationBackend/AccumulatedSCHessian.h" +#include "OptimizationBackend/AccumulatedTopHessian.h" + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + + +bool EFAdjointsValid = false; +bool EFIndicesValid = false; +bool EFDeltaValid = false; + + +void EnergyFunctional::setAdjointsF(CalibHessian* Hcalib) +{ + + if(adHost != 0) delete[] adHost; + if(adTarget != 0) delete[] adTarget; + adHost = new Mat88[nFrames*nFrames]; + adTarget = new Mat88[nFrames*nFrames]; + + for(int h=0;hdata; + FrameHessian* target = frames[t]->data; + + SE3 hostToTarget = target->get_worldToCam_evalPT() * host->get_worldToCam_evalPT().inverse(); + + Mat88 AH = Mat88::Identity(); + Mat88 AT = Mat88::Identity(); + + AH.topLeftCorner<6,6>() = -hostToTarget.Adj().transpose(); + AT.topLeftCorner<6,6>() = Mat66::Identity(); + + + Vec2f affLL = AffLight::fromToVecExposure(host->ab_exposure, target->ab_exposure, host->aff_g2l_0(), target->aff_g2l_0()).cast(); + AT(6,6) = -affLL[0]; + AH(6,6) = affLL[0]; + AT(7,7) = -1; + AH(7,7) = affLL[0]; + + AH.block<3,8>(0,0) *= SCALE_XI_TRANS; + AH.block<3,8>(3,0) *= SCALE_XI_ROT; + AH.block<1,8>(6,0) *= SCALE_A; + AH.block<1,8>(7,0) *= SCALE_B; + AT.block<3,8>(0,0) *= SCALE_XI_TRANS; + AT.block<3,8>(3,0) *= SCALE_XI_ROT; + AT.block<1,8>(6,0) *= SCALE_A; + AT.block<1,8>(7,0) *= SCALE_B; + + adHost[h+t*nFrames] = AH; + adTarget[h+t*nFrames] = AT; + } + cPrior = VecC::Constant(setting_initialCalibHessian); + + + if(adHostF != 0) delete[] adHostF; + if(adTargetF != 0) delete[] adTargetF; + adHostF = new Mat88f[nFrames*nFrames]; + adTargetF = new Mat88f[nFrames*nFrames]; + + for(int h=0;h(); + adTargetF[h+t*nFrames] = adTarget[h+t*nFrames].cast(); + } + + cPriorF = cPrior.cast(); + + + EFAdjointsValid = true; +} + + + +EnergyFunctional::EnergyFunctional() +{ + adHost=0; + adTarget=0; + + + red=0; + + adHostF=0; + adTargetF=0; + adHTdeltaF=0; + + nFrames = nResiduals = nPoints = 0; + + HM = MatXX::Zero(CPARS,CPARS); + bM = VecX::Zero(CPARS); + + + accSSE_top_L = new AccumulatedTopHessianSSE(); + accSSE_top_A = new AccumulatedTopHessianSSE(); + accSSE_bot = new AccumulatedSCHessianSSE(); + + resInA = resInL = resInM = 0; + currentLambda=0; +} +EnergyFunctional::~EnergyFunctional() +{ + for(EFFrame* f : frames) + { + for(EFPoint* p : f->points) + { + for(EFResidual* r : p->residualsAll) + { + r->data->efResidual=0; + delete r; + } + p->data->efPoint=0; + delete p; + } + f->data->efFrame=0; + delete f; + } + + if(adHost != 0) delete[] adHost; + if(adTarget != 0) delete[] adTarget; + + + if(adHostF != 0) delete[] adHostF; + if(adTargetF != 0) delete[] adTargetF; + if(adHTdeltaF != 0) delete[] adHTdeltaF; + + + + delete accSSE_top_L; + delete accSSE_top_A; + delete accSSE_bot; +} + + + + +void EnergyFunctional::setDeltaF(CalibHessian* HCalib) +{ + if(adHTdeltaF != 0) delete[] adHTdeltaF; + adHTdeltaF = new Mat18f[nFrames*nFrames]; + for(int h=0;hdata->get_state_minus_stateZero().head<8>().cast().transpose() * adHostF[idx] + +frames[t]->data->get_state_minus_stateZero().head<8>().cast().transpose() * adTargetF[idx]; + } + + cDeltaF = HCalib->value_minus_value_zero.cast(); + for(EFFrame* f : frames) + { + f->delta = f->data->get_state_minus_stateZero().head<8>(); + f->delta_prior = (f->data->get_state() - f->data->getPriorZero()).head<8>(); + + for(EFPoint* p : f->points) + p->deltaF = p->data->idepth-p->data->idepth_zero; + } + + EFDeltaValid = true; +} + +// accumulates & shifts L. +void EnergyFunctional::accumulateAF_MT(MatXX &H, VecX &b, bool MT) +{ + if(MT) + { + red->reduce(boost::bind(&AccumulatedTopHessianSSE::setZero, accSSE_top_A, nFrames, _1, _2, _3, _4), 0, 0, 0); + red->reduce(boost::bind(&AccumulatedTopHessianSSE::addPointsInternal<0>, + accSSE_top_A, &allPoints, this, _1, _2, _3, _4), 0, allPoints.size(), 50); + accSSE_top_A->stitchDoubleMT(red,H,b,this,false,true); + resInA = accSSE_top_A->nres[0]; + } + else + { + accSSE_top_A->setZero(nFrames); + for(EFFrame* f : frames) + for(EFPoint* p : f->points) + accSSE_top_A->addPoint<0>(p,this); + accSSE_top_A->stitchDoubleMT(red,H,b,this,false,false); + resInA = accSSE_top_A->nres[0]; + } +} + +// accumulates & shifts L. +void EnergyFunctional::accumulateLF_MT(MatXX &H, VecX &b, bool MT) +{ + if(MT) + { + red->reduce(boost::bind(&AccumulatedTopHessianSSE::setZero, accSSE_top_L, nFrames, _1, _2, _3, _4), 0, 0, 0); + red->reduce(boost::bind(&AccumulatedTopHessianSSE::addPointsInternal<1>, + accSSE_top_L, &allPoints, this, _1, _2, _3, _4), 0, allPoints.size(), 50); + accSSE_top_L->stitchDoubleMT(red,H,b,this,true,true); + resInL = accSSE_top_L->nres[0]; + } + else + { + accSSE_top_L->setZero(nFrames); + for(EFFrame* f : frames) + for(EFPoint* p : f->points) + accSSE_top_L->addPoint<1>(p,this); + accSSE_top_L->stitchDoubleMT(red,H,b,this,true,false); + resInL = accSSE_top_L->nres[0]; + } +} + + + + + +void EnergyFunctional::accumulateSCF_MT(MatXX &H, VecX &b, bool MT) +{ + if(MT) + { + red->reduce(boost::bind(&AccumulatedSCHessianSSE::setZero, accSSE_bot, nFrames, _1, _2, _3, _4), 0, 0, 0); + red->reduce(boost::bind(&AccumulatedSCHessianSSE::addPointsInternal, + accSSE_bot, &allPoints, true, _1, _2, _3, _4), 0, allPoints.size(), 50); + accSSE_bot->stitchDoubleMT(red,H,b,this,true); + } + else + { + accSSE_bot->setZero(nFrames); + for(EFFrame* f : frames) + for(EFPoint* p : f->points) + accSSE_bot->addPoint(p, true); + accSSE_bot->stitchDoubleMT(red, H, b,this,false); + } +} + +void EnergyFunctional::resubstituteF_MT(VecX x, CalibHessian* HCalib, bool MT) +{ + assert(x.size() == CPARS+nFrames*8); + + VecXf xF = x.cast(); + HCalib->step = - x.head(); + + Mat18f* xAd = new Mat18f[nFrames*nFrames]; + VecCf cstep = xF.head(); + for(EFFrame* h : frames) + { + h->data->step.head<8>() = - x.segment<8>(CPARS+8*h->idx); + h->data->step.tail<2>().setZero(); + + for(EFFrame* t : frames) + xAd[nFrames*h->idx + t->idx] = xF.segment<8>(CPARS+8*h->idx).transpose() * adHostF[h->idx+nFrames*t->idx] + + xF.segment<8>(CPARS+8*t->idx).transpose() * adTargetF[h->idx+nFrames*t->idx]; + } + + if(MT) + red->reduce(boost::bind(&EnergyFunctional::resubstituteFPt, + this, cstep, xAd, _1, _2, _3, _4), 0, allPoints.size(), 50); + else + resubstituteFPt(cstep, xAd, 0, allPoints.size(), 0,0); + + delete[] xAd; +} + +void EnergyFunctional::resubstituteFPt( + const VecCf &xc, Mat18f* xAd, int min, int max, Vec10* stats, int tid) +{ + for(int k=min;kresidualsAll) if(r->isActive()) ngoodres++; + if(ngoodres==0) + { + p->data->step = 0; + continue; + } + float b = p->bdSumF; + b -= xc.dot(p->Hcd_accAF + p->Hcd_accLF); + + for(EFResidual* r : p->residualsAll) + { + if(!r->isActive()) continue; + b -= xAd[r->hostIDX*nFrames + r->targetIDX] * r->JpJdF; + } + + p->data->step = - b*p->HdiF; + assert(std::isfinite(p->data->step)); + } +} + + +double EnergyFunctional::calcMEnergyF() +{ + + assert(EFDeltaValid); + assert(EFAdjointsValid); + assert(EFIndicesValid); + + VecX delta = getStitchedDeltaF(); + return delta.dot(2*bM + HM*delta); +} + + +void EnergyFunctional::calcLEnergyPt(int min, int max, Vec10* stats, int tid) +{ + + Accumulator11 E; + E.initialize(); + VecCf dc = cDeltaF; + + for(int i=min;ideltaF; + + for(EFResidual* r : p->residualsAll) + { + if(!r->isLinearized || !r->isActive()) continue; + + Mat18f dp = adHTdeltaF[r->hostIDX+nFrames*r->targetIDX]; + RawResidualJacobian* rJ = r->J; + + + + // compute Jp*delta + float Jp_delta_x_1 = rJ->Jpdxi[0].dot(dp.head<6>()) + +rJ->Jpdc[0].dot(dc) + +rJ->Jpdd[0]*dd; + + float Jp_delta_y_1 = rJ->Jpdxi[1].dot(dp.head<6>()) + +rJ->Jpdc[1].dot(dc) + +rJ->Jpdd[1]*dd; + + __m128 Jp_delta_x = _mm_set1_ps(Jp_delta_x_1); + __m128 Jp_delta_y = _mm_set1_ps(Jp_delta_y_1); + __m128 delta_a = _mm_set1_ps((float)(dp[6])); + __m128 delta_b = _mm_set1_ps((float)(dp[7])); + + for(int i=0;i+3JIdx))+i),Jp_delta_x); + Jdelta = _mm_add_ps(Jdelta,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JIdx+1))+i),Jp_delta_y)); + Jdelta = _mm_add_ps(Jdelta,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JabF))+i),delta_a)); + Jdelta = _mm_add_ps(Jdelta,_mm_mul_ps(_mm_load_ps(((float*)(rJ->JabF+1))+i),delta_b)); + + __m128 r0 = _mm_load_ps(((float*)&r->res_toZeroF)+i); + r0 = _mm_add_ps(r0,r0); + r0 = _mm_add_ps(r0,Jdelta); + Jdelta = _mm_mul_ps(Jdelta,r0); + E.updateSSENoShift(Jdelta); + } + for(int i=((patternNum>>2)<<2); i < patternNum; i++) + { + float Jdelta = rJ->JIdx[0][i]*Jp_delta_x_1 + rJ->JIdx[1][i]*Jp_delta_y_1 + + rJ->JabF[0][i]*dp[6] + rJ->JabF[1][i]*dp[7]; + E.updateSingleNoShift((float)(Jdelta * (Jdelta + 2*r->res_toZeroF[i]))); + } + } + E.updateSingle(p->deltaF*p->deltaF*p->priorF); + } + E.finish(); + (*stats)[0] += E.A; +} + + + + +double EnergyFunctional::calcLEnergyF_MT() +{ + assert(EFDeltaValid); + assert(EFAdjointsValid); + assert(EFIndicesValid); + + double E = 0; + for(EFFrame* f : frames) + E += f->delta_prior.cwiseProduct(f->prior).dot(f->delta_prior); + + E += cDeltaF.cwiseProduct(cPriorF).dot(cDeltaF); + + red->reduce(boost::bind(&EnergyFunctional::calcLEnergyPt, + this, _1, _2, _3, _4), 0, allPoints.size(), 50); + + return E+red->stats[0]; +} + + + +EFResidual* EnergyFunctional::insertResidual(PointFrameResidual* r) +{ + EFResidual* efr = new EFResidual(r, r->point->efPoint, r->host->efFrame, r->target->efFrame); + efr->idxInAll = r->point->efPoint->residualsAll.size(); + r->point->efPoint->residualsAll.push_back(efr); + + connectivityMap[(((uint64_t)efr->host->frameID) << 32) + ((uint64_t)efr->target->frameID)][0]++; + + nResiduals++; + r->efResidual = efr; + return efr; +} +EFFrame* EnergyFunctional::insertFrame(FrameHessian* fh, CalibHessian* Hcalib) +{ + EFFrame* eff = new EFFrame(fh); + eff->idx = frames.size(); + frames.push_back(eff); + + nFrames++; + fh->efFrame = eff; + + assert(HM.cols() == 8*nFrames+CPARS-8); + bM.conservativeResize(8*nFrames+CPARS); + HM.conservativeResize(8*nFrames+CPARS,8*nFrames+CPARS); + bM.tail<8>().setZero(); + HM.rightCols<8>().setZero(); + HM.bottomRows<8>().setZero(); + + EFIndicesValid = false; + EFAdjointsValid=false; + EFDeltaValid=false; + + setAdjointsF(Hcalib); + makeIDX(); + + + for(EFFrame* fh2 : frames) + { + connectivityMap[(((uint64_t)eff->frameID) << 32) + ((uint64_t)fh2->frameID)] = Eigen::Vector2i(0,0); + if(fh2 != eff) + connectivityMap[(((uint64_t)fh2->frameID) << 32) + ((uint64_t)eff->frameID)] = Eigen::Vector2i(0,0); + } + + return eff; +} +EFPoint* EnergyFunctional::insertPoint(PointHessian* ph) +{ + EFPoint* efp = new EFPoint(ph, ph->host->efFrame); + efp->idxInPoints = ph->host->efFrame->points.size(); + ph->host->efFrame->points.push_back(efp); + + nPoints++; + ph->efPoint = efp; + + EFIndicesValid = false; + + return efp; +} + + +void EnergyFunctional::dropResidual(EFResidual* r) +{ + EFPoint* p = r->point; + assert(r == p->residualsAll[r->idxInAll]); + + p->residualsAll[r->idxInAll] = p->residualsAll.back(); + p->residualsAll[r->idxInAll]->idxInAll = r->idxInAll; + p->residualsAll.pop_back(); + + + if(r->isActive()) + r->host->data->shell->statistics_goodResOnThis++; + else + r->host->data->shell->statistics_outlierResOnThis++; + + + connectivityMap[(((uint64_t)r->host->frameID) << 32) + ((uint64_t)r->target->frameID)][0]--; + nResiduals--; + r->data->efResidual=0; + delete r; +} +void EnergyFunctional::marginalizeFrame(EFFrame* fh) +{ + + assert(EFDeltaValid); + assert(EFAdjointsValid); + assert(EFIndicesValid); + + assert((int)fh->points.size()==0); + int ndim = nFrames*8+CPARS-8;// new dimension + int odim = nFrames*8+CPARS;// old dimension + + +// VecX eigenvaluesPre = HM.eigenvalues().real(); +// std::sort(eigenvaluesPre.data(), eigenvaluesPre.data()+eigenvaluesPre.size()); +// + + + + if((int)fh->idx != (int)frames.size()-1) + { + int io = fh->idx*8+CPARS; // index of frame to move to end + int ntail = 8*(nFrames-fh->idx-1); + assert((io+8+ntail) == nFrames*8+CPARS); + + Vec8 bTmp = bM.segment<8>(io); + VecX tailTMP = bM.tail(ntail); + bM.segment(io,ntail) = tailTMP; + bM.tail<8>() = bTmp; + + MatXX HtmpCol = HM.block(0,io,odim,8); + MatXX rightColsTmp = HM.rightCols(ntail); + HM.block(0,io,odim,ntail) = rightColsTmp; + HM.rightCols(8) = HtmpCol; + + MatXX HtmpRow = HM.block(io,0,8,odim); + MatXX botRowsTmp = HM.bottomRows(ntail); + HM.block(io,0,ntail,odim) = botRowsTmp; + HM.bottomRows(8) = HtmpRow; + } + + +// // marginalize. First add prior here, instead of to active. + HM.bottomRightCorner<8,8>().diagonal() += fh->prior; + bM.tail<8>() += fh->prior.cwiseProduct(fh->delta_prior); + + + +// std::cout << std::setprecision(16) << "HMPre:\n" << HM << "\n\n"; + + + VecX SVec = (HM.diagonal().cwiseAbs()+VecX::Constant(HM.cols(), 10)).cwiseSqrt(); + VecX SVecI = SVec.cwiseInverse(); + + +// std::cout << std::setprecision(16) << "SVec: " << SVec.transpose() << "\n\n"; +// std::cout << std::setprecision(16) << "SVecI: " << SVecI.transpose() << "\n\n"; + + // scale! + MatXX HMScaled = SVecI.asDiagonal() * HM * SVecI.asDiagonal(); + VecX bMScaled = SVecI.asDiagonal() * bM; + + // invert bottom part! + Mat88 hpi = HMScaled.bottomRightCorner<8,8>(); + hpi = 0.5f*(hpi+hpi); + hpi = hpi.inverse(); + hpi = 0.5f*(hpi+hpi); + + // schur-complement! + MatXX bli = HMScaled.bottomLeftCorner(8,ndim).transpose() * hpi; + HMScaled.topLeftCorner(ndim,ndim).noalias() -= bli * HMScaled.bottomLeftCorner(8,ndim); + bMScaled.head(ndim).noalias() -= bli*bMScaled.tail<8>(); + + //unscale! + HMScaled = SVec.asDiagonal() * HMScaled * SVec.asDiagonal(); + bMScaled = SVec.asDiagonal() * bMScaled; + + // set. + HM = 0.5*(HMScaled.topLeftCorner(ndim,ndim) + HMScaled.topLeftCorner(ndim,ndim).transpose()); + bM = bMScaled.head(ndim); + + // remove from vector, without changing the order! + for(unsigned int i=fh->idx; i+1idx = i; + } + frames.pop_back(); + nFrames--; + fh->data->efFrame=0; + + assert((int)frames.size()*8+CPARS == (int)HM.rows()); + assert((int)frames.size()*8+CPARS == (int)HM.cols()); + assert((int)frames.size()*8+CPARS == (int)bM.size()); + assert((int)frames.size() == (int)nFrames); + + + + +// VecX eigenvaluesPost = HM.eigenvalues().real(); +// std::sort(eigenvaluesPost.data(), eigenvaluesPost.data()+eigenvaluesPost.size()); + +// std::cout << std::setprecision(16) << "HMPost:\n" << HM << "\n\n"; + +// std::cout << "EigPre:: " << eigenvaluesPre.transpose() << "\n"; +// std::cout << "EigPost: " << eigenvaluesPost.transpose() << "\n"; + + EFIndicesValid = false; + EFAdjointsValid=false; + EFDeltaValid=false; + + makeIDX(); + delete fh; +} + + + + +void EnergyFunctional::marginalizePointsF() +{ + assert(EFDeltaValid); + assert(EFAdjointsValid); + assert(EFIndicesValid); + + + allPointsToMarg.clear(); + for(EFFrame* f : frames) + { + for(int i=0;i<(int)f->points.size();i++) + { + EFPoint* p = f->points[i]; + if(p->stateFlag == EFPointStatus::PS_MARGINALIZE) + { + p->priorF *= setting_idepthFixPriorMargFac; + for(EFResidual* r : p->residualsAll) + if(r->isActive()) + connectivityMap[(((uint64_t)r->host->frameID) << 32) + ((uint64_t)r->target->frameID)][1]++; + allPointsToMarg.push_back(p); + } + } + } + + accSSE_bot->setZero(nFrames); + accSSE_top_A->setZero(nFrames); + for(EFPoint* p : allPointsToMarg) + { + accSSE_top_A->addPoint<2>(p,this); + accSSE_bot->addPoint(p,false); + removePoint(p); + } + MatXX M, Msc; + VecX Mb, Mbsc; + accSSE_top_A->stitchDouble(M,Mb,this,false,false); + accSSE_bot->stitchDouble(Msc,Mbsc,this); + + resInM+= accSSE_top_A->nres[0]; + + MatXX H = M-Msc; + VecX b = Mb-Mbsc; + + if(setting_solverMode & SOLVER_ORTHOGONALIZE_POINTMARG) + { + // have a look if prior is there. + bool haveFirstFrame = false; + for(EFFrame* f : frames) if(f->frameID==0) haveFirstFrame=true; + + if(!haveFirstFrame) + orthogonalize(&b, &H); + + } + + HM += setting_margWeightFac*H; + bM += setting_margWeightFac*b; + + if(setting_solverMode & SOLVER_ORTHOGONALIZE_FULL) + orthogonalize(&bM, &HM); + + EFIndicesValid = false; + makeIDX(); +} + +void EnergyFunctional::dropPointsF() +{ + + + for(EFFrame* f : frames) + { + for(int i=0;i<(int)f->points.size();i++) + { + EFPoint* p = f->points[i]; + if(p->stateFlag == EFPointStatus::PS_DROP) + { + removePoint(p); + i--; + } + } + } + + EFIndicesValid = false; + makeIDX(); +} + + +void EnergyFunctional::removePoint(EFPoint* p) +{ + for(EFResidual* r : p->residualsAll) + dropResidual(r); + + EFFrame* h = p->host; + h->points[p->idxInPoints] = h->points.back(); + h->points[p->idxInPoints]->idxInPoints = p->idxInPoints; + h->points.pop_back(); + + nPoints--; + p->data->efPoint = 0; + + EFIndicesValid = false; + + delete p; +} + +void EnergyFunctional::orthogonalize(VecX* b, MatXX* H) +{ +// VecX eigenvaluesPre = H.eigenvalues().real(); +// std::sort(eigenvaluesPre.data(), eigenvaluesPre.data()+eigenvaluesPre.size()); +// std::cout << "EigPre:: " << eigenvaluesPre.transpose() << "\n"; + + + // decide to which nullspaces to orthogonalize. + std::vector ns; + ns.insert(ns.end(), lastNullspaces_pose.begin(), lastNullspaces_pose.end()); + ns.insert(ns.end(), lastNullspaces_scale.begin(), lastNullspaces_scale.end()); +// if(setting_affineOptModeA <= 0) +// ns.insert(ns.end(), lastNullspaces_affA.begin(), lastNullspaces_affA.end()); +// if(setting_affineOptModeB <= 0) +// ns.insert(ns.end(), lastNullspaces_affB.begin(), lastNullspaces_affB.end()); + + + + + + // make Nullspaces matrix + MatXX N(ns[0].rows(), ns.size()); + for(unsigned int i=0;i svdNN(N, Eigen::ComputeThinU | Eigen::ComputeThinV); + + VecX SNN = svdNN.singularValues(); + double minSv = 1e10, maxSv = 0; + for(int i=0;i maxSv) maxSv = SNN[i]; + } + for(int i=0;i setting_solverModeDelta*maxSv) SNN[i] = 1.0 / SNN[i]; else SNN[i] = 0; } + + MatXX Npi = svdNN.matrixU() * SNN.asDiagonal() * svdNN.matrixV().transpose(); // [dim] x 9. + MatXX NNpiT = N*Npi.transpose(); // [dim] x [dim]. + MatXX NNpiTS = 0.5*(NNpiT + NNpiT.transpose()); // = N * (N' * N)^-1 * N'. + + if(b!=0) *b -= NNpiTS * *b; + if(H!=0) *H -= NNpiTS * *H * NNpiTS; + + +// std::cout << std::setprecision(16) << "Orth SV: " << SNN.reverse().transpose() << "\n"; + +// VecX eigenvaluesPost = H.eigenvalues().real(); +// std::sort(eigenvaluesPost.data(), eigenvaluesPost.data()+eigenvaluesPost.size()); +// std::cout << "EigPost:: " << eigenvaluesPost.transpose() << "\n"; + +} + + +void EnergyFunctional::solveSystemF(int iteration, double lambda, CalibHessian* HCalib) +{ + if(setting_solverMode & SOLVER_USE_GN) lambda=0; + if(setting_solverMode & SOLVER_FIX_LAMBDA) lambda = 1e-5; + + assert(EFDeltaValid); + assert(EFAdjointsValid); + assert(EFIndicesValid); + + MatXX HL_top, HA_top, H_sc; + VecX bL_top, bA_top, bM_top, b_sc; + + accumulateAF_MT(HA_top, bA_top,multiThreading); + + + accumulateLF_MT(HL_top, bL_top,multiThreading); + + + + accumulateSCF_MT(H_sc, b_sc,multiThreading); + + + + bM_top = (bM+ HM * getStitchedDeltaF()); + + + + + + + + MatXX HFinal_top; + VecX bFinal_top; + + if(setting_solverMode & SOLVER_ORTHOGONALIZE_SYSTEM) + { + // have a look if prior is there. + bool haveFirstFrame = false; + for(EFFrame* f : frames) if(f->frameID==0) haveFirstFrame=true; + + + + + MatXX HT_act = HL_top + HA_top - H_sc; + VecX bT_act = bL_top + bA_top - b_sc; + + + if(!haveFirstFrame) + orthogonalize(&bT_act, &HT_act); + + HFinal_top = HT_act + HM; + bFinal_top = bT_act + bM_top; + + + + + + lastHS = HFinal_top; + lastbS = bFinal_top; + + for(int i=0;i<8*nFrames+CPARS;i++) HFinal_top(i,i) *= (1+lambda); + + } + else + { + + + HFinal_top = HL_top + HM + HA_top; + bFinal_top = bL_top + bM_top + bA_top - b_sc; + + lastHS = HFinal_top - H_sc; + lastbS = bFinal_top; + + for(int i=0;i<8*nFrames+CPARS;i++) HFinal_top(i,i) *= (1+lambda); + HFinal_top -= H_sc * (1.0f/(1+lambda)); + } + + + + + + + VecX x; + if(setting_solverMode & SOLVER_SVD) + { + VecX SVecI = HFinal_top.diagonal().cwiseSqrt().cwiseInverse(); + MatXX HFinalScaled = SVecI.asDiagonal() * HFinal_top * SVecI.asDiagonal(); + VecX bFinalScaled = SVecI.asDiagonal() * bFinal_top; + Eigen::JacobiSVD svd(HFinalScaled, Eigen::ComputeThinU | Eigen::ComputeThinV); + + VecX S = svd.singularValues(); + double minSv = 1e10, maxSv = 0; + for(int i=0;i maxSv) maxSv = S[i]; + } + + VecX Ub = svd.matrixU().transpose()*bFinalScaled; + int setZero=0; + for(int i=0;i= Ub.size()-7)) + { Ub[i] = 0; setZero++; } + + else Ub[i] /= S[i]; + } + x = SVecI.asDiagonal() * svd.matrixV() * Ub; + + } + else + { + VecX SVecI = (HFinal_top.diagonal()+VecX::Constant(HFinal_top.cols(), 10)).cwiseSqrt().cwiseInverse(); + MatXX HFinalScaled = SVecI.asDiagonal() * HFinal_top * SVecI.asDiagonal(); + x = SVecI.asDiagonal() * HFinalScaled.ldlt().solve(SVecI.asDiagonal() * bFinal_top);// SVec.asDiagonal() * svd.matrixV() * Ub; + } + + + + if((setting_solverMode & SOLVER_ORTHOGONALIZE_X) || (iteration >= 2 && (setting_solverMode & SOLVER_ORTHOGONALIZE_X_LATER))) + { + VecX xOld = x; + orthogonalize(&x, 0); + } + + + lastX = x; + + + //resubstituteF(x, HCalib); + currentLambda= lambda; + resubstituteF_MT(x, HCalib,multiThreading); + currentLambda=0; + + +} +void EnergyFunctional::makeIDX() +{ + for(unsigned int idx=0;idxidx = idx; + + allPoints.clear(); + + for(EFFrame* f : frames) + for(EFPoint* p : f->points) + { + allPoints.push_back(p); + for(EFResidual* r : p->residualsAll) + { + r->hostIDX = r->host->idx; + r->targetIDX = r->target->idx; + } + } + + + EFIndicesValid=true; +} + + +VecX EnergyFunctional::getStitchedDeltaF() const +{ + VecX d = VecX(CPARS+nFrames*8); d.head() = cDeltaF.cast(); + for(int h=0;h(CPARS+8*h) = frames[h]->delta; + return d; +} + + + +} diff --git a/src/OptimizationBackend/EnergyFunctional.h b/src/OptimizationBackend/EnergyFunctional.h new file mode 100644 index 0000000..93e4630 --- /dev/null +++ b/src/OptimizationBackend/EnergyFunctional.h @@ -0,0 +1,162 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" +#include "util/IndexThreadReduce.h" +#include "vector" +#include +#include "map" + + +namespace dso +{ + +class PointFrameResidual; +class CalibHessian; +class FrameHessian; +class PointHessian; + + +class EFResidual; +class EFPoint; +class EFFrame; +class EnergyFunctional; +class AccumulatedTopHessian; +class AccumulatedTopHessianSSE; +class AccumulatedSCHessian; +class AccumulatedSCHessianSSE; + + +extern bool EFAdjointsValid; +extern bool EFIndicesValid; +extern bool EFDeltaValid; + + + +class EnergyFunctional { +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + friend class EFFrame; + friend class EFPoint; + friend class EFResidual; + friend class AccumulatedTopHessian; + friend class AccumulatedTopHessianSSE; + friend class AccumulatedSCHessian; + friend class AccumulatedSCHessianSSE; + + EnergyFunctional(); + ~EnergyFunctional(); + + + EFResidual* insertResidual(PointFrameResidual* r); + EFFrame* insertFrame(FrameHessian* fh, CalibHessian* Hcalib); + EFPoint* insertPoint(PointHessian* ph); + + void dropResidual(EFResidual* r); + void marginalizeFrame(EFFrame* fh); + void removePoint(EFPoint* ph); + + + + void marginalizePointsF(); + void dropPointsF(); + void solveSystemF(int iteration, double lambda, CalibHessian* HCalib); + double calcMEnergyF(); + double calcLEnergyF_MT(); + + + void makeIDX(); + + void setDeltaF(CalibHessian* HCalib); + + void setAdjointsF(CalibHessian* Hcalib); + + std::vector frames; + int nPoints, nFrames, nResiduals; + + MatXX HM; + VecX bM; + + int resInA, resInL, resInM; + MatXX lastHS; + VecX lastbS; + VecX lastX; + std::vector lastNullspaces_forLogging; + std::vector lastNullspaces_pose; + std::vector lastNullspaces_scale; + std::vector lastNullspaces_affA; + std::vector lastNullspaces_affB; + + IndexThreadReduce* red; + + + std::map, + Eigen::aligned_allocator> + > connectivityMap; + +private: + + VecX getStitchedDeltaF() const; + + void resubstituteF_MT(VecX x, CalibHessian* HCalib, bool MT); + void resubstituteFPt(const VecCf &xc, Mat18f* xAd, int min, int max, Vec10* stats, int tid); + + void accumulateAF_MT(MatXX &H, VecX &b, bool MT); + void accumulateLF_MT(MatXX &H, VecX &b, bool MT); + void accumulateSCF_MT(MatXX &H, VecX &b, bool MT); + + void calcLEnergyPt(int min, int max, Vec10* stats, int tid); + + void orthogonalize(VecX* b, MatXX* H); + Mat18f* adHTdeltaF; + + Mat88* adHost; + Mat88* adTarget; + + Mat88f* adHostF; + Mat88f* adTargetF; + + + VecC cPrior; + VecCf cDeltaF; + VecCf cPriorF; + + AccumulatedTopHessianSSE* accSSE_top_L; + AccumulatedTopHessianSSE* accSSE_top_A; + + + AccumulatedSCHessianSSE* accSSE_bot; + + std::vector allPoints; + std::vector allPointsToMarg; + + float currentLambda; +}; +} + diff --git a/src/OptimizationBackend/EnergyFunctionalStructs.cpp b/src/OptimizationBackend/EnergyFunctionalStructs.cpp new file mode 100644 index 0000000..20bd8aa --- /dev/null +++ b/src/OptimizationBackend/EnergyFunctionalStructs.cpp @@ -0,0 +1,116 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#include "OptimizationBackend/EnergyFunctionalStructs.h" +#include "OptimizationBackend/EnergyFunctional.h" +#include "FullSystem/FullSystem.h" +#include "FullSystem/HessianBlocks.h" +#include "FullSystem/Residuals.h" + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + + +void EFResidual::takeDataF() +{ + std::swap(J, data->J); + + Vec2f JI_JI_Jd = J->JIdx2 * J->Jpdd; + + for(int i=0;i<6;i++) + JpJdF[i] = J->Jpdxi[0][i]*JI_JI_Jd[0] + J->Jpdxi[1][i] * JI_JI_Jd[1]; + + JpJdF.segment<2>(6) = J->JabJIdx*J->Jpdd; +} + + +void EFFrame::takeData() +{ + prior = data->getPrior().head<8>(); + delta = data->get_state_minus_stateZero().head<8>(); + delta_prior = (data->get_state() - data->getPriorZero()).head<8>(); + + + +// Vec10 state_zero = data->get_state_zero(); +// state_zero.segment<3>(0) = SCALE_XI_TRANS * state_zero.segment<3>(0); +// state_zero.segment<3>(3) = SCALE_XI_ROT * state_zero.segment<3>(3); +// state_zero[6] = SCALE_A * state_zero[6]; +// state_zero[7] = SCALE_B * state_zero[7]; +// state_zero[8] = SCALE_A * state_zero[8]; +// state_zero[9] = SCALE_B * state_zero[9]; +// +// std::cout << "state_zero: " << state_zero.transpose() << "\n"; + + + assert(data->frameID != -1); + + frameID = data->frameID; +} + + + + +void EFPoint::takeData() +{ + priorF = data->hasDepthPrior ? setting_idepthFixPrior*SCALE_IDEPTH*SCALE_IDEPTH : 0; + if(setting_solverMode & SOLVER_REMOVE_POSEPRIOR) priorF=0; + + deltaF = data->idepth-data->idepth_zero; +} + + +void EFResidual::fixLinearizationF(EnergyFunctional* ef) +{ + Vec8f dp = ef->adHTdeltaF[hostIDX+ef->nFrames*targetIDX]; + + // compute Jp*delta + __m128 Jp_delta_x = _mm_set1_ps(J->Jpdxi[0].dot(dp.head<6>()) + +J->Jpdc[0].dot(ef->cDeltaF) + +J->Jpdd[0]*point->deltaF); + __m128 Jp_delta_y = _mm_set1_ps(J->Jpdxi[1].dot(dp.head<6>()) + +J->Jpdc[1].dot(ef->cDeltaF) + +J->Jpdd[1]*point->deltaF); + __m128 delta_a = _mm_set1_ps((float)(dp[6])); + __m128 delta_b = _mm_set1_ps((float)(dp[7])); + + for(int i=0;iresF)+i); + rtz = _mm_sub_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(J->JIdx))+i),Jp_delta_x)); + rtz = _mm_sub_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(J->JIdx+1))+i),Jp_delta_y)); + rtz = _mm_sub_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(J->JabF))+i),delta_a)); + rtz = _mm_sub_ps(rtz,_mm_mul_ps(_mm_load_ps(((float*)(J->JabF+1))+i),delta_b)); + _mm_store_ps(((float*)&res_toZeroF)+i, rtz); + } + + isLinearized = true; +} + +} diff --git a/src/OptimizationBackend/EnergyFunctionalStructs.h b/src/OptimizationBackend/EnergyFunctionalStructs.h new file mode 100644 index 0000000..49ae851 --- /dev/null +++ b/src/OptimizationBackend/EnergyFunctionalStructs.h @@ -0,0 +1,168 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" +#include "vector" +#include +#include "OptimizationBackend/RawResidualJacobian.h" + +namespace dso +{ + +class PointFrameResidual; +class CalibHessian; +class FrameHessian; +class PointHessian; + +class EFResidual; +class EFPoint; +class EFFrame; +class EnergyFunctional; + + + + + + +class EFResidual +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + inline EFResidual(PointFrameResidual* org, EFPoint* point_, EFFrame* host_, EFFrame* target_) : + data(org), point(point_), host(host_), target(target_) + { + isLinearized=false; + isActiveAndIsGoodNEW=false; + J = new RawResidualJacobian(); + assert(((long)this)%16==0); + assert(((long)J)%16==0); + } + inline ~EFResidual() + { + delete J; + } + + + void takeDataF(); + + + void fixLinearizationF(EnergyFunctional* ef); + + + // structural pointers + PointFrameResidual* data; + int hostIDX, targetIDX; + EFPoint* point; + EFFrame* host; + EFFrame* target; + int idxInAll; + + RawResidualJacobian* J; + + VecNRf res_toZeroF; + Vec8f JpJdF; + + + // status. + bool isLinearized; + + // if residual is not OOB & not OUTLIER & should be used during accumulations + bool isActiveAndIsGoodNEW; + inline const bool &isActive() const {return isActiveAndIsGoodNEW;} +}; + + +enum EFPointStatus {PS_GOOD=0, PS_MARGINALIZE, PS_DROP}; + +class EFPoint +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + EFPoint(PointHessian* d, EFFrame* host_) : data(d),host(host_) + { + takeData(); + stateFlag=EFPointStatus::PS_GOOD; + } + void takeData(); + + PointHessian* data; + + + + float priorF; + float deltaF; + + + // constant info (never changes in-between). + int idxInPoints; + EFFrame* host; + + // contains all residuals. + std::vector residualsAll; + + float bdSumF; + float HdiF; + float Hdd_accLF; + VecCf Hcd_accLF; + float bd_accLF; + float Hdd_accAF; + VecCf Hcd_accAF; + float bd_accAF; + + + EFPointStatus stateFlag; +}; + + + +class EFFrame +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + EFFrame(FrameHessian* d) : data(d) + { + takeData(); + } + void takeData(); + + + Vec8 prior; // prior hessian (diagonal) + Vec8 delta_prior; // = state-state_prior (E_prior = (delta_prior)' * diag(prior) * (delta_prior) + Vec8 delta; // state - state_zero. + + + + std::vector points; + FrameHessian* data; + int idx; // idx in frames. + + int frameID; +}; + +} + diff --git a/src/OptimizationBackend/MatrixAccumulators.h b/src/OptimizationBackend/MatrixAccumulators.h new file mode 100644 index 0000000..28ed13b --- /dev/null +++ b/src/OptimizationBackend/MatrixAccumulators.h @@ -0,0 +1,1346 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#include "util/NumType.h" + +#if !defined(__SSE3__) && !defined(__SSE2__) && !defined(__SSE1__) +#include "SSE2NEON.h" +#endif + +namespace dso +{ + + +template +class AccumulatorXX +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + Eigen::Matrix A; + Eigen::Matrix A1k; + Eigen::Matrix A1m; + size_t num; + + inline void initialize() + { + A.setZero(); + A1k.setZero(); + A1m.setZero(); + num = numIn1 = numIn1k = numIn1m = 0; + } + + inline void finish() + { + shiftUp(true); + num = numIn1 + numIn1k + numIn1m; + } + + + inline void update(const Eigen::Matrix &L, const Eigen::Matrix &R, float w) + { + A += w*L*R.transpose(); + numIn1++; + shiftUp(false); + } + +private: + float numIn1, numIn1k, numIn1m; + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + A1k += A; + A.setZero(); + numIn1k+=numIn1; + numIn1=0; + } + if(numIn1k > 1000 || force) + { + A1m += A1k; + A1k.setZero(); + numIn1m+=numIn1k; + numIn1k=0; + } + } +}; + +class Accumulator11 +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + float A; + size_t num; + + inline void initialize() + { + A=0; + memset(SSEData,0, sizeof(float)*4*1); + memset(SSEData1k,0, sizeof(float)*4*1); + memset(SSEData1m,0, sizeof(float)*4*1); + num = numIn1 = numIn1k = numIn1m = 0; + } + + inline void finish() + { + shiftUp(true); + A=SSEData1m[0+0] + SSEData1m[0+1] + SSEData1m[0+2] + SSEData1m[0+3]; + } + + + inline void updateSingle( + const float val) + { + SSEData[0] += val; + num++; numIn1++; + shiftUp(false); + } + + inline void updateSSE( + const __m128 val) + { + _mm_store_ps(SSEData, _mm_add_ps(_mm_load_ps(SSEData),val)); + num+=4; + numIn1++; + shiftUp(false); + } + + inline void updateSingleNoShift( + const float val) + { + SSEData[0] += val; + num++; numIn1++; + } + + inline void updateSSENoShift( + const __m128 val) + { + _mm_store_ps(SSEData, _mm_add_ps(_mm_load_ps(SSEData),val)); + num+=4; + numIn1++; + } + + + +private: + EIGEN_ALIGN16 float SSEData[4*1]; + EIGEN_ALIGN16 float SSEData1k[4*1]; + EIGEN_ALIGN16 float SSEData1m[4*1]; + float numIn1, numIn1k, numIn1m; + + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + _mm_store_ps(SSEData1k, _mm_add_ps(_mm_load_ps(SSEData),_mm_load_ps(SSEData1k))); + numIn1k+=numIn1; numIn1=0; + memset(SSEData,0, sizeof(float)*4*1); + } + + if(numIn1k > 1000 || force) + { + _mm_store_ps(SSEData1m, _mm_add_ps(_mm_load_ps(SSEData1k),_mm_load_ps(SSEData1m))); + numIn1m+=numIn1k; numIn1k=0; + memset(SSEData1k,0, sizeof(float)*4*1); + } + } +}; + + + + +template +class AccumulatorX +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + Eigen::Matrix A; + Eigen::Matrix A1k; + Eigen::Matrix A1m; + size_t num; + + inline void initialize() + { + A.setZero(); + A1k.setZero(); + A1m.setZero(); + num = numIn1 = numIn1k = numIn1m = 0; + } + + inline void finish() + { + shiftUp(true); + num = numIn1+numIn1k+numIn1m; + } + + + inline void update(const Eigen::Matrix &L, float w) + { + A += w*L; + numIn1++; + shiftUp(false); + } + + inline void updateNoWeight(const Eigen::Matrix &L) + { + A += L; + numIn1++; + shiftUp(false); + } + +private: + float numIn1, numIn1k, numIn1m; + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + A1k += A; + A.setZero(); + numIn1k+=numIn1; + numIn1=0; + } + if(numIn1k > 1000 || force) + { + A1m += A1k; + A1k.setZero(); + numIn1m+=numIn1k; + numIn1k=0; + } + } +}; + + + + + + + + +class Accumulator14 +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + Mat1414f H; + Vec14f b; + size_t num; + + inline void initialize() + { + H.setZero(); + b.setZero(); + memset(SSEData,0, sizeof(float)*4*105); + memset(SSEData1k,0, sizeof(float)*4*105); + memset(SSEData1m,0, sizeof(float)*4*105); + num = numIn1 = numIn1k = numIn1m = 0; + } + + inline void finish() + { + H.setZero(); + shiftUp(true); + assert(numIn1==0); + assert(numIn1k==0); + + int idx=0; + for(int r=0;r<14;r++) + for(int c=r;c<14;c++) + { + float d = SSEData1m[idx+0] + SSEData1m[idx+1] + SSEData1m[idx+2] + SSEData1m[idx+3]; + H(r,c) = H(c,r) = d; + idx+=4; + } + assert(idx==4*105); + num = numIn1 + numIn1k + numIn1m; + } + + + inline void updateSSE( + const __m128 J0,const __m128 J1, + const __m128 J2,const __m128 J3, + const __m128 J4,const __m128 J5, + const __m128 J6,const __m128 J7, + const __m128 J8,const __m128 J9, + const __m128 J10,const __m128 J11, + const __m128 J12,const __m128 J13) + { + float* pt=SSEData; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J0))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J8))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J9,J9))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J9,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J9,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J9,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J9,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J10,J10))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J10,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J10,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J10,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J11,J11))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J11,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J11,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J12,J12))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J12,J13))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J13,J13))); pt+=4; + + num+=4; + numIn1++; + shiftUp(false); + } + + + inline void updateSingle( + const float J0,const float J1, + const float J2,const float J3, + const float J4,const float J5, + const float J6,const float J7, + const float J8,const float J9, + const float J10,const float J11, + const float J12, const float J13, + int off=0) + { + float* pt=SSEData+off; + *pt += J0*J0; pt+=4; + *pt += J1*J0; pt+=4; + *pt += J2*J0; pt+=4; + *pt += J3*J0; pt+=4; + *pt += J4*J0; pt+=4; + *pt += J5*J0; pt+=4; + *pt += J6*J0; pt+=4; + *pt += J7*J0; pt+=4; + *pt += J8*J0; pt+=4; + *pt += J9*J0; pt+=4; + *pt += J10*J0; pt+=4; + *pt += J11*J0; pt+=4; + *pt += J12*J0; pt+=4; + *pt += J13*J0; pt+=4; + + *pt += J1*J1; pt+=4; + *pt += J2*J1; pt+=4; + *pt += J3*J1; pt+=4; + *pt += J4*J1; pt+=4; + *pt += J5*J1; pt+=4; + *pt += J6*J1; pt+=4; + *pt += J7*J1; pt+=4; + *pt += J8*J1; pt+=4; + *pt += J9*J1; pt+=4; + *pt += J10*J1; pt+=4; + *pt += J11*J1; pt+=4; + *pt += J12*J1; pt+=4; + *pt += J13*J1; pt+=4; + + *pt += J2*J2; pt+=4; + *pt += J3*J2; pt+=4; + *pt += J4*J2; pt+=4; + *pt += J5*J2; pt+=4; + *pt += J6*J2; pt+=4; + *pt += J7*J2; pt+=4; + *pt += J8*J2; pt+=4; + *pt += J9*J2; pt+=4; + *pt += J10*J2; pt+=4; + *pt += J11*J2; pt+=4; + *pt += J12*J2; pt+=4; + *pt += J13*J2; pt+=4; + + *pt += J3*J3; pt+=4; + *pt += J4*J3; pt+=4; + *pt += J5*J3; pt+=4; + *pt += J6*J3; pt+=4; + *pt += J7*J3; pt+=4; + *pt += J8*J3; pt+=4; + *pt += J9*J3; pt+=4; + *pt += J10*J3; pt+=4; + *pt += J11*J3; pt+=4; + *pt += J12*J3; pt+=4; + *pt += J13*J3; pt+=4; + + *pt += J4*J4; pt+=4; + *pt += J5*J4; pt+=4; + *pt += J6*J4; pt+=4; + *pt += J7*J4; pt+=4; + *pt += J8*J4; pt+=4; + *pt += J9*J4; pt+=4; + *pt += J10*J4; pt+=4; + *pt += J11*J4; pt+=4; + *pt += J12*J4; pt+=4; + *pt += J13*J4; pt+=4; + + *pt += J5*J5; pt+=4; + *pt += J6*J5; pt+=4; + *pt += J7*J5; pt+=4; + *pt += J8*J5; pt+=4; + *pt += J9*J5; pt+=4; + *pt += J10*J5; pt+=4; + *pt += J11*J5; pt+=4; + *pt += J12*J5; pt+=4; + *pt += J13*J5; pt+=4; + + *pt += J6*J6; pt+=4; + *pt += J7*J6; pt+=4; + *pt += J8*J6; pt+=4; + *pt += J9*J6; pt+=4; + *pt += J10*J6; pt+=4; + *pt += J11*J6; pt+=4; + *pt += J12*J6; pt+=4; + *pt += J13*J6; pt+=4; + + *pt += J7*J7; pt+=4; + *pt += J8*J7; pt+=4; + *pt += J9*J7; pt+=4; + *pt += J10*J7; pt+=4; + *pt += J11*J7; pt+=4; + *pt += J12*J7; pt+=4; + *pt += J13*J7; pt+=4; + + *pt += J8*J8; pt+=4; + *pt += J9*J8; pt+=4; + *pt += J10*J8; pt+=4; + *pt += J11*J8; pt+=4; + *pt += J12*J8; pt+=4; + *pt += J13*J8; pt+=4; + + *pt += J9*J9; pt+=4; + *pt += J10*J9; pt+=4; + *pt += J11*J9; pt+=4; + *pt += J12*J9; pt+=4; + *pt += J13*J9; pt+=4; + + *pt += J10*J10; pt+=4; + *pt += J11*J10; pt+=4; + *pt += J12*J10; pt+=4; + *pt += J13*J10; pt+=4; + + *pt += J11*J11; pt+=4; + *pt += J12*J11; pt+=4; + *pt += J13*J11; pt+=4; + + *pt += J12*J12; pt+=4; + *pt += J13*J12; pt+=4; + + *pt += J13*J13; pt+=4; + + num++; + numIn1++; + shiftUp(false); + } + + +private: + EIGEN_ALIGN16 float SSEData[4*105]; + EIGEN_ALIGN16 float SSEData1k[4*105]; + EIGEN_ALIGN16 float SSEData1m[4*105]; + float numIn1, numIn1k, numIn1m; + + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + for(int i=0;i<105;i++) + _mm_store_ps(SSEData1k+4*i, _mm_add_ps(_mm_load_ps(SSEData+4*i),_mm_load_ps(SSEData1k+4*i))); + numIn1k+=numIn1; + numIn1=0; + memset(SSEData,0, sizeof(float)*4*105); + } + + if(numIn1k > 1000 || force) + { + for(int i=0;i<105;i++) + _mm_store_ps(SSEData1m+4*i, _mm_add_ps(_mm_load_ps(SSEData1k+4*i),_mm_load_ps(SSEData1m+4*i))); + numIn1m+=numIn1k; + numIn1k=0; + memset(SSEData1k,0, sizeof(float)*4*105); + } + } +}; + + + + + +/* + * computes the outer sum of 10x2 matrices, weighted with a 2x2 matrix: + * H = [x y] * [a b; b c] * [x y]^T + * (assuming x,y are column-vectors). + * numerically robust to large sums. + */ +class AccumulatorApprox +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + Mat1313f H; + size_t num; + + inline void initialize() + { + memset(Data,0, sizeof(float)*60); + memset(Data1k,0, sizeof(float)*60); + memset(Data1m,0, sizeof(float)*60); + + memset(TopRight_Data,0, sizeof(float)*32); + memset(TopRight_Data1k,0, sizeof(float)*32); + memset(TopRight_Data1m,0, sizeof(float)*32); + + memset(BotRight_Data,0, sizeof(float)*8); + memset(BotRight_Data1k,0, sizeof(float)*8); + memset(BotRight_Data1m,0, sizeof(float)*8); + num = numIn1 = numIn1k = numIn1m = 0; + } + +inline void finish() +{ + H.setZero(); + shiftUp(true); + assert(numIn1==0); + assert(numIn1k==0); + + int idx=0; + for(int r=0;r<10;r++) + for(int c=r;c<10;c++) + { + H(r,c) = H(c,r) = Data1m[idx]; + idx++; + } + + idx=0; + for(int r=0;r<10;r++) + for(int c=0; c<3;c++) + { + H(r,c+10) = H(c+10,r) = TopRight_Data1m[idx]; + idx++; + } + + H(10,10) = BotRight_Data1m[0]; + H(10,11) = H(11,10) = BotRight_Data1m[1]; + H(10,12) = H(12,10) = BotRight_Data1m[2]; + H(11,11) = BotRight_Data1m[3]; + H(11,12) = H(12,11) = BotRight_Data1m[4]; + H(12,12) = BotRight_Data1m[5]; + + + num = numIn1 + numIn1k + numIn1m; +} + + + + + + inline void updateSSE( + const float* const x, + const float* const y, + const float a, + const float b, + const float c) + { + + Data[0] += a*x[0]*x[0] + c*y[0]*y[0] + b*(x[0]*y[0] + y[0]*x[0]); + Data[1] += a*x[1]*x[0] + c*y[1]*y[0] + b*(x[1]*y[0] + y[1]*x[0]); + Data[2] += a*x[2]*x[0] + c*y[2]*y[0] + b*(x[2]*y[0] + y[2]*x[0]); + Data[3] += a*x[3]*x[0] + c*y[3]*y[0] + b*(x[3]*y[0] + y[3]*x[0]); + Data[4] += a*x[4]*x[0] + c*y[4]*y[0] + b*(x[4]*y[0] + y[4]*x[0]); + Data[5] += a*x[5]*x[0] + c*y[5]*y[0] + b*(x[5]*y[0] + y[5]*x[0]); + Data[6] += a*x[6]*x[0] + c*y[6]*y[0] + b*(x[6]*y[0] + y[6]*x[0]); + Data[7] += a*x[7]*x[0] + c*y[7]*y[0] + b*(x[7]*y[0] + y[7]*x[0]); + Data[8] += a*x[8]*x[0] + c*y[8]*y[0] + b*(x[8]*y[0] + y[8]*x[0]); + Data[9] += a*x[9]*x[0] + c*y[9]*y[0] + b*(x[9]*y[0] + y[9]*x[0]); + + + Data[10] += a*x[1]*x[1] + c*y[1]*y[1] + b*(x[1]*y[1] + y[1]*x[1]); + Data[11] += a*x[2]*x[1] + c*y[2]*y[1] + b*(x[2]*y[1] + y[2]*x[1]); + Data[12] += a*x[3]*x[1] + c*y[3]*y[1] + b*(x[3]*y[1] + y[3]*x[1]); + Data[13] += a*x[4]*x[1] + c*y[4]*y[1] + b*(x[4]*y[1] + y[4]*x[1]); + Data[14] += a*x[5]*x[1] + c*y[5]*y[1] + b*(x[5]*y[1] + y[5]*x[1]); + Data[15] += a*x[6]*x[1] + c*y[6]*y[1] + b*(x[6]*y[1] + y[6]*x[1]); + Data[16] += a*x[7]*x[1] + c*y[7]*y[1] + b*(x[7]*y[1] + y[7]*x[1]); + Data[17] += a*x[8]*x[1] + c*y[8]*y[1] + b*(x[8]*y[1] + y[8]*x[1]); + Data[18] += a*x[9]*x[1] + c*y[9]*y[1] + b*(x[9]*y[1] + y[9]*x[1]); + + + + Data[19] += a*x[2]*x[2] + c*y[2]*y[2] + b*(x[2]*y[2] + y[2]*x[2]); + Data[20] += a*x[3]*x[2] + c*y[3]*y[2] + b*(x[3]*y[2] + y[3]*x[2]); + Data[21] += a*x[4]*x[2] + c*y[4]*y[2] + b*(x[4]*y[2] + y[4]*x[2]); + Data[22] += a*x[5]*x[2] + c*y[5]*y[2] + b*(x[5]*y[2] + y[5]*x[2]); + Data[23] += a*x[6]*x[2] + c*y[6]*y[2] + b*(x[6]*y[2] + y[6]*x[2]); + Data[24] += a*x[7]*x[2] + c*y[7]*y[2] + b*(x[7]*y[2] + y[7]*x[2]); + Data[25] += a*x[8]*x[2] + c*y[8]*y[2] + b*(x[8]*y[2] + y[8]*x[2]); + Data[26] += a*x[9]*x[2] + c*y[9]*y[2] + b*(x[9]*y[2] + y[9]*x[2]); + + + + Data[27] += a*x[3]*x[3] + c*y[3]*y[3] + b*(x[3]*y[3] + y[3]*x[3]); + Data[28] += a*x[4]*x[3] + c*y[4]*y[3] + b*(x[4]*y[3] + y[4]*x[3]); + Data[29] += a*x[5]*x[3] + c*y[5]*y[3] + b*(x[5]*y[3] + y[5]*x[3]); + Data[30] += a*x[6]*x[3] + c*y[6]*y[3] + b*(x[6]*y[3] + y[6]*x[3]); + Data[31] += a*x[7]*x[3] + c*y[7]*y[3] + b*(x[7]*y[3] + y[7]*x[3]); + Data[32] += a*x[8]*x[3] + c*y[8]*y[3] + b*(x[8]*y[3] + y[8]*x[3]); + Data[33] += a*x[9]*x[3] + c*y[9]*y[3] + b*(x[9]*y[3] + y[9]*x[3]); + + + + Data[34] += a*x[4]*x[4] + c*y[4]*y[4] + b*(x[4]*y[4] + y[4]*x[4]); + Data[35] += a*x[5]*x[4] + c*y[5]*y[4] + b*(x[5]*y[4] + y[5]*x[4]); + Data[36] += a*x[6]*x[4] + c*y[6]*y[4] + b*(x[6]*y[4] + y[6]*x[4]); + Data[37] += a*x[7]*x[4] + c*y[7]*y[4] + b*(x[7]*y[4] + y[7]*x[4]); + Data[38] += a*x[8]*x[4] + c*y[8]*y[4] + b*(x[8]*y[4] + y[8]*x[4]); + Data[39] += a*x[9]*x[4] + c*y[9]*y[4] + b*(x[9]*y[4] + y[9]*x[4]); + + + + Data[40] += a*x[5]*x[5] + c*y[5]*y[5] + b*(x[5]*y[5] + y[5]*x[5]); + Data[41] += a*x[6]*x[5] + c*y[6]*y[5] + b*(x[6]*y[5] + y[6]*x[5]); + Data[42] += a*x[7]*x[5] + c*y[7]*y[5] + b*(x[7]*y[5] + y[7]*x[5]); + Data[43] += a*x[8]*x[5] + c*y[8]*y[5] + b*(x[8]*y[5] + y[8]*x[5]); + Data[44] += a*x[9]*x[5] + c*y[9]*y[5] + b*(x[9]*y[5] + y[9]*x[5]); + + + Data[45] += a*x[6]*x[6] + c*y[6]*y[6] + b*(x[6]*y[6] + y[6]*x[6]); + Data[46] += a*x[7]*x[6] + c*y[7]*y[6] + b*(x[7]*y[6] + y[7]*x[6]); + Data[47] += a*x[8]*x[6] + c*y[8]*y[6] + b*(x[8]*y[6] + y[8]*x[6]); + Data[48] += a*x[9]*x[6] + c*y[9]*y[6] + b*(x[9]*y[6] + y[9]*x[6]); + + + Data[49] += a*x[7]*x[7] + c*y[7]*y[7] + b*(x[7]*y[7] + y[7]*x[7]); + Data[50] += a*x[8]*x[7] + c*y[8]*y[7] + b*(x[8]*y[7] + y[8]*x[7]); + Data[51] += a*x[9]*x[7] + c*y[9]*y[7] + b*(x[9]*y[7] + y[9]*x[7]); + + + Data[52] += a*x[8]*x[8] + c*y[8]*y[8] + b*(x[8]*y[8] + y[8]*x[8]); + Data[53] += a*x[9]*x[8] + c*y[9]*y[8] + b*(x[9]*y[8] + y[9]*x[8]); + + Data[54] += a*x[9]*x[9] + c*y[9]*y[9] + b*(x[9]*y[9] + y[9]*x[9]); + + + num++; + numIn1++; + shiftUp(false); + } + + + + +/* + * same as other method, just that x/y are composed of two parts, the first 4 elements are in x4/y4, the last 6 in x6/y6. + */ + inline void update( + const float* const x4, + const float* const x6, + const float* const y4, + const float* const y6, + const float a, + const float b, + const float c) + { + + Data[0] += a*x4[0]*x4[0] + c*y4[0]*y4[0] + b*(x4[0]*y4[0] + y4[0]*x4[0]); + Data[1] += a*x4[1]*x4[0] + c*y4[1]*y4[0] + b*(x4[1]*y4[0] + y4[1]*x4[0]); + Data[2] += a*x4[2]*x4[0] + c*y4[2]*y4[0] + b*(x4[2]*y4[0] + y4[2]*x4[0]); + Data[3] += a*x4[3]*x4[0] + c*y4[3]*y4[0] + b*(x4[3]*y4[0] + y4[3]*x4[0]); + Data[4] += a*x6[0]*x4[0] + c*y6[0]*y4[0] + b*(x6[0]*y4[0] + y6[0]*x4[0]); + Data[5] += a*x6[1]*x4[0] + c*y6[1]*y4[0] + b*(x6[1]*y4[0] + y6[1]*x4[0]); + Data[6] += a*x6[2]*x4[0] + c*y6[2]*y4[0] + b*(x6[2]*y4[0] + y6[2]*x4[0]); + Data[7] += a*x6[3]*x4[0] + c*y6[3]*y4[0] + b*(x6[3]*y4[0] + y6[3]*x4[0]); + Data[8] += a*x6[4]*x4[0] + c*y6[4]*y4[0] + b*(x6[4]*y4[0] + y6[4]*x4[0]); + Data[9] += a*x6[5]*x4[0] + c*y6[5]*y4[0] + b*(x6[5]*y4[0] + y6[5]*x4[0]); + + + + + Data[10] += a*x4[1]*x4[1] + c*y4[1]*y4[1] + b*(x4[1]*y4[1] + y4[1]*x4[1]); + Data[11] += a*x4[2]*x4[1] + c*y4[2]*y4[1] + b*(x4[2]*y4[1] + y4[2]*x4[1]); + Data[12] += a*x4[3]*x4[1] + c*y4[3]*y4[1] + b*(x4[3]*y4[1] + y4[3]*x4[1]); + Data[13] += a*x6[0]*x4[1] + c*y6[0]*y4[1] + b*(x6[0]*y4[1] + y6[0]*x4[1]); + Data[14] += a*x6[1]*x4[1] + c*y6[1]*y4[1] + b*(x6[1]*y4[1] + y6[1]*x4[1]); + Data[15] += a*x6[2]*x4[1] + c*y6[2]*y4[1] + b*(x6[2]*y4[1] + y6[2]*x4[1]); + Data[16] += a*x6[3]*x4[1] + c*y6[3]*y4[1] + b*(x6[3]*y4[1] + y6[3]*x4[1]); + Data[17] += a*x6[4]*x4[1] + c*y6[4]*y4[1] + b*(x6[4]*y4[1] + y6[4]*x4[1]); + Data[18] += a*x6[5]*x4[1] + c*y6[5]*y4[1] + b*(x6[5]*y4[1] + y6[5]*x4[1]); + + + + Data[19] += a*x4[2]*x4[2] + c*y4[2]*y4[2] + b*(x4[2]*y4[2] + y4[2]*x4[2]); + Data[20] += a*x4[3]*x4[2] + c*y4[3]*y4[2] + b*(x4[3]*y4[2] + y4[3]*x4[2]); + Data[21] += a*x6[0]*x4[2] + c*y6[0]*y4[2] + b*(x6[0]*y4[2] + y6[0]*x4[2]); + Data[22] += a*x6[1]*x4[2] + c*y6[1]*y4[2] + b*(x6[1]*y4[2] + y6[1]*x4[2]); + Data[23] += a*x6[2]*x4[2] + c*y6[2]*y4[2] + b*(x6[2]*y4[2] + y6[2]*x4[2]); + Data[24] += a*x6[3]*x4[2] + c*y6[3]*y4[2] + b*(x6[3]*y4[2] + y6[3]*x4[2]); + Data[25] += a*x6[4]*x4[2] + c*y6[4]*y4[2] + b*(x6[4]*y4[2] + y6[4]*x4[2]); + Data[26] += a*x6[5]*x4[2] + c*y6[5]*y4[2] + b*(x6[5]*y4[2] + y6[5]*x4[2]); + + + + Data[27] += a*x4[3]*x4[3] + c*y4[3]*y4[3] + b*(x4[3]*y4[3] + y4[3]*x4[3]); + Data[28] += a*x6[0]*x4[3] + c*y6[0]*y4[3] + b*(x6[0]*y4[3] + y6[0]*x4[3]); + Data[29] += a*x6[1]*x4[3] + c*y6[1]*y4[3] + b*(x6[1]*y4[3] + y6[1]*x4[3]); + Data[30] += a*x6[2]*x4[3] + c*y6[2]*y4[3] + b*(x6[2]*y4[3] + y6[2]*x4[3]); + Data[31] += a*x6[3]*x4[3] + c*y6[3]*y4[3] + b*(x6[3]*y4[3] + y6[3]*x4[3]); + Data[32] += a*x6[4]*x4[3] + c*y6[4]*y4[3] + b*(x6[4]*y4[3] + y6[4]*x4[3]); + Data[33] += a*x6[5]*x4[3] + c*y6[5]*y4[3] + b*(x6[5]*y4[3] + y6[5]*x4[3]); + + + + Data[34] += a*x6[0]*x6[0] + c*y6[0]*y6[0] + b*(x6[0]*y6[0] + y6[0]*x6[0]); + Data[35] += a*x6[1]*x6[0] + c*y6[1]*y6[0] + b*(x6[1]*y6[0] + y6[1]*x6[0]); + Data[36] += a*x6[2]*x6[0] + c*y6[2]*y6[0] + b*(x6[2]*y6[0] + y6[2]*x6[0]); + Data[37] += a*x6[3]*x6[0] + c*y6[3]*y6[0] + b*(x6[3]*y6[0] + y6[3]*x6[0]); + Data[38] += a*x6[4]*x6[0] + c*y6[4]*y6[0] + b*(x6[4]*y6[0] + y6[4]*x6[0]); + Data[39] += a*x6[5]*x6[0] + c*y6[5]*y6[0] + b*(x6[5]*y6[0] + y6[5]*x6[0]); + + + + Data[40] += a*x6[1]*x6[1] + c*y6[1]*y6[1] + b*(x6[1]*y6[1] + y6[1]*x6[1]); + Data[41] += a*x6[2]*x6[1] + c*y6[2]*y6[1] + b*(x6[2]*y6[1] + y6[2]*x6[1]); + Data[42] += a*x6[3]*x6[1] + c*y6[3]*y6[1] + b*(x6[3]*y6[1] + y6[3]*x6[1]); + Data[43] += a*x6[4]*x6[1] + c*y6[4]*y6[1] + b*(x6[4]*y6[1] + y6[4]*x6[1]); + Data[44] += a*x6[5]*x6[1] + c*y6[5]*y6[1] + b*(x6[5]*y6[1] + y6[5]*x6[1]); + + + Data[45] += a*x6[2]*x6[2] + c*y6[2]*y6[2] + b*(x6[2]*y6[2] + y6[2]*x6[2]); + Data[46] += a*x6[3]*x6[2] + c*y6[3]*y6[2] + b*(x6[3]*y6[2] + y6[3]*x6[2]); + Data[47] += a*x6[4]*x6[2] + c*y6[4]*y6[2] + b*(x6[4]*y6[2] + y6[4]*x6[2]); + Data[48] += a*x6[5]*x6[2] + c*y6[5]*y6[2] + b*(x6[5]*y6[2] + y6[5]*x6[2]); + + + Data[49] += a*x6[3]*x6[3] + c*y6[3]*y6[3] + b*(x6[3]*y6[3] + y6[3]*x6[3]); + Data[50] += a*x6[4]*x6[3] + c*y6[4]*y6[3] + b*(x6[4]*y6[3] + y6[4]*x6[3]); + Data[51] += a*x6[5]*x6[3] + c*y6[5]*y6[3] + b*(x6[5]*y6[3] + y6[5]*x6[3]); + + + Data[52] += a*x6[4]*x6[4] + c*y6[4]*y6[4] + b*(x6[4]*y6[4] + y6[4]*x6[4]); + Data[53] += a*x6[5]*x6[4] + c*y6[5]*y6[4] + b*(x6[5]*y6[4] + y6[5]*x6[4]); + + Data[54] += a*x6[5]*x6[5] + c*y6[5]*y6[5] + b*(x6[5]*y6[5] + y6[5]*x6[5]); + + + num++; + numIn1++; + shiftUp(false); + } + + + inline void updateTopRight( + const float* const x4, + const float* const x6, + const float* const y4, + const float* const y6, + const float TR00, const float TR10, + const float TR01, const float TR11, + const float TR02, const float TR12 ) + { + TopRight_Data[0] += x4[0]*TR00 + y4[0]*TR10; + TopRight_Data[1] += x4[0]*TR01 + y4[0]*TR11; + TopRight_Data[2] += x4[0]*TR02 + y4[0]*TR12; + + TopRight_Data[3] += x4[1]*TR00 + y4[1]*TR10; + TopRight_Data[4] += x4[1]*TR01 + y4[1]*TR11; + TopRight_Data[5] += x4[1]*TR02 + y4[1]*TR12; + + TopRight_Data[6] += x4[2]*TR00 + y4[2]*TR10; + TopRight_Data[7] += x4[2]*TR01 + y4[2]*TR11; + TopRight_Data[8] += x4[2]*TR02 + y4[2]*TR12; + + TopRight_Data[9] += x4[3]*TR00 + y4[3]*TR10; + TopRight_Data[10] += x4[3]*TR01 + y4[3]*TR11; + TopRight_Data[11] += x4[3]*TR02 + y4[3]*TR12; + + TopRight_Data[12] += x6[0]*TR00 + y6[0]*TR10; + TopRight_Data[13] += x6[0]*TR01 + y6[0]*TR11; + TopRight_Data[14] += x6[0]*TR02 + y6[0]*TR12; + + TopRight_Data[15] += x6[1]*TR00 + y6[1]*TR10; + TopRight_Data[16] += x6[1]*TR01 + y6[1]*TR11; + TopRight_Data[17] += x6[1]*TR02 + y6[1]*TR12; + + TopRight_Data[18] += x6[2]*TR00 + y6[2]*TR10; + TopRight_Data[19] += x6[2]*TR01 + y6[2]*TR11; + TopRight_Data[20] += x6[2]*TR02 + y6[2]*TR12; + + TopRight_Data[21] += x6[3]*TR00 + y6[3]*TR10; + TopRight_Data[22] += x6[3]*TR01 + y6[3]*TR11; + TopRight_Data[23] += x6[3]*TR02 + y6[3]*TR12; + + TopRight_Data[24] += x6[4]*TR00 + y6[4]*TR10; + TopRight_Data[25] += x6[4]*TR01 + y6[4]*TR11; + TopRight_Data[26] += x6[4]*TR02 + y6[4]*TR12; + + TopRight_Data[27] += x6[5]*TR00 + y6[5]*TR10; + TopRight_Data[28] += x6[5]*TR01 + y6[5]*TR11; + TopRight_Data[29] += x6[5]*TR02 + y6[5]*TR12; + + } + + inline void updateBotRight( + const float a00, + const float a01, + const float a02, + const float a11, + const float a12, + const float a22) + { + BotRight_Data[0] += a00; + BotRight_Data[1] += a01; + BotRight_Data[2] += a02; + BotRight_Data[3] += a11; + BotRight_Data[4] += a12; + BotRight_Data[5] += a22; + } + + + +private: + EIGEN_ALIGN16 float Data[60]; + EIGEN_ALIGN16 float Data1k[60]; + EIGEN_ALIGN16 float Data1m[60]; + + EIGEN_ALIGN16 float TopRight_Data[32]; + EIGEN_ALIGN16 float TopRight_Data1k[32]; + EIGEN_ALIGN16 float TopRight_Data1m[32]; + + EIGEN_ALIGN16 float BotRight_Data[8]; + EIGEN_ALIGN16 float BotRight_Data1k[8]; + EIGEN_ALIGN16 float BotRight_Data1m[8]; + + + float numIn1, numIn1k, numIn1m; + + + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + for(int i=0;i<60;i+=4) + _mm_store_ps(Data1k+i, _mm_add_ps(_mm_load_ps(Data+i),_mm_load_ps(Data1k+i))); + for(int i=0;i<32;i+=4) + _mm_store_ps(TopRight_Data1k+i, _mm_add_ps(_mm_load_ps(TopRight_Data+i),_mm_load_ps(TopRight_Data1k+i))); + for(int i=0;i<8;i+=4) + _mm_store_ps(BotRight_Data1k+i, _mm_add_ps(_mm_load_ps(BotRight_Data+i),_mm_load_ps(BotRight_Data1k+i))); + + + numIn1k+=numIn1; + numIn1=0; + memset(Data,0, sizeof(float)*60); + memset(TopRight_Data,0, sizeof(float)*32); + memset(BotRight_Data,0, sizeof(float)*8); + } + + if(numIn1k > 1000 || force) + { + for(int i=0;i<60;i+=4) + _mm_store_ps(Data1m+i, _mm_add_ps(_mm_load_ps(Data1k+i),_mm_load_ps(Data1m+i))); + for(int i=0;i<32;i+=4) + _mm_store_ps(TopRight_Data1m+i, _mm_add_ps(_mm_load_ps(TopRight_Data1k+i),_mm_load_ps(TopRight_Data1m+i))); + for(int i=0;i<8;i+=4) + _mm_store_ps(BotRight_Data1m+i, _mm_add_ps(_mm_load_ps(BotRight_Data1k+i),_mm_load_ps(BotRight_Data1m+i))); + + numIn1m+=numIn1k; + numIn1k=0; + memset(Data1k,0, sizeof(float)*60); + memset(TopRight_Data1k,0, sizeof(float)*32); + memset(BotRight_Data1k,0, sizeof(float)*8); + } + } +}; + + + + + + + + + +class Accumulator9 +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + Mat99f H; + Vec9f b; + size_t num; + + inline void initialize() + { + H.setZero(); + b.setZero(); + memset(SSEData,0, sizeof(float)*4*45); + memset(SSEData1k,0, sizeof(float)*4*45); + memset(SSEData1m,0, sizeof(float)*4*45); + num = numIn1 = numIn1k = numIn1m = 0; + } + + inline void finish() + { + H.setZero(); + shiftUp(true); + assert(numIn1==0); + assert(numIn1k==0); + + int idx=0; + for(int r=0;r<9;r++) + for(int c=r;c<9;c++) + { + float d = SSEData1m[idx+0] + SSEData1m[idx+1] + SSEData1m[idx+2] + SSEData1m[idx+3]; + H(r,c) = H(c,r) = d; + idx+=4; + } + assert(idx==4*45); + } + + + inline void updateSSE( + const __m128 J0,const __m128 J1, + const __m128 J2,const __m128 J3, + const __m128 J4,const __m128 J5, + const __m128 J6,const __m128 J7, + const __m128 J8) + { + float* pt=SSEData; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J0))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7,J8))); pt+=4; + + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8,J8))); pt+=4; + + num+=4; + numIn1++; + shiftUp(false); + } + + + + + + inline void updateSSE_eighted( + const __m128 J0,const __m128 J1, + const __m128 J2,const __m128 J3, + const __m128 J4,const __m128 J5, + const __m128 J6,const __m128 J7, + const __m128 J8, const __m128 w) + { + float* pt=SSEData; + + __m128 J0w = _mm_mul_ps(J0,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J0))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J0w,J8))); pt+=4; + + __m128 J1w = _mm_mul_ps(J1,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J1))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J1w,J8))); pt+=4; + + __m128 J2w = _mm_mul_ps(J2,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J2))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J2w,J8))); pt+=4; + + __m128 J3w = _mm_mul_ps(J3,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J3))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J3w,J8))); pt+=4; + + __m128 J4w = _mm_mul_ps(J4,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4w,J4))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J4w,J8))); pt+=4; + + __m128 J5w = _mm_mul_ps(J5,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5w,J5))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J5w,J8))); pt+=4; + + __m128 J6w = _mm_mul_ps(J6,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6w,J6))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J6w,J8))); pt+=4; + + __m128 J7w = _mm_mul_ps(J7,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7w,J7))); pt+=4; + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J7w,J8))); pt+=4; + + __m128 J8w = _mm_mul_ps(J8,w); + _mm_store_ps(pt, _mm_add_ps(_mm_load_ps(pt),_mm_mul_ps(J8w,J8))); pt+=4; + + num+=4; + numIn1++; + shiftUp(false); + } + + + inline void updateSingle( + const float J0,const float J1, + const float J2,const float J3, + const float J4,const float J5, + const float J6,const float J7, + const float J8, int off=0) + { + float* pt=SSEData+off; + *pt += J0*J0; pt+=4; + *pt += J1*J0; pt+=4; + *pt += J2*J0; pt+=4; + *pt += J3*J0; pt+=4; + *pt += J4*J0; pt+=4; + *pt += J5*J0; pt+=4; + *pt += J6*J0; pt+=4; + *pt += J7*J0; pt+=4; + *pt += J8*J0; pt+=4; + + + *pt += J1*J1; pt+=4; + *pt += J2*J1; pt+=4; + *pt += J3*J1; pt+=4; + *pt += J4*J1; pt+=4; + *pt += J5*J1; pt+=4; + *pt += J6*J1; pt+=4; + *pt += J7*J1; pt+=4; + *pt += J8*J1; pt+=4; + + + *pt += J2*J2; pt+=4; + *pt += J3*J2; pt+=4; + *pt += J4*J2; pt+=4; + *pt += J5*J2; pt+=4; + *pt += J6*J2; pt+=4; + *pt += J7*J2; pt+=4; + *pt += J8*J2; pt+=4; + + + *pt += J3*J3; pt+=4; + *pt += J4*J3; pt+=4; + *pt += J5*J3; pt+=4; + *pt += J6*J3; pt+=4; + *pt += J7*J3; pt+=4; + *pt += J8*J3; pt+=4; + + + *pt += J4*J4; pt+=4; + *pt += J5*J4; pt+=4; + *pt += J6*J4; pt+=4; + *pt += J7*J4; pt+=4; + *pt += J8*J4; pt+=4; + + *pt += J5*J5; pt+=4; + *pt += J6*J5; pt+=4; + *pt += J7*J5; pt+=4; + *pt += J8*J5; pt+=4; + + + *pt += J6*J6; pt+=4; + *pt += J7*J6; pt+=4; + *pt += J8*J6; pt+=4; + + + *pt += J7*J7; pt+=4; + *pt += J8*J7; pt+=4; + + *pt += J8*J8; pt+=4; + + num++; + numIn1++; + shiftUp(false); + } + + inline void updateSingleWeighted( + float J0, float J1, + float J2, float J3, + float J4, float J5, + float J6, float J7, + float J8, float w, + int off=0) + { + + float* pt=SSEData+off; + *pt += J0*J0*w; pt+=4; J0*=w; + *pt += J1*J0; pt+=4; + *pt += J2*J0; pt+=4; + *pt += J3*J0; pt+=4; + *pt += J4*J0; pt+=4; + *pt += J5*J0; pt+=4; + *pt += J6*J0; pt+=4; + *pt += J7*J0; pt+=4; + *pt += J8*J0; pt+=4; + + + *pt += J1*J1*w; pt+=4; J1*=w; + *pt += J2*J1; pt+=4; + *pt += J3*J1; pt+=4; + *pt += J4*J1; pt+=4; + *pt += J5*J1; pt+=4; + *pt += J6*J1; pt+=4; + *pt += J7*J1; pt+=4; + *pt += J8*J1; pt+=4; + + + *pt += J2*J2*w; pt+=4; J2*=w; + *pt += J3*J2; pt+=4; + *pt += J4*J2; pt+=4; + *pt += J5*J2; pt+=4; + *pt += J6*J2; pt+=4; + *pt += J7*J2; pt+=4; + *pt += J8*J2; pt+=4; + + + *pt += J3*J3*w; pt+=4; J3*=w; + *pt += J4*J3; pt+=4; + *pt += J5*J3; pt+=4; + *pt += J6*J3; pt+=4; + *pt += J7*J3; pt+=4; + *pt += J8*J3; pt+=4; + + + *pt += J4*J4*w; pt+=4; J4*=w; + *pt += J5*J4; pt+=4; + *pt += J6*J4; pt+=4; + *pt += J7*J4; pt+=4; + *pt += J8*J4; pt+=4; + + *pt += J5*J5*w; pt+=4; J5*=w; + *pt += J6*J5; pt+=4; + *pt += J7*J5; pt+=4; + *pt += J8*J5; pt+=4; + + + *pt += J6*J6*w; pt+=4; J6*=w; + *pt += J7*J6; pt+=4; + *pt += J8*J6; pt+=4; + + + *pt += J7*J7*w; pt+=4; J7*=w; + *pt += J8*J7; pt+=4; + + *pt += J8*J8*w; pt+=4; + + num++; + numIn1++; + shiftUp(false); + } + + +private: + EIGEN_ALIGN16 float SSEData[4*45]; + EIGEN_ALIGN16 float SSEData1k[4*45]; + EIGEN_ALIGN16 float SSEData1m[4*45]; + float numIn1, numIn1k, numIn1m; + + + void shiftUp(bool force) + { + if(numIn1 > 1000 || force) + { + for(int i=0;i<45;i++) + _mm_store_ps(SSEData1k+4*i, _mm_add_ps(_mm_load_ps(SSEData+4*i),_mm_load_ps(SSEData1k+4*i))); + numIn1k+=numIn1; + numIn1=0; + memset(SSEData,0, sizeof(float)*4*45); + } + + if(numIn1k > 1000 || force) + { + for(int i=0;i<45;i++) + _mm_store_ps(SSEData1m+4*i, _mm_add_ps(_mm_load_ps(SSEData1k+4*i),_mm_load_ps(SSEData1m+4*i))); + numIn1m+=numIn1k; + numIn1k=0; + memset(SSEData1k,0, sizeof(float)*4*45); + } + } +}; +} diff --git a/src/OptimizationBackend/RawResidualJacobian.h b/src/OptimizationBackend/RawResidualJacobian.h new file mode 100644 index 0000000..46af5d3 --- /dev/null +++ b/src/OptimizationBackend/RawResidualJacobian.h @@ -0,0 +1,63 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + + +#include "util/NumType.h" + +namespace dso +{ +struct RawResidualJacobian +{ + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + // ================== new structure: save independently =============. + VecNRf resF; + + // the two rows of d[x,y]/d[xi]. + Vec6f Jpdxi[2]; // 2x6 + + // the two rows of d[x,y]/d[C]. + VecCf Jpdc[2]; // 2x4 + + // the two rows of d[x,y]/d[idepth]. + Vec2f Jpdd; // 2x1 + + // the two columns of d[r]/d[x,y]. + VecNRf JIdx[2]; // 9x2 + + // = the two columns of d[r] / d[ab] + VecNRf JabF[2]; // 9x2 + + + // = JIdx^T * JIdx (inner product). Only as a shorthand. + Mat22f JIdx2; // 2x2 + // = Jab^T * JIdx (inner product). Only as a shorthand. + Mat22f JabJIdx; // 2x2 + // = Jab^T * Jab (inner product). Only as a shorthand. + Mat22f Jab2; // 2x2 + +}; +} + diff --git a/src/main_dso_pangolin.cpp b/src/main_dso_pangolin.cpp new file mode 100644 index 0000000..6156d94 --- /dev/null +++ b/src/main_dso_pangolin.cpp @@ -0,0 +1,590 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include +#include +#include +#include +#include +#include + +#include "IOWrapper/Output3DWrapper.h" +#include "IOWrapper/ImageDisplay.h" + + +#include +#include "util/settings.h" +#include "util/globalFuncs.h" +#include "util/DatasetReader.h" +#include "util/globalCalib.h" + +#include "util/NumType.h" +#include "FullSystem/FullSystem.h" +#include "OptimizationBackend/MatrixAccumulators.h" +#include "FullSystem/PixelSelector2.h" + + + +#include "IOWrapper/Pangolin/PangolinDSOViewer.h" +#include "IOWrapper/OutputWrapper/SampleOutputWrapper.h" + +#include + + +std::string vignette = ""; +std::string gammaCalib = ""; +std::string source = ""; +std::string calib = ""; +double rescale = 1; +bool reverse = false; +bool disableROS = false; +int start=0; +int end=100000; +bool prefetch = false; +float playbackSpeed=0; // 0 for linearize (play as fast as possible, while sequentializing tracking & mapping). otherwise, factor on timestamps. +bool preload=false; +bool useSampleOutput=false; + + +int mode=0; + +bool firstRosSpin=false; + +using namespace dso; + + +void my_exit_handler(int s) +{ + printf("Caught signal %d\n",s); + exit(1); +} + +void exitThread() +{ + struct sigaction sigIntHandler; + sigIntHandler.sa_handler = my_exit_handler; + sigemptyset(&sigIntHandler.sa_mask); + sigIntHandler.sa_flags = 0; + sigaction(SIGINT, &sigIntHandler, NULL); + + firstRosSpin=true; + while(true) pause(); +} + + + +void settingsDefault(int preset) +{ + printf("\n=============== PRESET Settings: ===============\n"); + if(preset == 0 || preset == 1) + { + printf("DEFAULT settings:\n" + "- %s real-time enforcing\n" + "- 2000 active points\n" + "- 5-7 active frames\n" + "- 1-6 LM iteration each KF\n" + "- original image resolution\n", preset==0 ? "no " : "1x"); + + playbackSpeed = (preset==0 ? 0 : 1); + preload = preset==1; + setting_desiredImmatureDensity = 1500; + setting_desiredPointDensity = 2000; + setting_minFrames = 5; + setting_maxFrames = 7; + setting_maxOptIterations=6; + setting_minOptIterations=1; + + setting_logStuff = false; + } + + if(preset == 2 || preset == 3) + { + printf("FAST settings:\n" + "- %s real-time enforcing\n" + "- 800 active points\n" + "- 4-6 active frames\n" + "- 1-4 LM iteration each KF\n" + "- 424 x 320 image resolution\n", preset==0 ? "no " : "5x"); + + playbackSpeed = (preset==2 ? 0 : 5); + preload = preset==3; + setting_desiredImmatureDensity = 600; + setting_desiredPointDensity = 800; + setting_minFrames = 4; + setting_maxFrames = 6; + setting_maxOptIterations=4; + setting_minOptIterations=1; + + benchmarkSetting_width = 424; + benchmarkSetting_height = 320; + + setting_logStuff = false; + } + + printf("==============================================\n"); +} + + + + + + +void parseArgument(char* arg) { + int option; + float foption; + char buf[1000]; + + + if (1 == sscanf(arg, "sampleoutput=%d", &option)) { + if (option == 1) { + useSampleOutput = true; + printf("USING SAMPLE OUTPUT WRAPPER!\n"); + } + return; + } + + if (1 == sscanf(arg, "quiet=%d", &option)) { + if (option == 1) { + setting_debugout_runquiet = true; + printf("QUIET MODE, I'll shut up!\n"); + } + return; + } + + if (1 == sscanf(arg, "preset=%d", &option)) { + settingsDefault(option); + return; + } + + + if (1 == sscanf(arg, "rec=%d", &option)) { + if (option == 0) { + disableReconfigure = true; + printf("DISABLE RECONFIGURE!\n"); + } + return; + } + + + if (1 == sscanf(arg, "noros=%d", &option)) { + if (option == 1) { + disableROS = true; + disableReconfigure = true; + printf("DISABLE ROS (AND RECONFIGURE)!\n"); + } + return; + } + + if (1 == sscanf(arg, "nolog=%d", &option)) { + if (option == 1) { + setting_logStuff = false; + printf("DISABLE LOGGING!\n"); + } + return; + } + if (1 == sscanf(arg, "reverse=%d", &option)) { + if (option == 1) { + reverse = true; + printf("REVERSE!\n"); + } + return; + } + if (1 == sscanf(arg, "nogui=%d", &option)) { + if (option == 1) { + disableAllDisplay = true; + printf("NO GUI!\n"); + } + return; + } + if (1 == sscanf(arg, "nomt=%d", &option)) { + if (option == 1) { + multiThreading = false; + printf("NO MultiThreading!\n"); + } + return; + } + if (1 == sscanf(arg, "prefetch=%d", &option)) { + if (option == 1) { + prefetch = true; + printf("PREFETCH!\n"); + } + return; + } + if (1 == sscanf(arg, "start=%d", &option)) { + start = option; + printf("START AT %d!\n", start); + return; + } + if (1 == sscanf(arg, "end=%d", &option)) { + end = option; + printf("END AT %d!\n", start); + return; + } + + if (1 == sscanf(arg, "files=%s", buf)) { + source = buf; + printf("loading data from %s!\n", source.c_str()); + return; + } + + if (1 == sscanf(arg, "calib=%s", buf)) { + calib = buf; + printf("loading calibration from %s!\n", calib.c_str()); + return; + } + + if (1 == sscanf(arg, "vignette=%s", buf)) { + vignette = buf; + printf("loading vignette from %s!\n", vignette.c_str()); + return; + } + + if (1 == sscanf(arg, "gamma=%s", buf)) { + gammaCalib = buf; + printf("loading gammaCalib from %s!\n", gammaCalib.c_str()); + return; + } + + if (1 == sscanf(arg, "rescale=%f", &foption)) { + rescale = foption; + printf("RESCALE %f!\n", rescale); + return; + } + + if (1 == sscanf(arg, "speed=%f", &foption)) { + playbackSpeed = foption; + printf("PLAYBACK SPEED %f!\n", playbackSpeed); + return; + } + + if (1 == sscanf(arg, "save=%d", &option)) { + if (option == 1) { + debugSaveImages = true; + if (42 == system("rm -rf images_out")) + printf("system call returned 42 - what are the odds?. This is only here to shut up the compiler.\n"); + if (42 == system("mkdir images_out")) + printf("system call returned 42 - what are the odds?. This is only here to shut up the compiler.\n"); + if (42 == system("rm -rf images_out")) + printf("system call returned 42 - what are the odds?. This is only here to shut up the compiler.\n"); + if (42 == system("mkdir images_out")) + printf("system call returned 42 - what are the odds?. This is only here to shut up the compiler.\n"); + printf("SAVE IMAGES!\n"); + } + return; + } + + if (1 == sscanf(arg, "mode=%d", &option)) { + + mode = option; + if (option == 0) { + printf("PHOTOMETRIC MODE WITH CALIBRATION!\n"); + } + if (option == 1) { + printf("PHOTOMETRIC MODE WITHOUT CALIBRATION!\n"); + setting_photometricCalibration = 0; + setting_affineOptModeA = 0; //-1: fix. >=0: optimize (with prior, if > 0). + setting_affineOptModeB = 0; //-1: fix. >=0: optimize (with prior, if > 0). + } + if (option == 2) { + printf("PHOTOMETRIC MODE WITH PERFECT IMAGES!\n"); + setting_photometricCalibration = 0; + setting_affineOptModeA = -1; //-1: fix. >=0: optimize (with prior, if > 0). + setting_affineOptModeB = -1; //-1: fix. >=0: optimize (with prior, if > 0). + setting_minGradHistAdd = 3; + } + return; + } + + printf("could not parse argument \"%s\"!!!!\n", arg); +} + +int main( int argc, char** argv ) +{ + //setlocale(LC_ALL, ""); + for(int i=1; isetGlobalCalibration(); + + // Appended code here + std::ofstream online_results; + online_results.open("result_online.txt"); +// online_results << std::setprecision(15); +// online_results << "time[s] tx ty tz qx qy qz qw" << std::endl; + online_results << std::fixed; + + + + + if(setting_photometricCalibration > 0 && reader->getPhotometricGamma() == 0) + { + printf("ERROR: dont't have photometric calibation. Need to use commandline options mode=1 or mode=2 "); + exit(1); + } + + + + + int lstart=start; + int lend = end; + int linc = 1; + if(reverse) + { + printf("REVERSE!!!!"); + lstart=end-1; + if(lstart >= reader->getNumImages()) + lstart = reader->getNumImages()-1; + lend = start; + linc = -1; + } + + + + FullSystem* fullSystem = new FullSystem(); + fullSystem->setGammaFunction(reader->getPhotometricGamma()); + fullSystem->linearizeOperation = (playbackSpeed==0); + + + + + + + + IOWrap::PangolinDSOViewer* viewer = 0; + if(!disableAllDisplay) + { + viewer = new IOWrap::PangolinDSOViewer(wG[0],hG[0], false); + fullSystem->outputWrapper.push_back(viewer); + } + + + + if(useSampleOutput) + fullSystem->outputWrapper.push_back(new IOWrap::SampleOutputWrapper()); + + + + + // to make MacOS happy: run this in dedicated thread -- and use this one to run the GUI. + std::thread runthread([&]() { + std::vector idsToPlay; + std::vector timesToPlayAt; + for(int i=lstart;i>= 0 && i< reader->getNumImages() && linc*i < linc*lend;i+=linc) + { + idsToPlay.push_back(i); + if(timesToPlayAt.size() == 0) + { + timesToPlayAt.push_back((double)0); + } + else + { + double tsThis = reader->getTimestamp(idsToPlay[idsToPlay.size()-1]); + double tsPrev = reader->getTimestamp(idsToPlay[idsToPlay.size()-2]); + timesToPlayAt.push_back(timesToPlayAt.back() + fabs(tsThis-tsPrev)/playbackSpeed); + } + } + + + std::vector preloadedImages; + if(preload) + { + printf("LOADING ALL IMAGES!\n"); + for(int ii=0;ii<(int)idsToPlay.size(); ii++) + { + int i = idsToPlay[ii]; + preloadedImages.push_back(reader->getImage(i)); + } + } + + struct timeval tv_start; + gettimeofday(&tv_start, NULL); + clock_t started = clock(); + double sInitializerOffset=0; + + + for(int ii=0;ii<(int)idsToPlay.size(); ii++) + { + if(!fullSystem->initialized) // if not initialized: reset start time. + { + gettimeofday(&tv_start, NULL); + started = clock(); + sInitializerOffset = timesToPlayAt[ii]; + } + + int i = idsToPlay[ii]; + + + ImageAndExposure* img; + if(preload) + img = preloadedImages[ii]; + else + img = reader->getImage(i); + + + + bool skipFrame=false; + if(playbackSpeed!=0) + { + struct timeval tv_now; gettimeofday(&tv_now, NULL); + double sSinceStart = sInitializerOffset + ((tv_now.tv_sec-tv_start.tv_sec) + (tv_now.tv_usec-tv_start.tv_usec)/(1000.0f*1000.0f)); + + if(sSinceStart < timesToPlayAt[ii]) + usleep((int)((timesToPlayAt[ii]-sSinceStart)*1000*1000)); + else if(sSinceStart > timesToPlayAt[ii]+0.5+0.1*(ii%2)) + { + printf("SKIPFRAME %d (play at %f, now it is %f)!\n", ii, timesToPlayAt[ii], sSinceStart); + skipFrame=true; + } + } + + + + if(!skipFrame) fullSystem->addActiveFrame(img, i); + + auto s = fullSystem->getLastPose(); + + // Fill the viewer for the point projection. + viewer->lastPose = s; + viewer->Hcalib = fullSystem->getHCalib(); + + bool write = true; + if(!s->poseValid) { + write=false; + } + +// if(setting_onlyLogKFPoses && s->marginalizedAt == s->id) { +// write=false; +// } + + std::cout << "writing to the file? " << write << std::endl; + + if(write){ + online_results << s->timestamp << + " " << s->camToWorld.translation().transpose()<< + " " << s->camToWorld.so3().unit_quaternion().x()<< + " " << s->camToWorld.so3().unit_quaternion().y()<< + " " << s->camToWorld.so3().unit_quaternion().z()<< + " " << s->camToWorld.so3().unit_quaternion().w() << "\n"; + } + + + + delete img; + + if(fullSystem->initFailed || setting_fullResetRequested) + { + if(ii < 250 || setting_fullResetRequested) + { + printf("RESETTING!\n"); + + std::vector wraps = fullSystem->outputWrapper; + delete fullSystem; + + for(IOWrap::Output3DWrapper* ow : wraps) ow->reset(); + + fullSystem = new FullSystem(); + fullSystem->setGammaFunction(reader->getPhotometricGamma()); + fullSystem->linearizeOperation = (playbackSpeed==0); + + + fullSystem->outputWrapper = wraps; + + setting_fullResetRequested=false; + } + } + + if(fullSystem->isLost) + { + printf("LOST!!\n"); + break; + } + + } + fullSystem->blockUntilMappingIsFinished(); + clock_t ended = clock(); + struct timeval tv_end; + gettimeofday(&tv_end, NULL); + + + fullSystem->printResult("result.txt"); + + + int numFramesProcessed = abs(idsToPlay[0]-idsToPlay.back()); + double numSecondsProcessed = fabs(reader->getTimestamp(idsToPlay[0])-reader->getTimestamp(idsToPlay.back())); + double MilliSecondsTakenSingle = 1000.0f*(ended-started)/(float)(CLOCKS_PER_SEC); + double MilliSecondsTakenMT = sInitializerOffset + ((tv_end.tv_sec-tv_start.tv_sec)*1000.0f + (tv_end.tv_usec-tv_start.tv_usec)/1000.0f); + printf("\n======================" + "\n%d Frames (%.1f fps)" + "\n%.2fms per frame (single core); " + "\n%.2fms per frame (multi core); " + "\n%.3fx (single core); " + "\n%.3fx (multi core); " + "\n======================\n\n", + numFramesProcessed, numFramesProcessed/numSecondsProcessed, + MilliSecondsTakenSingle/numFramesProcessed, + MilliSecondsTakenMT / (float)numFramesProcessed, + 1000 / (MilliSecondsTakenSingle/numSecondsProcessed), + 1000 / (MilliSecondsTakenMT / numSecondsProcessed)); + //fullSystem->printFrameLifetimes(); + if(setting_logStuff) + { + std::ofstream tmlog; + tmlog.open("logs/time.txt", std::ios::trunc | std::ios::out); + tmlog << 1000.0f*(ended-started)/(float)(CLOCKS_PER_SEC*reader->getNumImages()) << " " + << ((tv_end.tv_sec-tv_start.tv_sec)*1000.0f + (tv_end.tv_usec-tv_start.tv_usec)/1000.0f) / (float)reader->getNumImages() << "\n"; + tmlog.flush(); + tmlog.close(); + } + + }); + + + if(viewer != 0) + viewer->run(); + + runthread.join(); + + for(IOWrap::Output3DWrapper* ow : fullSystem->outputWrapper) + { + ow->join(); + delete ow; + } + + + + printf("DELETE FULLSYSTEM!\n"); + delete fullSystem; + + printf("DELETE READER!\n"); + delete reader; + + printf("EXIT NOW!\n"); + return 0; +} diff --git a/src/util/DatasetReader.h b/src/util/DatasetReader.h new file mode 100644 index 0000000..0e6d261 --- /dev/null +++ b/src/util/DatasetReader.h @@ -0,0 +1,379 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#include "util/settings.h" +#include "util/globalFuncs.h" +#include "util/globalCalib.h" + +#include +#include +#include +#include + +#include "util/Undistort.h" +#include "IOWrapper/ImageRW.h" + +#if HAS_ZIPLIB + #include "zip.h" +#endif + +#include + +using namespace dso; + + + +inline int getdir (std::string dir, std::vector &files) +{ + DIR *dp; + struct dirent *dirp; + if((dp = opendir(dir.c_str())) == NULL) + { + return -1; + } + + while ((dirp = readdir(dp)) != NULL) { + std::string name = std::string(dirp->d_name); + + if(name != "." && name != "..") + files.push_back(name); + } + closedir(dp); + + + std::sort(files.begin(), files.end()); + + if(dir.at( dir.length() - 1 ) != '/') dir = dir+"/"; + for(unsigned int i=0;ipath = path; + this->calibfile = calibFile; + +#if HAS_ZIPLIB + ziparchive=0; + databuffer=0; +#endif + + isZipped = (path.length()>4 && path.substr(path.length()-4) == ".zip"); + + + + + + if(isZipped) + { +#if HAS_ZIPLIB + int ziperror=0; + ziparchive = zip_open(path.c_str(), ZIP_RDONLY, &ziperror); + if(ziperror!=0) + { + printf("ERROR %d reading archive %s!\n", ziperror, path.c_str()); + exit(1); + } + + files.clear(); + int numEntries = zip_get_num_entries(ziparchive, 0); + for(int k=0;kgetOriginalSize()[0]; + heightOrg = undistort->getOriginalSize()[1]; + width=undistort->getSize()[0]; + height=undistort->getSize()[1]; + + + // load timestamps if possible. + loadTimestamps(); + printf("ImageFolderReader: got %d files in %s!\n", (int)files.size(), path.c_str()); + + } + ~ImageFolderReader() + { +#if HAS_ZIPLIB + if(ziparchive!=0) zip_close(ziparchive); + if(databuffer!=0) delete databuffer; +#endif + + + delete undistort; + }; + + Eigen::VectorXf getOriginalCalib() + { + return undistort->getOriginalParameter().cast(); + } + Eigen::Vector2i getOriginalDimensions() + { + return undistort->getOriginalSize(); + } + + void getCalibMono(Eigen::Matrix3f &K, int &w, int &h) + { + K = undistort->getK().cast(); + w = undistort->getSize()[0]; + h = undistort->getSize()[1]; + } + + void setGlobalCalibration() + { + int w_out, h_out; + Eigen::Matrix3f K; + getCalibMono(K, w_out, h_out); + setGlobalCalib(w_out, h_out, K); + } + + int getNumImages() + { + return files.size(); + } + + double getTimestamp(int id) + { + if(timestamps.size()==0) return id*0.1f; + if(id >= (int)timestamps.size()) return 0; + if(id < 0) return 0; + return timestamps[id]; + } + + + void prepImage(int id, bool as8U=false) + { + + } + + + MinimalImageB* getImageRaw(int id) + { + return getImageRaw_internal(id,0); + } + + ImageAndExposure* getImage(int id, bool forceLoadDirectly=false) + { + return getImage_internal(id, 0); + } + + + inline float* getPhotometricGamma() + { + if(undistort==0 || undistort->photometricUndist==0) return 0; + return undistort->photometricUndist->getG(); + } + + + // undistorter. [0] always exists, [1-2] only when MT is enabled. + Undistort* undistort; +private: + + + MinimalImageB* getImageRaw_internal(int id, int unused) + { + if(!isZipped) + { + // CHANGE FOR ZIP FILE + return IOWrap::readImageBW_8U(files[id]); + } + else + { +#if HAS_ZIPLIB + if(databuffer==0) databuffer = new char[widthOrg*heightOrg*6+10000]; + zip_file_t* fle = zip_fopen(ziparchive, files[id].c_str(), 0); + long readbytes = zip_fread(fle, databuffer, (long)widthOrg*heightOrg*6+10000); + + if(readbytes > (long)widthOrg*heightOrg*6) + { + printf("read %ld/%ld bytes for file %s. increase buffer!!\n", readbytes,(long)widthOrg*heightOrg*6+10000, files[id].c_str()); + delete[] databuffer; + databuffer = new char[(long)widthOrg*heightOrg*30]; + fle = zip_fopen(ziparchive, files[id].c_str(), 0); + readbytes = zip_fread(fle, databuffer, (long)widthOrg*heightOrg*30+10000); + + if(readbytes > (long)widthOrg*heightOrg*30) + { + printf("buffer still to small (read %ld/%ld). abort.\n", readbytes,(long)widthOrg*heightOrg*30+10000); + exit(1); + } + } + + return IOWrap::readStreamBW_8U(databuffer, readbytes); +#else + printf("ERROR: cannot read .zip archive, as compile without ziplib!\n"); + exit(1); +#endif + } + } + + + ImageAndExposure* getImage_internal(int id, int unused) + { + MinimalImageB* minimg = getImageRaw_internal(id, 0); + ImageAndExposure* ret2 = undistort->undistort( + minimg, + (exposures.size() == 0 ? 1.0f : exposures[id]), + (timestamps.size() == 0 ? 0.0 : timestamps[id])); + delete minimg; + return ret2; + } + + inline void loadTimestamps() + { + std::ifstream tr; + std::string timesFile = path.substr(0,path.find_last_of('/')) + "/times.txt"; + tr.open(timesFile.c_str()); + while(!tr.eof() && tr.good()) + { + std::string line; + char buf[1000]; + tr.getline(buf, 1000); + + int id; + double stamp; + float exposure = 0; + + if(3 == sscanf(buf, "%d %lf %f", &id, &stamp, &exposure)) + { + timestamps.push_back(stamp); + exposures.push_back(exposure); + } + + else if(2 == sscanf(buf, "%d %lf", &id, &stamp)) + { + timestamps.push_back(stamp); + exposures.push_back(exposure); + } + } + tr.close(); + + // check if exposures are correct, (possibly skip) + bool exposuresGood = ((int)exposures.size()==(int)getNumImages()) ; + for(int i=0;i<(int)exposures.size();i++) + { + if(exposures[i] == 0) + { + // fix! + float sum=0,num=0; + if(i>0 && exposures[i-1] > 0) {sum += exposures[i-1]; num++;} + if(i+1<(int)exposures.size() && exposures[i+1] > 0) {sum += exposures[i+1]; num++;} + + if(num>0) + exposures[i] = sum/num; + } + + if(exposures[i] == 0) exposuresGood=false; + } + + + if((int)getNumImages() != (int)timestamps.size()) + { + printf("set timestamps and exposures to zero!\n"); + exposures.clear(); + timestamps.clear(); + } + + if((int)getNumImages() != (int)exposures.size() || !exposuresGood) + { + printf("set EXPOSURES to zero!\n"); + exposures.clear(); + } + + printf("got %d images and %d timestamps and %d exposures.!\n", (int)getNumImages(), (int)timestamps.size(), (int)exposures.size()); + } + + + + + std::vector preloadedImages; + std::vector files; + std::vector timestamps; + std::vector exposures; + + int width, height; + int widthOrg, heightOrg; + + std::string path; + std::string calibfile; + + bool isZipped; + +#if HAS_ZIPLIB + zip_t* ziparchive; + char* databuffer; +#endif +}; + diff --git a/src/util/FrameShell.h b/src/util/FrameShell.h new file mode 100644 index 0000000..d3f68ab --- /dev/null +++ b/src/util/FrameShell.h @@ -0,0 +1,74 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/NumType.h" +#include "algorithm" + +namespace dso +{ + + +class FrameShell +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + int id; // INTERNAL ID, starting at zero. + int incoming_id; // ID passed into DSO + double timestamp; // timestamp passed into DSO. + + // set once after tracking + SE3 camToTrackingRef; + FrameShell* trackingRef; + + // constantly adapted. + SE3 camToWorld; // Write: TRACKING, while frame is still fresh; MAPPING: only when locked [shellPoseMutex]. + AffLight aff_g2l; + bool poseValid; + + // statisitcs + int statistics_outlierResOnThis; + int statistics_goodResOnThis; + int marginalizedAt; + double movedByOpt; + + + inline FrameShell() + { + id=0; + poseValid=true; + camToWorld = SE3(); + timestamp=0; + marginalizedAt=-1; + movedByOpt=0; + statistics_outlierResOnThis=statistics_goodResOnThis=0; + trackingRef=0; + camToTrackingRef = SE3(); + } +}; + + +} + diff --git a/src/util/ImageAndExposure.h b/src/util/ImageAndExposure.h new file mode 100644 index 0000000..742304b --- /dev/null +++ b/src/util/ImageAndExposure.h @@ -0,0 +1,67 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once +#include +#include + + +namespace dso +{ + + +class ImageAndExposure +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + float* image; // irradiance. between 0 and 256 + int w,h; // width and height; + double timestamp; + float exposure_time; // exposure time in ms. + inline ImageAndExposure(int w_, int h_, double timestamp_=0) : w(w_), h(h_), timestamp(timestamp_) + { + image = new float[w*h]; + exposure_time=1; + } + inline ~ImageAndExposure() + { + delete[] image; + } + + inline void copyMetaTo(ImageAndExposure &other) + { + other.exposure_time = exposure_time; + } + + inline ImageAndExposure* getDeepCopy() + { + ImageAndExposure* img = new ImageAndExposure(w,h,timestamp); + img->exposure_time = exposure_time; + memcpy(img->image, image, w*h*sizeof(float)); + return img; + } +}; + + +} diff --git a/src/util/IndexThreadReduce.h b/src/util/IndexThreadReduce.h new file mode 100644 index 0000000..683a8d7 --- /dev/null +++ b/src/util/IndexThreadReduce.h @@ -0,0 +1,216 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include "util/settings.h" +#include "boost/thread.hpp" +#include +#include + + + +namespace dso +{ + +template +class IndexThreadReduce +{ + +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + inline IndexThreadReduce() + { + nextIndex = 0; + maxIndex = 0; + stepSize = 1; + callPerIndex = boost::bind(&IndexThreadReduce::callPerIndexDefault, this, _1, _2, _3, _4); + + running = true; + for(int i=0;i callPerIndex, int first, int end, int stepSize = 0) + { + + memset(&stats, 0, sizeof(Running)); + +// if(!multiThreading) +// { +// callPerIndex(first, end, &stats, 0); +// return; +// } + + + + if(stepSize == 0) + stepSize = ((end-first)+NUM_THREADS-1)/NUM_THREADS; + + + //printf("reduce called\n"); + + boost::unique_lock lock(exMutex); + + // save + this->callPerIndex = callPerIndex; + nextIndex = first; + maxIndex = end; + this->stepSize = stepSize; + + // go worker threads! + for(int i=0;icallPerIndex = boost::bind(&IndexThreadReduce::callPerIndexDefault, this, _1, _2, _3, _4); + + //printf("reduce done (all threads finished)\n"); + } + + Running stats; + +private: + boost::thread workerThreads[NUM_THREADS]; + bool isDone[NUM_THREADS]; + bool gotOne[NUM_THREADS]; + + boost::mutex exMutex; + boost::condition_variable todo_signal; + boost::condition_variable done_signal; + + int nextIndex; + int maxIndex; + int stepSize; + + bool running; + + boost::function callPerIndex; + + void callPerIndexDefault(int i, int j,Running* k, int tid) + { + printf("ERROR: should never be called....\n"); + assert(false); + } + + void workerLoop(int idx) + { + boost::unique_lock lock(exMutex); + + while(running) + { + // try to get something to do. + int todo = 0; + bool gotSomething = false; + if(nextIndex < maxIndex) + { + // got something! + todo = nextIndex; + nextIndex+=stepSize; + gotSomething = true; + } + + // if got something: do it (unlock in the meantime) + if(gotSomething) + { + lock.unlock(); + + assert(callPerIndex != 0); + + Running s; memset(&s, 0, sizeof(Running)); + callPerIndex(todo, std::min(todo+stepSize, maxIndex), &s, idx); + gotOne[idx] = true; + lock.lock(); + stats += s; + } + + // otherwise wait on signal, releasing lock in the meantime. + else + { + if(!gotOne[idx]) + { + lock.unlock(); + assert(callPerIndex != 0); + Running s; memset(&s, 0, sizeof(Running)); + callPerIndex(0, 0, &s, idx); + gotOne[idx] = true; + lock.lock(); + stats += s; + } + isDone[idx] = true; + //printf("worker %d waiting..\n", idx); + done_signal.notify_all(); + todo_signal.wait(lock); + } + } + } +}; +} diff --git a/src/util/MinimalImage.h b/src/util/MinimalImage.h new file mode 100644 index 0000000..2ece6e7 --- /dev/null +++ b/src/util/MinimalImage.h @@ -0,0 +1,167 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/NumType.h" +#include "algorithm" + +namespace dso +{ + +template +class MinimalImage +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + int w; + int h; + T* data; + + /* + * creates minimal image with own memory + */ + inline MinimalImage(int w_, int h_) : w(w_), h(h_) + { + data = new T[w*h]; + ownData=true; + } + + /* + * creates minimal image wrapping around existing memory + */ + inline MinimalImage(int w_, int h_, T* data_) : w(w_), h(h_) + { + data = data_; + ownData=false; + } + + inline ~MinimalImage() + { + if(ownData) delete [] data; + } + + inline MinimalImage* getClone() + { + MinimalImage* clone = new MinimalImage(w,h); + memcpy(clone->data, data, sizeof(T)*w*h); + return clone; + } + + + inline T& at(int x, int y) {return data[(int)x+((int)y)*w];} + inline T& at(int i) {return data[i];} + + inline void setBlack() + { + memset(data, 0, sizeof(T)*w*h); + } + + inline void setConst(T val) + { + for(int i=0;i Vec3b; +typedef MinimalImage MinimalImageF; +typedef MinimalImage MinimalImageF3; +typedef MinimalImage MinimalImageB; +typedef MinimalImage MinimalImageB3; +typedef MinimalImage MinimalImageB16; + +} + diff --git a/src/util/NumType.h b/src/util/NumType.h new file mode 100644 index 0000000..a12d420 --- /dev/null +++ b/src/util/NumType.h @@ -0,0 +1,195 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "Eigen/Core" +#include "sophus/sim3.hpp" +#include "sophus/se3.hpp" + + +namespace dso +{ + +// CAMERA MODEL TO USE + + +#define SSEE(val,idx) (*(((float*)&val)+idx)) + + +#define MAX_RES_PER_POINT 8 +#define NUM_THREADS 6 + + +#define todouble(x) (x).cast() + + +typedef Sophus::SE3d SE3; +typedef Sophus::Sim3d Sim3; +typedef Sophus::SO3d SO3; + + + +#define CPARS 4 + + +typedef Eigen::Matrix MatXX; +typedef Eigen::Matrix MatCC; +#define MatToDynamic(x) MatXX(x) + + + +typedef Eigen::Matrix MatC10; +typedef Eigen::Matrix Mat1010; +typedef Eigen::Matrix Mat1313; + +typedef Eigen::Matrix Mat810; +typedef Eigen::Matrix Mat83; +typedef Eigen::Matrix Mat66; +typedef Eigen::Matrix Mat53; +typedef Eigen::Matrix Mat43; +typedef Eigen::Matrix Mat42; +typedef Eigen::Matrix Mat33; +typedef Eigen::Matrix Mat22; +typedef Eigen::Matrix Mat8C; +typedef Eigen::Matrix MatC8; +typedef Eigen::Matrix Mat8Cf; +typedef Eigen::Matrix MatC8f; + +typedef Eigen::Matrix Mat88; +typedef Eigen::Matrix Mat77; + +typedef Eigen::Matrix VecC; +typedef Eigen::Matrix VecCf; +typedef Eigen::Matrix Vec13; +typedef Eigen::Matrix Vec10; +typedef Eigen::Matrix Vec9; +typedef Eigen::Matrix Vec8; +typedef Eigen::Matrix Vec7; +typedef Eigen::Matrix Vec6; +typedef Eigen::Matrix Vec5; +typedef Eigen::Matrix Vec4; +typedef Eigen::Matrix Vec3; +typedef Eigen::Matrix Vec2; +typedef Eigen::Matrix VecX; + +typedef Eigen::Matrix Mat33f; +typedef Eigen::Matrix Mat103f; +typedef Eigen::Matrix Mat22f; +typedef Eigen::Matrix Vec3f; +typedef Eigen::Matrix Vec2f; +typedef Eigen::Matrix Vec6f; + + + +typedef Eigen::Matrix Mat49; +typedef Eigen::Matrix Mat89; + +typedef Eigen::Matrix Mat94; +typedef Eigen::Matrix Mat98; + +typedef Eigen::Matrix Mat81; +typedef Eigen::Matrix Mat18; +typedef Eigen::Matrix Mat91; +typedef Eigen::Matrix Mat19; + + +typedef Eigen::Matrix Mat84; +typedef Eigen::Matrix Mat48; +typedef Eigen::Matrix Mat44; + + +typedef Eigen::Matrix VecNRf; +typedef Eigen::Matrix Vec12f; +typedef Eigen::Matrix Mat18f; +typedef Eigen::Matrix Mat66f; +typedef Eigen::Matrix Mat88f; +typedef Eigen::Matrix Mat84f; +typedef Eigen::Matrix Vec8f; +typedef Eigen::Matrix Vec10f; +typedef Eigen::Matrix Mat66f; +typedef Eigen::Matrix Vec4f; +typedef Eigen::Matrix Mat44f; +typedef Eigen::Matrix Mat1212f; +typedef Eigen::Matrix Vec12f; +typedef Eigen::Matrix Mat1313f; +typedef Eigen::Matrix Mat1010f; +typedef Eigen::Matrix Vec13f; +typedef Eigen::Matrix Mat99f; +typedef Eigen::Matrix Vec9f; + +typedef Eigen::Matrix Mat42f; +typedef Eigen::Matrix Mat62f; +typedef Eigen::Matrix Mat12f; + +typedef Eigen::Matrix VecXf; +typedef Eigen::Matrix MatXXf; + + +typedef Eigen::Matrix MatPCPC; +typedef Eigen::Matrix MatPCPCf; +typedef Eigen::Matrix VecPC; +typedef Eigen::Matrix VecPCf; + +typedef Eigen::Matrix Mat1414f; +typedef Eigen::Matrix Vec14f; +typedef Eigen::Matrix Mat1414; +typedef Eigen::Matrix Vec14; + + + + + + +// transforms points from one frame to another. +struct AffLight +{ + AffLight(double a_, double b_) : a(a_), b(b_) {}; + AffLight() : a(0), b(0) {}; + + // Affine Parameters: + double a,b; // I_frame = exp(a)*I_global + b. // I_global = exp(-a)*(I_frame - b). + + static Vec2 fromToVecExposure(float exposureF, float exposureT, AffLight g2F, AffLight g2T) + { + if(exposureF==0 || exposureT==0) + { + exposureT = exposureF = 1; + //printf("got exposure value of 0! please choose the correct model.\n"); + //assert(setting_brightnessTransferFunc < 2); + } + + double a = exp(g2T.a-g2F.a) * exposureT / exposureF; + double b = g2T.b - a*g2F.b; + return Vec2(a,b); + } + + Vec2 vec() + { + return Vec2(a,b); + } +}; + +} + diff --git a/src/util/Undistort.cpp b/src/util/Undistort.cpp new file mode 100644 index 0000000..4842a8a --- /dev/null +++ b/src/util/Undistort.cpp @@ -0,0 +1,1236 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + + +#include +#include +#include + +#include +#include +#include "util/settings.h" +#include "util/globalFuncs.h" +#include "IOWrapper/ImageDisplay.h" +#include "IOWrapper/ImageRW.h" +#include "util/Undistort.h" + + +namespace dso +{ + + + + + + + + +PhotometricUndistorter::PhotometricUndistorter( + std::string file, + std::string noiseImage, + std::string vignetteImage, + int w_, int h_) +{ + valid=false; + vignetteMap=0; + vignetteMapInv=0; + w = w_; + h = h_; + output = new ImageAndExposure(w,h); + if(file=="" || vignetteImage=="") + { + printf("NO PHOTOMETRIC Calibration!\n"); + } + + + // read G. + std::ifstream f(file.c_str()); + printf("Reading Photometric Calibration from file %s\n",file.c_str()); + if (!f.good()) + { + printf("PhotometricUndistorter: Could not open file!\n"); + return; + } + + + + { + std::string line; + std::getline( f, line ); + std::istringstream l1i( line ); + std::vector Gvec = std::vector( std::istream_iterator(l1i), std::istream_iterator() ); + + + + GDepth = Gvec.size(); + + if(GDepth < 256) + { + printf("PhotometricUndistorter: invalid format! got %d entries in first line, expected at least 256!\n",(int)Gvec.size()); + return; + } + + + for(int i=0;i 0..255. + } + + if(setting_photometricCalibration==0) + { + for(int i=0;i* vm16 = IOWrap::readImageBW_16U(vignetteImage.c_str()); + MinimalImageB* vm8 = IOWrap::readImageBW_8U(vignetteImage.c_str()); + vignetteMap = new float[w*h]; + vignetteMapInv = new float[w*h]; + + if(vm16 != 0) + { + if(vm16->w != w ||vm16->h != h) + { + printf("PhotometricUndistorter: Invalid vignette image size! got %d x %d, expected %d x %d\n", + vm16->w, vm16->h, w, h); + if(vm16!=0) delete vm16; + if(vm8!=0) delete vm8; + return; + } + + float maxV=0; + for(int i=0;iat(i) > maxV) maxV = vm16->at(i); + + for(int i=0;iat(i) / maxV; + } + else if(vm8 != 0) + { + if(vm8->w != w ||vm8->h != h) + { + printf("PhotometricUndistorter: Invalid vignette image size! got %d x %d, expected %d x %d\n", + vm8->w, vm8->h, w, h); + if(vm16!=0) delete vm16; + if(vm8!=0) delete vm8; + return; + } + + float maxV=0; + for(int i=0;iat(i) > maxV) maxV = vm8->at(i); + + for(int i=0;iat(i) / maxV; + } + else + { + printf("PhotometricUndistorter: Invalid vignette image\n"); + if(vm16!=0) delete vm16; + if(vm8!=0) delete vm8; + return; + } + + if(vm16!=0) delete vm16; + if(vm8!=0) delete vm8; + + + for(int i=0;i GDepth-1.01f) + BinvC=GDepth-1.1; + else + { + int c = color; + float a = color-c; + BinvC=G[c]*(1-a) + G[c+1]*a; + } + + float val = BinvC; + if(val < 0) val = 0; + image[i] = val; + } +} + +template +void PhotometricUndistorter::processFrame(T* image_in, float exposure_time, float factor) +{ + int wh=w*h; + float* data = output->image; + assert(output->w == w && output->h == h); + assert(data != 0); + + + if(!valid || exposure_time <= 0 || setting_photometricCalibration==0) // disable full photometric calibration. + { + for(int i=0; iexposure_time = exposure_time; + output->timestamp = 0; + } + else + { + for(int i=0; iexposure_time = exposure_time; + output->timestamp = 0; + } + + + if(!setting_useExposure) + output->exposure_time = 1; + +} +template void PhotometricUndistorter::processFrame(unsigned char* image_in, float exposure_time, float factor); +template void PhotometricUndistorter::processFrame(unsigned short* image_in, float exposure_time, float factor); + + + + + +Undistort::~Undistort() +{ + if(remapX != 0) delete[] remapX; + if(remapY != 0) delete[] remapY; +} + +Undistort* Undistort::getUndistorterForFile(std::string configFilename, std::string gammaFilename, std::string vignetteFilename) +{ + printf("Reading Calibration from file %s",configFilename.c_str()); + + std::ifstream f(configFilename.c_str()); + if (!f.good()) + { + f.close(); + printf(" ... not found. Cannot operate without calibration, shutting down.\n"); + f.close(); + return 0; + } + + printf(" ... found!\n"); + std::string l1; + std::getline(f,l1); + f.close(); + + float ic[10]; + + Undistort* u; + + // for backwards-compatibility: Use RadTan model for 8 parameters. + if(std::sscanf(l1.c_str(), "%f %f %f %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4], &ic[5], &ic[6], &ic[7]) == 8) + { + printf("found RadTan (OpenCV) camera model, building rectifier.\n"); + u = new UndistortRadTan(configFilename.c_str(), true); + if(!u->isValid()) {delete u; return 0; } + } + + // for backwards-compatibility: Use Pinhole / FoV model for 5 parameter. + else if(std::sscanf(l1.c_str(), "%f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], &ic[4]) == 5) + { + if(ic[4]==0) + { + printf("found PINHOLE camera model, building rectifier.\n"); + u = new UndistortPinhole(configFilename.c_str(), true); + if(!u->isValid()) {delete u; return 0; } + } + else + { + printf("found ATAN camera model, building rectifier.\n"); + u = new UndistortFOV(configFilename.c_str(), true); + if(!u->isValid()) {delete u; return 0; } + } + } + + + + + + // clean model selection implementation. + else if(std::sscanf(l1.c_str(), "KannalaBrandt %f %f %f %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4], &ic[5], &ic[6], &ic[7]) == 8) + { + u = new UndistortKB(configFilename.c_str(), false); + if(!u->isValid()) {delete u; return 0; } + } + + + else if(std::sscanf(l1.c_str(), "RadTan %f %f %f %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4], &ic[5], &ic[6], &ic[7]) == 8) + { + u = new UndistortRadTan(configFilename.c_str(), false); + if(!u->isValid()) {delete u; return 0; } + } + + + else if(std::sscanf(l1.c_str(), "EquiDistant %f %f %f %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4], &ic[5], &ic[6], &ic[7]) == 8) + { + u = new UndistortEquidistant(configFilename.c_str(), false); + if(!u->isValid()) {delete u; return 0; } + } + + + else if(std::sscanf(l1.c_str(), "FOV %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4]) == 5) + { + u = new UndistortFOV(configFilename.c_str(), false); + if(!u->isValid()) {delete u; return 0; } + } + + + else if(std::sscanf(l1.c_str(), "Pinhole %f %f %f %f %f", + &ic[0], &ic[1], &ic[2], &ic[3], + &ic[4]) == 5) + { + u = new UndistortPinhole(configFilename.c_str(), false); + if(!u->isValid()) {delete u; return 0; } + } + + + else + { + printf("could not read calib file! exit."); + exit(1); + } + + u->loadPhotometricCalibration( + gammaFilename, + "", + vignetteFilename); + + return u; +} + +void Undistort::loadPhotometricCalibration(std::string file, std::string noiseImage, std::string vignetteImage) +{ + photometricUndist = new PhotometricUndistorter(file, noiseImage, vignetteImage,getOriginalSize()[0], getOriginalSize()[1]); +} + +template +ImageAndExposure* Undistort::undistort(const MinimalImage* image_raw, float exposure, double timestamp, float factor) const +{ + if(image_raw->w != wOrg || image_raw->h != hOrg) + { + printf("Undistort::undistort: wrong image size (%d %d instead of %d %d) \n", image_raw->w, image_raw->h, w, h); + exit(1); + } + + photometricUndist->processFrame(image_raw->data, exposure, factor); + ImageAndExposure* result = new ImageAndExposure(w, h, timestamp); + photometricUndist->output->copyMetaTo(*result); + + if (!passthrough) + { + float* out_data = result->image; + float* in_data = photometricUndist->output->image; + + float* noiseMapX=0; + float* noiseMapY=0; + if(benchmark_varNoise>0) + { + int numnoise=(benchmark_noiseGridsize+8)*(benchmark_noiseGridsize+8); + noiseMapX=new float[numnoise]; + noiseMapY=new float[numnoise]; + memset(noiseMapX,0,sizeof(float)*numnoise); + memset(noiseMapY,0,sizeof(float)*numnoise); + + for(int i=0;i=0;idx--) + { + // get interp. values + float xx = remapX[idx]; + float yy = remapY[idx]; + + + + if(benchmark_varNoise>0) + { + float deltax = getInterpolatedElement11BiCub(noiseMapX, 4+(xx/(float)wOrg)*benchmark_noiseGridsize, 4+(yy/(float)hOrg)*benchmark_noiseGridsize, benchmark_noiseGridsize+8 ); + float deltay = getInterpolatedElement11BiCub(noiseMapY, 4+(xx/(float)wOrg)*benchmark_noiseGridsize, 4+(yy/(float)hOrg)*benchmark_noiseGridsize, benchmark_noiseGridsize+8 ); + float x = idx%w + deltax; + float y = idx/w + deltay; + if(x < 0.01) x = 0.01; + if(y < 0.01) y = 0.01; + if(x > w-1.01) x = w-1.01; + if(y > h-1.01) y = h-1.01; + + xx = getInterpolatedElement(remapX, x, y, w); + yy = getInterpolatedElement(remapY, x, y, w); + } + + + if(xx<0) + out_data[idx] = 0; + else + { + // get integer and rational parts + int xxi = xx; + int yyi = yy; + xx -= xxi; + yy -= yyi; + float xxyy = xx*yy; + + // get array base pointer + const float* src = in_data + xxi + yyi * wOrg; + + // interpolate (bilinear) + out_data[idx] = xxyy * src[1+wOrg] + + (yy-xxyy) * src[wOrg] + + (xx-xxyy) * src[1] + + (1-xx-yy+xxyy) * src[0]; + } + } + + if(benchmark_varNoise>0) + { + delete[] noiseMapX; + delete[] noiseMapY; + } + + } + else + { + memcpy(result->image, photometricUndist->output->image, sizeof(float)*w*h); + } + + applyBlurNoise(result->image); + + return result; +} +template ImageAndExposure* Undistort::undistort(const MinimalImage* image_raw, float exposure, double timestamp, float factor) const; +template ImageAndExposure* Undistort::undistort(const MinimalImage* image_raw, float exposure, double timestamp, float factor) const; + + +void Undistort::applyBlurNoise(float* img) const +{ + if(benchmark_varBlurNoise==0) return; + + int numnoise=(benchmark_noiseGridsize+8)*(benchmark_noiseGridsize+8); + float* noiseMapX=new float[numnoise]; + float* noiseMapY=new float[numnoise]; + float* blutTmp=new float[w*h]; + + if(benchmark_varBlurNoise>0) + { + for(int i=0;i 900 ) gmid = 900; + float gw = gaussMap[gmid]; + + if(x+dx>0 && x+dxw]; + } + + if(x-dx>0 && x-dxw]; + } + } + + blutTmp[x+y*this->w] = sumCW / sumW; + } + + // y-blur. + for(int x=0;x 900 ) gmid = 900; + float gw = gaussMap[gmid]; + + if(y+dy>0 && y+dyw]; + } + + if(y-dy>0 && y-dyw]; + } + } + img[x+y*this->w] = sumCW / sumW; + } + + + + delete[] noiseMapX; + delete[] noiseMapY; +} + +void Undistort::makeOptimalK_crop() +{ + printf("finding CROP optimal new model!\n"); + K.setIdentity(); + + // 1. stretch the center lines as far as possible, to get initial coarse quess. + float* tgX = new float[100000]; + float* tgY = new float[100000]; + float minX = 0; + float maxX = 0; + float minY = 0; + float maxY = 0; + + for(int x=0; x<100000;x++) + {tgX[x] = (x-50000.0f) / 10000.0f; tgY[x] = 0;} + distortCoordinates(tgX, tgY,tgX, tgY,100000); + for(int x=0; x<100000;x++) + { + if(tgX[x] > 0 && tgX[x] < wOrg-1) + { + if(minX==0) minX = (x-50000.0f) / 10000.0f; + maxX = (x-50000.0f) / 10000.0f; + } + } + for(int y=0; y<100000;y++) + {tgY[y] = (y-50000.0f) / 10000.0f; tgX[y] = 0;} + distortCoordinates(tgX, tgY,tgX, tgY,100000); + for(int y=0; y<100000;y++) + { + if(tgY[y] > 0 && tgY[y] < hOrg-1) + { + if(minY==0) minY = (y-50000.0f) / 10000.0f; + maxY = (y-50000.0f) / 10000.0f; + } + } + delete[] tgX; + delete[] tgY; + + minX *= 1.01; + maxX *= 1.01; + minY *= 1.01; + maxY *= 1.01; + + + + printf("initial range: x: %.4f - %.4f; y: %.4f - %.4f!\n", minX, maxX, minY, maxY); + + + + // 2. while there are invalid pixels at the border: shrink square at the side that has invalid pixels, + // if several to choose from, shrink the wider dimension. + bool oobLeft=true, oobRight=true, oobTop=true, oobBottom=true; + int iteration=0; + while(oobLeft || oobRight || oobTop || oobBottom) + { + oobLeft=oobRight=oobTop=oobBottom=false; + for(int y=0;y 0 && remapX[2*y] < wOrg-1)) + oobLeft = true; + if(!(remapX[2*y+1] > 0 && remapX[2*y+1] < wOrg-1)) + oobRight = true; + } + + + + for(int x=0;x 0 && remapY[2*x] < hOrg-1)) + oobTop = true; + if(!(remapY[2*x+1] > 0 && remapY[2*x+1] < hOrg-1)) + oobBottom = true; + } + + + if((oobLeft || oobRight) && (oobTop || oobBottom)) + { + if((maxX-minX) > (maxY-minY)) + oobBottom = oobTop = false; // only shrink left/right + else + oobLeft = oobRight = false; // only shrink top/bottom + } + + if(oobLeft) minX *= 0.995; + if(oobRight) maxX *= 0.995; + if(oobTop) minY *= 0.995; + if(oobBottom) maxY *= 0.995; + + iteration++; + + + printf("iteration %05d: range: x: %.4f - %.4f; y: %.4f - %.4f!\n", iteration, minX, maxX, minY, maxY); + if(iteration > 500) + { + printf("FAILED TO COMPUTE GOOD CAMERA MATRIX - SOMETHING IS SERIOUSLY WRONG. ABORTING \n"); + exit(1); + } + } + + K(0,0) = ((float)w-1.0f)/(maxX-minX); + K(1,1) = ((float)h-1.0f)/(maxY-minY); + K(0,2) = -minX*K(0,0); + K(1,2) = -minY*K(1,1); + +} + +void Undistort::makeOptimalK_full() +{ + // todo + assert(false); +} + +void Undistort::readFromFile(const char* configFileName, int nPars, std::string prefix) +{ + photometricUndist=0; + valid = false; + passthrough=false; + remapX = 0; + remapY = 0; + + float outputCalibration[5]; + + parsOrg = VecX(nPars); + + // read parameters + std::ifstream infile(configFileName); + assert(infile.good()); + + std::string l1,l2,l3,l4; + + std::getline(infile,l1); + std::getline(infile,l2); + std::getline(infile,l3); + std::getline(infile,l4); + + // l1 & l2 + if(nPars == 5) // fov model + { + char buf[1000]; + snprintf(buf, 1000, "%s%%lf %%lf %%lf %%lf %%lf", prefix.c_str()); + + if(std::sscanf(l1.c_str(), buf, &parsOrg[0], &parsOrg[1], &parsOrg[2], &parsOrg[3], &parsOrg[4]) == 5 && + std::sscanf(l2.c_str(), "%d %d", &wOrg, &hOrg) == 2) + { + printf("Input resolution: %d %d\n",wOrg, hOrg); + printf("In: %f %f %f %f %f\n", + parsOrg[0], parsOrg[1], parsOrg[2], parsOrg[3], parsOrg[4]); + } + else + { + printf("Failed to read camera calibration (invalid format?)\nCalibration file: %s\n", configFileName); + infile.close(); + return; + } + } + else if(nPars == 8) // KB, equi & radtan model + { + char buf[1000]; + snprintf(buf, 1000, "%s%%lf %%lf %%lf %%lf %%lf %%lf %%lf %%lf %%lf %%lf", prefix.c_str()); + + if(std::sscanf(l1.c_str(), buf, + &parsOrg[0], &parsOrg[1], &parsOrg[2], &parsOrg[3], &parsOrg[4], + &parsOrg[5], &parsOrg[6], &parsOrg[7]) == 8 && + std::sscanf(l2.c_str(), "%d %d", &wOrg, &hOrg) == 2) + { + printf("Input resolution: %d %d\n",wOrg, hOrg); + printf("In: %s%f %f %f %f %f %f %f %f\n", + prefix.c_str(), + parsOrg[0], parsOrg[1], parsOrg[2], parsOrg[3], parsOrg[4], parsOrg[5], parsOrg[6], parsOrg[7]); + } + else + { + printf("Failed to read camera calibration (invalid format?)\nCalibration file: %s\n", configFileName); + infile.close(); + return; + } + } + else + { + printf("called with invalid number of parameters.... forgot to implement me?\n"); + infile.close(); + return; + } + + + + if(parsOrg[2] < 1 && parsOrg[3] < 1) + { + printf("\n\nFound fx=%f, fy=%f, cx=%f, cy=%f.\n I'm assuming this is the \"relative\" calibration file format," + "and will rescale this by image width / height to fx=%f, fy=%f, cx=%f, cy=%f.\n\n", + parsOrg[0], parsOrg[1], parsOrg[2], parsOrg[3], + parsOrg[0] * wOrg, parsOrg[1] * hOrg, parsOrg[2] * wOrg - 0.5, parsOrg[3] * hOrg - 0.5 ); + + // rescale and substract 0.5 offset. + // the 0.5 is because I'm assuming the calibration is given such that the pixel at (0,0) + // contains the integral over intensity over [0,0]-[1,1], whereas I assume the pixel (0,0) + // to contain a sample of the intensity ot [0,0], which is best approximated by the integral over + // [-0.5,-0.5]-[0.5,0.5]. Thus, the shift by -0.5. + parsOrg[0] = parsOrg[0] * wOrg; + parsOrg[1] = parsOrg[1] * hOrg; + parsOrg[2] = parsOrg[2] * wOrg - 0.5; + parsOrg[3] = parsOrg[3] * hOrg - 0.5; + } + + + + // l3 + if(l3 == "crop") + { + outputCalibration[0] = -1; + printf("Out: Rectify Crop\n"); + } + else if(l3 == "full") + { + outputCalibration[0] = -2; + printf("Out: Rectify Full\n"); + } + else if(l3 == "none") + { + outputCalibration[0] = -3; + printf("Out: No Rectification\n"); + } + else if(std::sscanf(l3.c_str(), "%f %f %f %f %f", &outputCalibration[0], &outputCalibration[1], &outputCalibration[2], &outputCalibration[3], &outputCalibration[4]) == 5) + { + printf("Out: %f %f %f %f %f\n", + outputCalibration[0], outputCalibration[1], outputCalibration[2], outputCalibration[3], outputCalibration[4]); + + } + else + { + printf("Out: Failed to Read Output pars... not rectifying.\n"); + infile.close(); + return; + } + + + // l4 + if(std::sscanf(l4.c_str(), "%d %d", &w, &h) == 2) + { + if(benchmarkSetting_width != 0) + { + w = benchmarkSetting_width; + if(outputCalibration[0] == -3) + outputCalibration[0] = -1; // crop instead of none, since probably resolution changed. + } + if(benchmarkSetting_height != 0) + { + h = benchmarkSetting_height; + if(outputCalibration[0] == -3) + outputCalibration[0] = -1; // crop instead of none, since probably resolution changed. + } + + printf("Output resolution: %d %d\n",w, h); + } + else + { + printf("Out: Failed to Read Output resolution... not rectifying.\n"); + valid = false; + } + + remapX = new float[w*h]; + remapY = new float[w*h]; + + if(outputCalibration[0] == -1) + makeOptimalK_crop(); + else if(outputCalibration[0] == -2) + makeOptimalK_full(); + else if(outputCalibration[0] == -3) + { + if(w != wOrg || h != hOrg) + { + printf("ERROR: rectification mode none requires input and output dimenstions to match!\n\n"); + exit(1); + } + K.setIdentity(); + K(0,0) = parsOrg[0]; + K(1,1) = parsOrg[1]; + K(0,2) = parsOrg[2]; + K(1,2) = parsOrg[3]; + passthrough = true; + } + else + { + + + if(outputCalibration[2] > 1 || outputCalibration[3] > 1) + { + printf("\n\n\nWARNING: given output calibration (%f %f %f %f) seems wrong. It needs to be relative to image width / height!\n\n\n", + outputCalibration[0],outputCalibration[1],outputCalibration[2],outputCalibration[3]); + } + + + K.setIdentity(); + K(0,0) = outputCalibration[0] * w; + K(1,1) = outputCalibration[1] * h; + K(0,2) = outputCalibration[2] * w - 0.5; + K(1,2) = outputCalibration[3] * h - 0.5; + } + + if(benchmarkSetting_fxfyfac != 0) + { + K(0,0) = fmax(benchmarkSetting_fxfyfac, (float)K(0,0)); + K(1,1) = fmax(benchmarkSetting_fxfyfac, (float)K(1,1)); + passthrough = false; // cannot pass through when fx / fy have been overwritten. + } + + + for(int y=0;y 0 && iy > 0 && ix < wOrg-1 && iy < wOrg-1) + { + remapX[x+y*w] = ix; + remapY[x+y*w] = iy; + } + else + { + remapX[x+y*w] = -1; + remapY[x+y*w] = -1; + } + } + + valid = true; + + + + + printf("\nRectified Kamera Matrix:\n"); + std::cout << K << "\n\n"; + +} + + +UndistortFOV::UndistortFOV(const char* configFileName, bool noprefix) +{ + printf("Creating FOV undistorter\n"); + + if(noprefix) + readFromFile(configFileName, 5); + else + readFromFile(configFileName, 5, "FOV "); +} +UndistortFOV::~UndistortFOV() +{ +} + +void UndistortFOV::distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const +{ + float dist = parsOrg[4]; + float d2t = 2.0f * tan(dist / 2.0f); + + + + // current camera parameters + float fx = parsOrg[0]; + float fy = parsOrg[1]; + float cx = parsOrg[2]; + float cy = parsOrg[3]; + + + + float ofx = K(0,0); + float ofy = K(1,1); + float ocx = K(0,2); + float ocy = K(1,2); + + for(int i=0;i 1e-8) ? thetad / r : 1.0; + float ox = fx*ix*scaling + cx; + float oy = fy*iy*scaling + cy; + + out_x[i] = ox; + out_y[i] = oy; + } +} + + + +UndistortKB::UndistortKB(const char* configFileName, bool noprefix) +{ + printf("Creating KannalaBrandt undistorter\n"); + + if(noprefix) + readFromFile(configFileName, 8); + else + readFromFile(configFileName, 8,"KannalaBrandt "); +} +UndistortKB::~UndistortKB() +{ +} + +void UndistortKB::distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const +{ + const float fx = parsOrg[0]; + const float fy = parsOrg[1]; + const float cx = parsOrg[2]; + const float cy = parsOrg[3]; + const float k0 = parsOrg[4]; + const float k1 = parsOrg[5]; + const float k2 = parsOrg[6]; + const float k3 = parsOrg[7]; + + const float ofx = K(0,0); + const float ofy = K(1,1); + const float ocx = K(0,2); + const float ocy = K(1,2); + + + for(int i=0;i, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +#pragma once + +#include "util/ImageAndExposure.h" +#include "util/MinimalImage.h" +#include "util/NumType.h" +#include "Eigen/Core" + + + + + +namespace dso +{ + + +class PhotometricUndistorter +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + PhotometricUndistorter(std::string file, std::string noiseImage, std::string vignetteImage, int w_, int h_); + ~PhotometricUndistorter(); + + // removes readout noise, and converts to irradiance. + // affine normalizes values to 0 <= I < 256. + // raw irradiance = a*I + b. + // output will be written in [output]. + template void processFrame(T* image_in, float exposure_time, float factor=1); + void unMapFloatImage(float* image); + + ImageAndExposure* output; + + float* getG() {if(!valid) return 0; else return G;}; +private: + float G[256*256]; + int GDepth; + float* vignetteMap; + float* vignetteMapInv; + int w,h; + bool valid; +}; + + +class Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + virtual ~Undistort(); + + virtual void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const = 0; + + + inline const Mat33 getK() const {return K;}; + inline const Eigen::Vector2i getSize() const {return Eigen::Vector2i(w,h);}; + inline const VecX getOriginalParameter() const {return parsOrg;}; + inline const Eigen::Vector2i getOriginalSize() {return Eigen::Vector2i(wOrg,hOrg);}; + inline bool isValid() {return valid;}; + + template + ImageAndExposure* undistort(const MinimalImage* image_raw, float exposure=0, double timestamp=0, float factor=1) const; + static Undistort* getUndistorterForFile(std::string configFilename, std::string gammaFilename, std::string vignetteFilename); + + void loadPhotometricCalibration(std::string file, std::string noiseImage, std::string vignetteImage); + + PhotometricUndistorter* photometricUndist; + +protected: + int w, h, wOrg, hOrg, wUp, hUp; + int upsampleUndistFactor; + Mat33 K; + VecX parsOrg; + bool valid; + bool passthrough; + + float* remapX; + float* remapY; + + void applyBlurNoise(float* img) const; + + void makeOptimalK_crop(); + void makeOptimalK_full(); + + void readFromFile(const char* configFileName, int nPars, std::string prefix = ""); +}; + +class UndistortFOV : public Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + + UndistortFOV(const char* configFileName, bool noprefix); + ~UndistortFOV(); + void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const; + +}; + +class UndistortRadTan : public Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + UndistortRadTan(const char* configFileName, bool noprefix); + ~UndistortRadTan(); + void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const; + +}; + +class UndistortEquidistant : public Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + UndistortEquidistant(const char* configFileName, bool noprefix); + ~UndistortEquidistant(); + void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const; + +}; + +class UndistortPinhole : public Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + UndistortPinhole(const char* configFileName, bool noprefix); + ~UndistortPinhole(); + void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const; + +private: + float inputCalibration[8]; +}; + +class UndistortKB : public Undistort +{ +public: + EIGEN_MAKE_ALIGNED_OPERATOR_NEW; + UndistortKB(const char* configFileName, bool noprefix); + ~UndistortKB(); + void distortCoordinates(float* in_x, float* in_y, float* out_x, float* out_y, int n) const; + +}; + +} + diff --git a/src/util/globalCalib.cpp b/src/util/globalCalib.cpp new file mode 100644 index 0000000..f0005f6 --- /dev/null +++ b/src/util/globalCalib.cpp @@ -0,0 +1,108 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "util/globalCalib.h" +#include "stdio.h" +#include + +namespace dso +{ + int wG[PYR_LEVELS], hG[PYR_LEVELS]; + float fxG[PYR_LEVELS], fyG[PYR_LEVELS], + cxG[PYR_LEVELS], cyG[PYR_LEVELS]; + + float fxiG[PYR_LEVELS], fyiG[PYR_LEVELS], + cxiG[PYR_LEVELS], cyiG[PYR_LEVELS]; + + Eigen::Matrix3f KG[PYR_LEVELS], KiG[PYR_LEVELS]; + + + float wM3G; + float hM3G; + + void setGlobalCalib(int w, int h,const Eigen::Matrix3f &K) + { + int wlvl=w; + int hlvl=h; + pyrLevelsUsed=1; + while(wlvl%2==0 && hlvl%2==0 && wlvl*hlvl > 5000 && pyrLevelsUsed < PYR_LEVELS) + { + wlvl /=2; + hlvl /=2; + pyrLevelsUsed++; + } + printf("using pyramid levels 0 to %d. coarsest resolution: %d x %d!\n", + pyrLevelsUsed-1, wlvl, hlvl); + if(wlvl>100 && hlvl > 100) + { + printf("\n\n===============WARNING!===================\n " + "using not enough pyramid levels.\n" + "Consider scaling to a resolution that is a multiple of a power of 2.\n"); + } + if(pyrLevelsUsed < 3) + { + printf("\n\n===============WARNING!===================\n " + "I need higher resolution.\n" + "I will probably segfault.\n"); + } + + wM3G = w-3; + hM3G = h-3; + + wG[0] = w; + hG[0] = h; + KG[0] = K; + fxG[0] = K(0,0); + fyG[0] = K(1,1); + cxG[0] = K(0,2); + cyG[0] = K(1,2); + KiG[0] = KG[0].inverse(); + fxiG[0] = KiG[0](0,0); + fyiG[0] = KiG[0](1,1); + cxiG[0] = KiG[0](0,2); + cyiG[0] = KiG[0](1,2); + + for (int level = 1; level < pyrLevelsUsed; ++ level) + { + wG[level] = w >> level; + hG[level] = h >> level; + + fxG[level] = fxG[level-1] * 0.5; + fyG[level] = fyG[level-1] * 0.5; + cxG[level] = (cxG[0] + 0.5) / ((int)1<, +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include "util/settings.h" +#include "util/NumType.h" + +namespace dso +{ + extern int wG[PYR_LEVELS], hG[PYR_LEVELS]; + extern float fxG[PYR_LEVELS], fyG[PYR_LEVELS], + cxG[PYR_LEVELS], cyG[PYR_LEVELS]; + + extern float fxiG[PYR_LEVELS], fyiG[PYR_LEVELS], + cxiG[PYR_LEVELS], cyiG[PYR_LEVELS]; + + extern Eigen::Matrix3f KG[PYR_LEVELS],KiG[PYR_LEVELS]; + + extern float wM3G; + extern float hM3G; + + void setGlobalCalib(int w, int h, const Eigen::Matrix3f &K ); +} diff --git a/src/util/globalFuncs.h b/src/util/globalFuncs.h new file mode 100644 index 0000000..c910fc2 --- /dev/null +++ b/src/util/globalFuncs.h @@ -0,0 +1,382 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once +#include "util/settings.h" +#include "util/NumType.h" +#include "IOWrapper/ImageDisplay.h" +#include "fstream" + +namespace dso +{ + + + +// reads interpolated element from a uchar* array +// SSE2 optimization possible +EIGEN_ALWAYS_INLINE float getInterpolatedElement(const float* const mat, const float x, const float y, const int width) +{ + //stats.num_pixelInterpolations++; + + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const float* bp = mat +ix+iy*width; + + + float res = dxdy * bp[1+width] + + (dy-dxdy) * bp[width] + + (dx-dxdy) * bp[1] + + (1-dx-dy+dxdy) * bp[0]; + + return res; +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement43(const Eigen::Vector4f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector4f* bp = mat +ix+iy*width; + + + return dxdy * *(const Eigen::Vector3f*)(bp+1+width) + + (dy-dxdy) * *(const Eigen::Vector3f*)(bp+width) + + (dx-dxdy) * *(const Eigen::Vector3f*)(bp+1) + + (1-dx-dy+dxdy) * *(const Eigen::Vector3f*)(bp); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement33(const Eigen::Vector3f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + + return dxdy * *(const Eigen::Vector3f*)(bp+1+width) + + (dy-dxdy) * *(const Eigen::Vector3f*)(bp+width) + + (dx-dxdy) * *(const Eigen::Vector3f*)(bp+1) + + (1-dx-dy+dxdy) * *(const Eigen::Vector3f*)(bp); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement33OverAnd(const Eigen::Vector3f* const mat, const bool* overMat, const float x, const float y, const int width, bool& over_out) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + const bool* bbp = overMat +ix+iy*width; + over_out = bbp[1+width] && bbp[1] && bbp[width] && bbp[0]; + + return dxdy * *(const Eigen::Vector3f*)(bp+1+width) + + (dy-dxdy) * *(const Eigen::Vector3f*)(bp+width) + + (dx-dxdy) * *(const Eigen::Vector3f*)(bp+1) + + (1-dx-dy+dxdy) * *(const Eigen::Vector3f*)(bp); +} +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement33OverOr(const Eigen::Vector3f* const mat, const bool* overMat, const float x, const float y, const int width, bool& over_out) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + const bool* bbp = overMat +ix+iy*width; + over_out = bbp[1+width] || bbp[1] || bbp[width] || bbp[0]; + + return dxdy * *(const Eigen::Vector3f*)(bp+1+width) + + (dy-dxdy) * *(const Eigen::Vector3f*)(bp+width) + + (dx-dxdy) * *(const Eigen::Vector3f*)(bp+1) + + (1-dx-dy+dxdy) * *(const Eigen::Vector3f*)(bp); +} + +EIGEN_ALWAYS_INLINE float getInterpolatedElement31(const Eigen::Vector3f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + + return dxdy * (*(const Eigen::Vector3f*)(bp+1+width))[0] + + (dy-dxdy) * (*(const Eigen::Vector3f*)(bp+width))[0] + + (dx-dxdy) * (*(const Eigen::Vector3f*)(bp+1))[0] + + (1-dx-dy+dxdy) * (*(const Eigen::Vector3f*)(bp))[0]; +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement13BiLin(const float* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + const float* bp = mat +ix+iy*width; + + float tl = *(bp); + float tr = *(bp+1); + float bl = *(bp+width); + float br = *(bp+width+1); + + float dx = x - ix; + float dy = y - iy; + float topInt = dx * tr + (1-dx) * tl; + float botInt = dx * br + (1-dx) * bl; + float leftInt = dy * bl + (1-dy) * tl; + float rightInt = dy * br + (1-dy) * tr; + + return Eigen::Vector3f( + dx * rightInt + (1-dx) * leftInt, + rightInt-leftInt, + botInt-topInt); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement33BiLin(const Eigen::Vector3f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + float tl = (*(bp))[0]; + float tr = (*(bp+1))[0]; + float bl = (*(bp+width))[0]; + float br = (*(bp+width+1))[0]; + + float dx = x - ix; + float dy = y - iy; + float topInt = dx * tr + (1-dx) * tl; + float botInt = dx * br + (1-dx) * bl; + float leftInt = dy * bl + (1-dy) * tl; + float rightInt = dy * br + (1-dy) * tr; + + return Eigen::Vector3f( + dx * rightInt + (1-dx) * leftInt, + rightInt-leftInt, + botInt-topInt); +} +EIGEN_ALWAYS_INLINE float getInterpolatedElement11Cub(const float* const p, const float x) // for x=0, this returns p[1]. +{ + return p[1] + 0.5f * x*(p[2] - p[0] + x*(2.0f*p[0] - 5.0f*p[1] + 4.0f*p[2] - p[3] + x*(3.0f*(p[1] - p[2]) + p[3] - p[0]))); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector2f getInterpolatedElement12Cub(const float* const p, const float x) // for x=0, this returns p[1]. +{ + float c1 = 0.5f * (p[2] - p[0]); + float c2 = p[0]-2.5f*p[1]+2*p[2]-0.5f*p[3]; + float c3 = 0.5f*(3.0f*(p[1]-p[2])+p[3]-p[0]); + float xx = x*x; + float xxx = xx*x; + return Eigen::Vector2f(p[1] + x*c1 + xx*c2 + xxx*c3, c1 + x*2.0f*c2 + xx*3.0f*c3); +} +EIGEN_ALWAYS_INLINE Eigen::Vector2f getInterpolatedElement32Cub(const Eigen::Vector3f* const p, const float x) // for x=0, this returns p[1]. +{ + float c1 = 0.5f * (p[2][0] - p[0][0]); + float c2 = p[0][0]-2.5f*p[1][0]+2*p[2][0]-0.5f*p[3][0]; + float c3 = 0.5f*(3.0f*(p[1][0]-p[2][0])+p[3][0]-p[0][0]); + float xx = x*x; + float xxx = xx*x; + return Eigen::Vector2f(p[1][0] + x*c1 + xx*c2 + xxx*c3, c1 + x*2.0f*c2 + xx*3.0f*c3); +} + +EIGEN_ALWAYS_INLINE float getInterpolatedElement11BiCub(const float* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + const float* bp = mat +ix+iy*width; + + float val[4]; + val[0] =getInterpolatedElement11Cub(bp-width-1, dx); + val[1] =getInterpolatedElement11Cub(bp-1, dx); + val[2] =getInterpolatedElement11Cub(bp+width-1, dx); + val[3] =getInterpolatedElement11Cub(bp+2*width-1, dx); + + float dy = y - iy; + return getInterpolatedElement11Cub(val, dy); +} +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement13BiCub(const float* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + const float* bp = mat +ix+iy*width; + + float val[4]; + float grad[4]; + Eigen::Vector2f v = getInterpolatedElement12Cub(bp-width-1, dx); + val[0] = v[0]; grad[0] = v[1]; + + v = getInterpolatedElement12Cub(bp-1, dx); + val[1] = v[0]; grad[1] = v[1]; + + v = getInterpolatedElement12Cub(bp+width-1, dx); + val[2] = v[0]; grad[2] = v[1]; + + v = getInterpolatedElement12Cub(bp+2*width-1, dx); + val[3] = v[0]; grad[3] = v[1]; + + float dy = y - iy; + v = getInterpolatedElement12Cub(val, dy); + + return Eigen::Vector3f(v[0], getInterpolatedElement11Cub(grad, dy), v[1]); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector3f getInterpolatedElement33BiCub(const Eigen::Vector3f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + const Eigen::Vector3f* bp = mat +ix+iy*width; + + float val[4]; + float grad[4]; + Eigen::Vector2f v = getInterpolatedElement32Cub(bp-width-1, dx); + val[0] = v[0]; grad[0] = v[1]; + + v = getInterpolatedElement32Cub(bp-1, dx); + val[1] = v[0]; grad[1] = v[1]; + + v = getInterpolatedElement32Cub(bp+width-1, dx); + val[2] = v[0]; grad[2] = v[1]; + + v = getInterpolatedElement32Cub(bp+2*width-1, dx); + val[3] = v[0]; grad[3] = v[1]; + + float dy = y - iy; + v = getInterpolatedElement12Cub(val, dy); + + return Eigen::Vector3f(v[0], getInterpolatedElement11Cub(grad, dy), v[1]); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector4f getInterpolatedElement44(const Eigen::Vector4f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector4f* bp = mat +ix+iy*width; + + + return dxdy * *(bp+1+width) + + (dy-dxdy) * *(bp+width) + + (dx-dxdy) * *(bp+1) + + (1-dx-dy+dxdy) * *(bp); +} + +EIGEN_ALWAYS_INLINE Eigen::Vector2f getInterpolatedElement42(const Eigen::Vector4f* const mat, const float x, const float y, const int width) +{ + int ix = (int)x; + int iy = (int)y; + float dx = x - ix; + float dy = y - iy; + float dxdy = dx*dy; + const Eigen::Vector4f* bp = mat +ix+iy*width; + + + return dxdy * *(const Eigen::Vector2f*)(bp+1+width) + + (dy-dxdy) * *(const Eigen::Vector2f*)(bp+width) + + (dx-dxdy) * *(const Eigen::Vector2f*)(bp+1) + + (1-dx-dy+dxdy) * *(const Eigen::Vector2f*)(bp); +} + + + +inline Vec3f makeRainbowf3F(float id) +{ + id *= freeDebugParam3; + if(id < 0) + return Vec3f(1,1,1); + + int icP = id; + float ifP = id-icP; + icP = icP%3; + + if(icP == 0) return Vec3f((1-ifP), ifP, 0); + if(icP == 1) return Vec3f(0, (1-ifP), ifP); + if(icP == 2) return Vec3f(ifP, 0, (1-ifP)); + assert(false); + return Vec3f(1,1,1); +} + +inline Vec3b makeRainbow3B(float id) +{ + id *= freeDebugParam3; + if(!(id > 0)) + return Vec3b(255,255,255); + + int icP = id; + float ifP = id-icP; + icP = icP%3; + + if(icP == 0) return Vec3b(255*(1-ifP), 255*ifP, 0); + if(icP == 1) return Vec3b(0, 255*(1-ifP), 255*ifP); + if(icP == 2) return Vec3b(255*ifP, 0, 255*(1-ifP)); + return Vec3b(255,255,255); +} + +inline Vec3b makeJet3B(float id) +{ + if(id <= 0) return Vec3b(128,0,0); + if(id >= 1) return Vec3b(0,0,128); + + int icP = (id*8); + float ifP = (id*8)-icP; + + if(icP == 0) return Vec3b(255*(0.5+0.5*ifP), 0, 0); + if(icP == 1) return Vec3b(255, 255*(0.5*ifP), 0); + if(icP == 2) return Vec3b(255, 255*(0.5+0.5*ifP), 0); + if(icP == 3) return Vec3b(255*(1-0.5*ifP), 255, 255*(0.5*ifP)); + if(icP == 4) return Vec3b(255*(0.5-0.5*ifP), 255, 255*(0.5+0.5*ifP)); + if(icP == 5) return Vec3b(0, 255*(1-0.5*ifP), 255); + if(icP == 6) return Vec3b(0, 255*(0.5-0.5*ifP), 255); + if(icP == 7) return Vec3b(0, 0, 255*(1-0.5*ifP)); + return Vec3b(255,255,255); +} + +inline Vec3b makeRedGreen3B(float val) // 0 = red, 1=green, 0.5=yellow. +{ + if(val < 0) return Vec3b(0,0,255); + else if(val < 0.5) return Vec3b(0,255*2*val,255); + else if(val < 1) return Vec3b(0,255,255-255*2*(val-0.5)); + else return Vec3b(0,255,0); + +} + + + + + +} diff --git a/src/util/nanoflann.h b/src/util/nanoflann.h new file mode 100644 index 0000000..65f9efb --- /dev/null +++ b/src/util/nanoflann.h @@ -0,0 +1,1412 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + +/*********************************************************************** + * Software License Agreement (BSD License) + * + * Copyright 2008-2009 Marius Muja (mariusm@cs.ubc.ca). All rights reserved. + * Copyright 2008-2009 David G. Lowe (lowe@cs.ubc.ca). All rights reserved. + * Copyright 2011-2014 Jose Luis Blanco (joseluisblancoc@gmail.com). + * All rights reserved. + * + * THE BSD LICENSE + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR + * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. + * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT + * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF + * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + *************************************************************************/ + +/** \mainpage nanoflann C++ API documentation + * nanoflann is a C++ header-only library for building KD-Trees, mostly + * optimized for 2D or 3D point clouds. + * + * nanoflann does not require compiling or installing, just an + * #include in your code. + * + * See: + * - C++ API organized by modules + * - Online README + */ + +#pragma once +#include +#include +#include +#include +#include // for fwrite() +#include // for fabs(),... +#include + + + + +namespace nanoflann +{ +/** @addtogroup nanoflann_grp nanoflann C++ library for ANN + * @{ */ + + /** Library version: 0xMmP (M=Major,m=minor,P=patch) */ + #define NANOFLANN_VERSION 0x119 + + /** @addtogroup result_sets_grp Result set classes + * @{ */ + template + class KNNResultSet + { + IndexType * indices; + DistanceType* dists; + CountType capacity; + CountType count; + + public: + inline KNNResultSet(CountType capacity_) : indices(0), dists(0), capacity(capacity_), count(0) + { + } + + inline void init(IndexType* indices_, DistanceType* dists_) + { + indices = indices_; + dists = dists_; + count = 0; + if (capacity) + dists[capacity-1] = (std::numeric_limits::max)(); + } + + inline CountType size() const + { + return count; + } + + inline bool full() const + { + return count == capacity; + } + + + inline void addPoint(DistanceType dist, IndexType index) + { + CountType i; + for (i=count; i>0; --i) { +#ifdef NANOFLANN_FIRST_MATCH // If defined and two points have the same distance, the one with the lowest-index will be returned first. + if ( (dists[i-1]>dist) || ((dist==dists[i-1])&&(indices[i-1]>index)) ) { +#else + if (dists[i-1]>dist) { +#endif + if (i + class RadiusResultSet + { + public: + const DistanceType radius; + + std::vector >& m_indices_dists; + + inline RadiusResultSet(DistanceType radius_, std::vector >& indices_dists) : radius(radius_), m_indices_dists(indices_dists) + { + init(); + } + + inline ~RadiusResultSet() { } + + inline void init() { clear(); } + inline void clear() { m_indices_dists.clear(); } + + inline size_t size() const { return m_indices_dists.size(); } + + inline bool full() const { return true; } + + inline void addPoint(DistanceType dist, IndexType index) + { + if (dist 0 + */ + std::pair worst_item() const + { + if (m_indices_dists.empty()) throw std::runtime_error("Cannot invoke RadiusResultSet::worst_item() on an empty list of results."); + typedef typename std::vector >::const_iterator DistIt; + DistIt it = std::max_element(m_indices_dists.begin(), m_indices_dists.end()); + return *it; + } + }; + + /** operator "<" for std::sort() */ + struct IndexDist_Sorter + { + /** PairType will be typically: std::pair */ + template + inline bool operator()(const PairType &p1, const PairType &p2) const { + return p1.second < p2.second; + } + }; + + /** @} */ + + + /** @addtogroup loadsave_grp Load/save auxiliary functions + * @{ */ + template + void save_value(FILE* stream, const T& value, size_t count = 1) + { + fwrite(&value, sizeof(value),count, stream); + } + + template + void save_value(FILE* stream, const std::vector& value) + { + size_t size = value.size(); + fwrite(&size, sizeof(size_t), 1, stream); + fwrite(&value[0], sizeof(T), size, stream); + } + + template + void load_value(FILE* stream, T& value, size_t count = 1) + { + size_t read_cnt = fread(&value, sizeof(value), count, stream); + if (read_cnt != count) { + throw std::runtime_error("Cannot read from file"); + } + } + + + template + void load_value(FILE* stream, std::vector& value) + { + size_t size; + size_t read_cnt = fread(&size, sizeof(size_t), 1, stream); + if (read_cnt!=1) { + throw std::runtime_error("Cannot read from file"); + } + value.resize(size); + read_cnt = fread(&value[0], sizeof(T), size, stream); + if (read_cnt!=size) { + throw std::runtime_error("Cannot read from file"); + } + } + /** @} */ + + + /** @addtogroup metric_grp Metric (distance) classes + * @{ */ + + template inline T abs(T x) { return (x<0) ? -x : x; } + template<> inline int abs(int x) { return ::abs(x); } + template<> inline float abs(float x) { return fabsf(x); } + template<> inline double abs(double x) { return fabs(x); } + template<> inline long double abs(long double x) { return fabsl(x); } + + /** Manhattan distance functor (generic version, optimized for high-dimensionality data sets). + * Corresponding distance traits: nanoflann::metric_L1 + * \tparam T Type of the elements (e.g. double, float, uint8_t) + * \tparam _DistanceType Type of distance variables (must be signed) (e.g. float, double, int64_t) + */ + template + struct L1_Adaptor + { + typedef T ElementType; + typedef _DistanceType DistanceType; + + const DataSource &data_source; + + L1_Adaptor(const DataSource &_data_source) : data_source(_data_source) { } + + inline DistanceType operator()(const T* a, const size_t b_idx, size_t size, DistanceType worst_dist = -1) const + { + DistanceType result = DistanceType(); + const T* last = a + size; + const T* lastgroup = last - 3; + size_t d = 0; + + /* Process 4 items with each loop for efficiency. */ + while (a < lastgroup) { + const DistanceType diff0 = nanoflann::abs(a[0] - data_source.kdtree_get_pt(b_idx,d++)); + const DistanceType diff1 = nanoflann::abs(a[1] - data_source.kdtree_get_pt(b_idx,d++)); + const DistanceType diff2 = nanoflann::abs(a[2] - data_source.kdtree_get_pt(b_idx,d++)); + const DistanceType diff3 = nanoflann::abs(a[3] - data_source.kdtree_get_pt(b_idx,d++)); + result += diff0 + diff1 + diff2 + diff3; + a += 4; + if ((worst_dist>0)&&(result>worst_dist)) { + return result; + } + } + /* Process last 0-3 components. Not needed for standard vector lengths. */ + while (a < last) { + result += nanoflann::abs( *a++ - data_source.kdtree_get_pt(b_idx,d++) ); + } + return result; + } + + template + inline DistanceType accum_dist(const U a, const V b, int ) const + { + return nanoflann::abs(a-b); + } + }; + + /** Squared Euclidean distance functor (generic version, optimized for high-dimensionality data sets). + * Corresponding distance traits: nanoflann::metric_L2 + * \tparam T Type of the elements (e.g. double, float, uint8_t) + * \tparam _DistanceType Type of distance variables (must be signed) (e.g. float, double, int64_t) + */ + template + struct L2_Adaptor + { + typedef T ElementType; + typedef _DistanceType DistanceType; + + const DataSource &data_source; + + L2_Adaptor(const DataSource &_data_source) : data_source(_data_source) { } + + inline DistanceType operator()(const T* a, const size_t b_idx, size_t size, DistanceType worst_dist = -1) const + { + DistanceType result = DistanceType(); + const T* last = a + size; + const T* lastgroup = last - 3; + size_t d = 0; + + /* Process 4 items with each loop for efficiency. */ + while (a < lastgroup) { + const DistanceType diff0 = a[0] - data_source.kdtree_get_pt(b_idx,d++); + const DistanceType diff1 = a[1] - data_source.kdtree_get_pt(b_idx,d++); + const DistanceType diff2 = a[2] - data_source.kdtree_get_pt(b_idx,d++); + const DistanceType diff3 = a[3] - data_source.kdtree_get_pt(b_idx,d++); + result += diff0 * diff0 + diff1 * diff1 + diff2 * diff2 + diff3 * diff3; + a += 4; + if ((worst_dist>0)&&(result>worst_dist)) { + return result; + } + } + /* Process last 0-3 components. Not needed for standard vector lengths. */ + while (a < last) { + const DistanceType diff0 = *a++ - data_source.kdtree_get_pt(b_idx,d++); + result += diff0 * diff0; + } + return result; + } + + template + inline DistanceType accum_dist(const U a, const V b, int ) const + { + return (a-b)*(a-b); + } + }; + + /** Squared Euclidean (L2) distance functor (suitable for low-dimensionality datasets, like 2D or 3D point clouds) + * Corresponding distance traits: nanoflann::metric_L2_Simple + * \tparam T Type of the elements (e.g. double, float, uint8_t) + * \tparam _DistanceType Type of distance variables (must be signed) (e.g. float, double, int64_t) + */ + template + struct L2_Simple_Adaptor + { + typedef T ElementType; + typedef _DistanceType DistanceType; + + const DataSource &data_source; + + L2_Simple_Adaptor(const DataSource &_data_source) : data_source(_data_source) { } + + inline DistanceType operator()(const T* a, const size_t b_idx, size_t size) const { + return data_source.kdtree_distance(a,b_idx,size); + } + + template + inline DistanceType accum_dist(const U a, const V b, int ) const + { + return (a-b)*(a-b); + } + }; + + /** Metaprogramming helper traits class for the L1 (Manhattan) metric */ + struct metric_L1 { + template + struct traits { + typedef L1_Adaptor distance_t; + }; + }; + /** Metaprogramming helper traits class for the L2 (Euclidean) metric */ + struct metric_L2 { + template + struct traits { + typedef L2_Adaptor distance_t; + }; + }; + /** Metaprogramming helper traits class for the L2_simple (Euclidean) metric */ + struct metric_L2_Simple { + template + struct traits { + typedef L2_Simple_Adaptor distance_t; + }; + }; + + /** @} */ + + /** @addtogroup param_grp Parameter structs + * @{ */ + + /** Parameters (see README.md) */ + struct KDTreeSingleIndexAdaptorParams + { + KDTreeSingleIndexAdaptorParams(size_t _leaf_max_size = 10) : + leaf_max_size(_leaf_max_size) + {} + + size_t leaf_max_size; + }; + + /** Search options for KDTreeSingleIndexAdaptor::findNeighbors() */ + struct SearchParams + { + /** Note: The first argument (checks_IGNORED_) is ignored, but kept for compatibility with the FLANN interface */ + SearchParams(int checks_IGNORED_ = 32, float eps_ = 0, bool sorted_ = true ) : + checks(checks_IGNORED_), eps(eps_), sorted(sorted_) {} + + int checks; //!< Ignored parameter (Kept for compatibility with the FLANN interface). + float eps; //!< search for eps-approximate neighbours (default: 0) + bool sorted; //!< only for radius search, require neighbours sorted by distance (default: true) + }; + /** @} */ + + + /** @addtogroup memalloc_grp Memory allocation + * @{ */ + + /** + * Allocates (using C's malloc) a generic type T. + * + * Params: + * count = number of instances to allocate. + * Returns: pointer (of type T*) to memory buffer + */ + template + inline T* allocate(size_t count = 1) + { + T* mem = static_cast( ::malloc(sizeof(T)*count)); + return mem; + } + + + /** + * Pooled storage allocator + * + * The following routines allow for the efficient allocation of storage in + * small chunks from a specified pool. Rather than allowing each structure + * to be freed individually, an entire pool of storage is freed at once. + * This method has two advantages over just using malloc() and free(). First, + * it is far more efficient for allocating small objects, as there is + * no overhead for remembering all the information needed to free each + * object or consolidating fragmented memory. Second, the decision about + * how long to keep an object is made at the time of allocation, and there + * is no need to track down all the objects to free them. + * + */ + + const size_t WORDSIZE=16; + const size_t BLOCKSIZE=8192; + + class PooledAllocator + { + /* We maintain memory alignment to word boundaries by requiring that all + allocations be in multiples of the machine wordsize. */ + /* Size of machine word in bytes. Must be power of 2. */ + /* Minimum number of bytes requested at a time from the system. Must be multiple of WORDSIZE. */ + + + size_t remaining; /* Number of bytes left in current block of storage. */ + void* base; /* Pointer to base of current block of storage. */ + void* loc; /* Current location in block to next allocate memory. */ + + void internal_init() + { + remaining = 0; + base = NULL; + usedMemory = 0; + wastedMemory = 0; + } + + public: + size_t usedMemory; + size_t wastedMemory; + + /** + Default constructor. Initializes a new pool. + */ + PooledAllocator() { + internal_init(); + } + + /** + * Destructor. Frees all the memory allocated in this pool. + */ + ~PooledAllocator() { + free_all(); + } + + /** Frees all allocated memory chunks */ + void free_all() + { + while (base != NULL) { + void *prev = *(static_cast( base)); /* Get pointer to prev block. */ + ::free(base); + base = prev; + } + internal_init(); + } + + /** + * Returns a pointer to a piece of new memory of the given size in bytes + * allocated from the pool. + */ + void* malloc(const size_t req_size) + { + /* Round size up to a multiple of wordsize. The following expression + only works for WORDSIZE that is a power of 2, by masking last bits of + incremented size to zero. + */ + const size_t size = (req_size + (WORDSIZE - 1)) & ~(WORDSIZE - 1); + + /* Check whether a new block must be allocated. Note that the first word + of a block is reserved for a pointer to the previous block. + */ + if (size > remaining) { + + wastedMemory += remaining; + + /* Allocate new storage. */ + const size_t blocksize = (size + sizeof(void*) + (WORDSIZE-1) > BLOCKSIZE) ? + size + sizeof(void*) + (WORDSIZE-1) : BLOCKSIZE; + + // use the standard C malloc to allocate memory + void* m = ::malloc(blocksize); + if (!m) { + fprintf(stderr,"Failed to allocate memory.\n"); + return NULL; + } + + /* Fill first word of new block with pointer to previous block. */ + static_cast(m)[0] = base; + base = m; + + size_t shift = 0; + //int size_t = (WORDSIZE - ( (((size_t)m) + sizeof(void*)) & (WORDSIZE-1))) & (WORDSIZE-1); + + remaining = blocksize - sizeof(void*) - shift; + loc = (static_cast(m) + sizeof(void*) + shift); + } + void* rloc = loc; + loc = static_cast(loc) + size; + remaining -= size; + + usedMemory += size; + + return rloc; + } + + /** + * Allocates (using this pool) a generic type T. + * + * Params: + * count = number of instances to allocate. + * Returns: pointer (of type T*) to memory buffer + */ + template + T* allocate(const size_t count = 1) + { + T* mem = static_cast(this->malloc(sizeof(T)*count)); + return mem; + } + + }; + /** @} */ + + /** @addtogroup nanoflann_metaprog_grp Auxiliary metaprogramming stuff + * @{ */ + + // ---------------- CArray ------------------------- + /** A STL container (as wrapper) for arrays of constant size defined at compile time (class imported from the MRPT project) + * This code is an adapted version from Boost, modifed for its integration + * within MRPT (JLBC, Dec/2009) (Renamed array -> CArray to avoid possible potential conflicts). + * See + * http://www.josuttis.com/cppcode + * for details and the latest version. + * See + * http://www.boost.org/libs/array for Documentation. + * for documentation. + * + * (C) Copyright Nicolai M. Josuttis 2001. + * Permission to copy, use, modify, sell and distribute this software + * is granted provided this copyright notice appears in all copies. + * This software is provided "as is" without express or implied + * warranty, and with no claim as to its suitability for any purpose. + * + * 29 Jan 2004 - minor fixes (Nico Josuttis) + * 04 Dec 2003 - update to synch with library TR1 (Alisdair Meredith) + * 23 Aug 2002 - fix for Non-MSVC compilers combined with MSVC libraries. + * 05 Aug 2001 - minor update (Nico Josuttis) + * 20 Jan 2001 - STLport fix (Beman Dawes) + * 29 Sep 2000 - Initial Revision (Nico Josuttis) + * + * Jan 30, 2004 + */ + template + class CArray { + public: + T elems[N]; // fixed-size array of elements of type T + + public: + // type definitions + typedef T value_type; + typedef T* iterator; + typedef const T* const_iterator; + typedef T& reference; + typedef const T& const_reference; + typedef std::size_t size_type; + typedef std::ptrdiff_t difference_type; + + // iterator support + inline iterator begin() { return elems; } + inline const_iterator begin() const { return elems; } + inline iterator end() { return elems+N; } + inline const_iterator end() const { return elems+N; } + + // reverse iterator support +#if !defined(BOOST_NO_TEMPLATE_PARTIAL_SPECIALIZATION) && !defined(BOOST_MSVC_STD_ITERATOR) && !defined(BOOST_NO_STD_ITERATOR_TRAITS) + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#elif defined(_MSC_VER) && (_MSC_VER == 1300) && defined(BOOST_DINKUMWARE_STDLIB) && (BOOST_DINKUMWARE_STDLIB == 310) + // workaround for broken reverse_iterator in VC7 + typedef std::reverse_iterator > reverse_iterator; + typedef std::reverse_iterator > const_reverse_iterator; +#else + // workaround for broken reverse_iterator implementations + typedef std::reverse_iterator reverse_iterator; + typedef std::reverse_iterator const_reverse_iterator; +#endif + + reverse_iterator rbegin() { return reverse_iterator(end()); } + const_reverse_iterator rbegin() const { return const_reverse_iterator(end()); } + reverse_iterator rend() { return reverse_iterator(begin()); } + const_reverse_iterator rend() const { return const_reverse_iterator(begin()); } + // operator[] + inline reference operator[](size_type i) { return elems[i]; } + inline const_reference operator[](size_type i) const { return elems[i]; } + // at() with range check + reference at(size_type i) { rangecheck(i); return elems[i]; } + const_reference at(size_type i) const { rangecheck(i); return elems[i]; } + // front() and back() + reference front() { return elems[0]; } + const_reference front() const { return elems[0]; } + reference back() { return elems[N-1]; } + const_reference back() const { return elems[N-1]; } + // size is constant + static inline size_type size() { return N; } + static bool empty() { return false; } + static size_type max_size() { return N; } + enum { static_size = N }; + /** This method has no effects in this class, but raises an exception if the expected size does not match */ + inline void resize(const size_t nElements) { if (nElements!=N) throw std::logic_error("Try to change the size of a CArray."); } + // swap (note: linear complexity in N, constant for given instantiation) + void swap (CArray& y) { std::swap_ranges(begin(),end(),y.begin()); } + // direct access to data (read-only) + const T* data() const { return elems; } + // use array as C array (direct read/write access to data) + T* data() { return elems; } + // assignment with type conversion + template CArray& operator= (const CArray& rhs) { + std::copy(rhs.begin(),rhs.end(), begin()); + return *this; + } + // assign one value to all elements + inline void assign (const T& value) { for (size_t i=0;i= size()) { throw std::out_of_range("CArray<>: index out of range"); } } + }; // end of CArray + + /** Used to declare fixed-size arrays when DIM>0, dynamically-allocated vectors when DIM=-1. + * Fixed size version for a generic DIM: + */ + template + struct array_or_vector_selector + { + typedef CArray container_t; + }; + /** Dynamic size version */ + template + struct array_or_vector_selector<-1,T> { + typedef std::vector container_t; + }; + /** @} */ + + /** @addtogroup kdtrees_grp KD-tree classes and adaptors + * @{ */ + + /** kd-tree index + * + * Contains the k-d trees and other information for indexing a set of points + * for nearest-neighbor matching. + * + * The class "DatasetAdaptor" must provide the following interface (can be non-virtual, inlined methods): + * + * \code + * // Must return the number of data poins + * inline size_t kdtree_get_point_count() const { ... } + * + * // [Only if using the metric_L2_Simple type] Must return the Euclidean (L2) distance between the vector "p1[0:size-1]" and the data point with index "idx_p2" stored in the class: + * inline DistanceType kdtree_distance(const T *p1, const size_t idx_p2,size_t size) const { ... } + * + * // Must return the dim'th component of the idx'th point in the class: + * inline T kdtree_get_pt(const size_t idx, int dim) const { ... } + * + * // Optional bounding-box computation: return false to default to a standard bbox computation loop. + * // Return true if the BBOX was already computed by the class and returned in "bb" so it can be avoided to redo it again. + * // Look at bb.size() to find out the expected dimensionality (e.g. 2 or 3 for point clouds) + * template + * bool kdtree_get_bbox(BBOX &bb) const + * { + * bb[0].low = ...; bb[0].high = ...; // 0th dimension limits + * bb[1].low = ...; bb[1].high = ...; // 1st dimension limits + * ... + * return true; + * } + * + * \endcode + * + * \tparam DatasetAdaptor The user-provided adaptor (see comments above). + * \tparam Distance The distance metric to use: nanoflann::metric_L1, nanoflann::metric_L2, nanoflann::metric_L2_Simple, etc. + * \tparam DIM Dimensionality of data points (e.g. 3 for 3D points) + * \tparam IndexType Will be typically size_t or int + */ + template + class KDTreeSingleIndexAdaptor + { + private: + /** Hidden copy constructor, to disallow copying indices (Not implemented) */ + KDTreeSingleIndexAdaptor(const KDTreeSingleIndexAdaptor&); + public: + typedef typename Distance::ElementType ElementType; + typedef typename Distance::DistanceType DistanceType; + protected: + + /** + * Array of indices to vectors in the dataset. + */ + std::vector vind; + + size_t m_leaf_max_size; + + + /** + * The dataset used by this index + */ + const DatasetAdaptor &dataset; //!< The source of our data + + const KDTreeSingleIndexAdaptorParams index_params; + + size_t m_size; //!< Number of current poins in the dataset + size_t m_size_at_index_build; //!< Number of points in the dataset when the index was built + int dim; //!< Dimensionality of each data point + + + /*--------------------- Internal Data Structures --------------------------*/ + struct Node + { + /** Union used because a node can be either a LEAF node or a non-leaf node, so both data fields are never used simultaneously */ + union { + struct { + IndexType left, right; //!< Indices of points in leaf node + } lr; + struct { + int divfeat; //!< Dimension used for subdivision. + DistanceType divlow, divhigh; //!< The values used for subdivision. + } sub; + }; + Node* child1, * child2; //!< Child nodes (both=NULL mean its a leaf node) + }; + typedef Node* NodePtr; + + + struct Interval + { + ElementType low, high; + }; + + /** Define "BoundingBox" as a fixed-size or variable-size container depending on "DIM" */ + typedef typename array_or_vector_selector::container_t BoundingBox; + + /** Define "distance_vector_t" as a fixed-size or variable-size container depending on "DIM" */ + typedef typename array_or_vector_selector::container_t distance_vector_t; + + /** The KD-tree used to find neighbours */ + NodePtr root_node; + BoundingBox root_bbox; + + /** + * Pooled memory allocator. + * + * Using a pooled memory allocator is more efficient + * than allocating memory directly when there is a large + * number small of memory allocations. + */ + PooledAllocator pool; + + public: + + Distance distance; + + /** + * KDTree constructor + * + * Refer to docs in README.md or online in https://github.com/jlblancoc/nanoflann + * + * The KD-Tree point dimension (the length of each point in the datase, e.g. 3 for 3D points) + * is determined by means of: + * - The \a DIM template parameter if >0 (highest priority) + * - Otherwise, the \a dimensionality parameter of this constructor. + * + * @param inputData Dataset with the input features + * @param params Basically, the maximum leaf node size + */ + KDTreeSingleIndexAdaptor(const int dimensionality, const DatasetAdaptor& inputData, const KDTreeSingleIndexAdaptorParams& params = KDTreeSingleIndexAdaptorParams() ) : + dataset(inputData), index_params(params), root_node(NULL), distance(inputData) + { + m_size = dataset.kdtree_get_point_count(); + m_size_at_index_build = m_size; + dim = dimensionality; + if (DIM>0) dim=DIM; + m_leaf_max_size = params.leaf_max_size; + + // Create a permutable array of indices to the input vectors. + init_vind(); + } + + /** Standard destructor */ + ~KDTreeSingleIndexAdaptor() { } + + /** Frees the previously-built index. Automatically called within buildIndex(). */ + void freeIndex() + { + pool.free_all(); + root_node=NULL; + m_size_at_index_build = 0; + } + + /** + * Builds the index + */ + void buildIndex() + { + init_vind(); + freeIndex(); + m_size_at_index_build = m_size; + if(m_size == 0) return; + computeBoundingBox(root_bbox); + root_node = divideTree(0, m_size, root_bbox ); // construct the tree + } + + /** Returns number of points in dataset */ + size_t size() const { return m_size; } + + /** Returns the length of each point in the dataset */ + size_t veclen() const { + return static_cast(DIM>0 ? DIM : dim); + } + + /** + * Computes the inde memory usage + * Returns: memory used by the index + */ + size_t usedMemory() const + { + return pool.usedMemory+pool.wastedMemory+dataset.kdtree_get_point_count()*sizeof(IndexType); // pool memory and vind array memory + } + + /** \name Query methods + * @{ */ + + /** + * Find set of nearest neighbors to vec[0:dim-1]. Their indices are stored inside + * the result object. + * + * Params: + * result = the result object in which the indices of the nearest-neighbors are stored + * vec = the vector for which to search the nearest neighbors + * + * \tparam RESULTSET Should be any ResultSet + * \return True if the requested neighbors could be found. + * \sa knnSearch, radiusSearch + */ + template + bool findNeighbors(RESULTSET& result, const ElementType* vec, const SearchParams& searchParams) const + { + assert(vec); + if (size() == 0) + return false; + if (!root_node) + throw std::runtime_error("[nanoflann] findNeighbors() called before building the index."); + float epsError = 1+searchParams.eps; + + distance_vector_t dists; // fixed or variable-sized container (depending on DIM) + dists.assign((DIM>0 ? DIM : dim) ,0); // Fill it with zeros. + DistanceType distsq = computeInitialDistances(vec, dists); + searchLevel(result, vec, root_node, distsq, dists, epsError); // "count_leaf" parameter removed since was neither used nor returned to the user. + return result.full(); + } + + /** + * Find the "num_closest" nearest neighbors to the \a query_point[0:dim-1]. Their indices are stored inside + * the result object. + * \sa radiusSearch, findNeighbors + * \note nChecks_IGNORED is ignored but kept for compatibility with the original FLANN interface. + */ + inline void knnSearch(const ElementType *query_point, const size_t num_closest, IndexType *out_indices, DistanceType *out_distances_sq, const int /* nChecks_IGNORED */ = 10) const + { + nanoflann::KNNResultSet resultSet(num_closest); + resultSet.init(out_indices, out_distances_sq); + this->findNeighbors(resultSet, query_point, nanoflann::SearchParams()); + } + + /** + * Find all the neighbors to \a query_point[0:dim-1] within a maximum radius. + * The output is given as a vector of pairs, of which the first element is a point index and the second the corresponding distance. + * Previous contents of \a IndicesDists are cleared. + * + * If searchParams.sorted==true, the output list is sorted by ascending distances. + * + * For a better performance, it is advisable to do a .reserve() on the vector if you have any wild guess about the number of expected matches. + * + * \sa knnSearch, findNeighbors, radiusSearchCustomCallback + * \return The number of points within the given radius (i.e. indices.size() or dists.size() ) + */ + size_t radiusSearch(const ElementType *query_point,const DistanceType radius, std::vector >& IndicesDists, const SearchParams& searchParams) const + { + RadiusResultSet resultSet(radius,IndicesDists); + const size_t nFound = radiusSearchCustomCallback(query_point,resultSet,searchParams); + if (searchParams.sorted) + std::sort(IndicesDists.begin(),IndicesDists.end(), IndexDist_Sorter() ); + return nFound; + } + + /** + * Just like radiusSearch() but with a custom callback class for each point found in the radius of the query. + * See the source of RadiusResultSet<> as a start point for your own classes. + * \sa radiusSearch + */ + template + size_t radiusSearchCustomCallback(const ElementType *query_point,SEARCH_CALLBACK &resultSet, const SearchParams& searchParams = SearchParams() ) const + { + this->findNeighbors(resultSet, query_point, searchParams); + return resultSet.size(); + } + + /** @} */ + + private: + /** Make sure the auxiliary list \a vind has the same size than the current dataset, and re-generate if size has changed. */ + void init_vind() + { + // Create a permutable array of indices to the input vectors. + m_size = dataset.kdtree_get_point_count(); + if (vind.size()!=m_size) vind.resize(m_size); + for (size_t i = 0; i < m_size; i++) vind[i] = i; + } + + /// Helper accessor to the dataset points: + inline ElementType dataset_get(size_t idx, int component) const { + return dataset.kdtree_get_pt(idx,component); + } + + + void save_tree(FILE* stream, NodePtr tree) + { + save_value(stream, *tree); + if (tree->child1!=NULL) { + save_tree(stream, tree->child1); + } + if (tree->child2!=NULL) { + save_tree(stream, tree->child2); + } + } + + + void load_tree(FILE* stream, NodePtr& tree) + { + tree = pool.allocate(); + load_value(stream, *tree); + if (tree->child1!=NULL) { + load_tree(stream, tree->child1); + } + if (tree->child2!=NULL) { + load_tree(stream, tree->child2); + } + } + + + void computeBoundingBox(BoundingBox& bbox) + { + bbox.resize((DIM>0 ? DIM : dim)); + if (dataset.kdtree_get_bbox(bbox)) + { + // Done! It was implemented in derived class + } + else + { + const size_t N = dataset.kdtree_get_point_count(); + if (!N) throw std::runtime_error("[nanoflann] computeBoundingBox() called but no data points found."); + for (int i=0; i<(DIM>0 ? DIM : dim); ++i) { + bbox[i].low = + bbox[i].high = dataset_get(0,i); + } + for (size_t k=1; k0 ? DIM : dim); ++i) { + if (dataset_get(k,i)bbox[i].high) bbox[i].high = dataset_get(k,i); + } + } + } + } + + + /** + * Create a tree node that subdivides the list of vecs from vind[first] + * to vind[last]. The routine is called recursively on each sublist. + * + * @param left index of the first vector + * @param right index of the last vector + */ + NodePtr divideTree(const IndexType left, const IndexType right, BoundingBox& bbox) + { + NodePtr node = pool.allocate(); // allocate memory + + /* If too few exemplars remain, then make this a leaf node. */ + if ( (right-left) <= m_leaf_max_size) { + node->child1 = node->child2 = NULL; /* Mark as leaf node. */ + node->lr.left = left; + node->lr.right = right; + + // compute bounding-box of leaf points + for (int i=0; i<(DIM>0 ? DIM : dim); ++i) { + bbox[i].low = dataset_get(vind[left],i); + bbox[i].high = dataset_get(vind[left],i); + } + for (IndexType k=left+1; k0 ? DIM : dim); ++i) { + if (bbox[i].low>dataset_get(vind[k],i)) bbox[i].low=dataset_get(vind[k],i); + if (bbox[i].highsub.divfeat = cutfeat; + + BoundingBox left_bbox(bbox); + left_bbox[cutfeat].high = cutval; + node->child1 = divideTree(left, left+idx, left_bbox); + + BoundingBox right_bbox(bbox); + right_bbox[cutfeat].low = cutval; + node->child2 = divideTree(left+idx, right, right_bbox); + + node->sub.divlow = left_bbox[cutfeat].high; + node->sub.divhigh = right_bbox[cutfeat].low; + + for (int i=0; i<(DIM>0 ? DIM : dim); ++i) { + bbox[i].low = std::min(left_bbox[i].low, right_bbox[i].low); + bbox[i].high = std::max(left_bbox[i].high, right_bbox[i].high); + } + } + + return node; + } + + + void computeMinMax(IndexType* ind, IndexType count, int element, ElementType& min_elem, ElementType& max_elem) + { + min_elem = dataset_get(ind[0],element); + max_elem = dataset_get(ind[0],element); + for (IndexType i=1; imax_elem) max_elem = val; + } + } + + void middleSplit_(IndexType* ind, IndexType count, IndexType& index, int& cutfeat, DistanceType& cutval, const BoundingBox& bbox) + { + const DistanceType EPS=static_cast(0.00001); + ElementType max_span = bbox[0].high-bbox[0].low; + for (int i=1; i<(DIM>0 ? DIM : dim); ++i) { + ElementType span = bbox[i].high-bbox[i].low; + if (span>max_span) { + max_span = span; + } + } + ElementType max_spread = -1; + cutfeat = 0; + for (int i=0; i<(DIM>0 ? DIM : dim); ++i) { + ElementType span = bbox[i].high-bbox[i].low; + if (span>(1-EPS)*max_span) { + ElementType min_elem, max_elem; + computeMinMax(ind, count, cutfeat, min_elem, max_elem); + ElementType spread = max_elem-min_elem;; + if (spread>max_spread) { + cutfeat = i; + max_spread = spread; + } + } + } + // split in the middle + DistanceType split_val = (bbox[cutfeat].low+bbox[cutfeat].high)/2; + ElementType min_elem, max_elem; + computeMinMax(ind, count, cutfeat, min_elem, max_elem); + + if (split_valmax_elem) cutval = max_elem; + else cutval = split_val; + + IndexType lim1, lim2; + planeSplit(ind, count, cutfeat, cutval, lim1, lim2); + + if (lim1>count/2) index = lim1; + else if (lim2cutval + */ + void planeSplit(IndexType* ind, const IndexType count, int cutfeat, DistanceType cutval, IndexType& lim1, IndexType& lim2) + { + /* Move vector indices for left subtree to front of list. */ + IndexType left = 0; + IndexType right = count-1; + for (;; ) { + while (left<=right && dataset_get(ind[left],cutfeat)=cutval) --right; + if (left>right || !right) break; // "!right" was added to support unsigned Index types + std::swap(ind[left], ind[right]); + ++left; + --right; + } + /* If either list is empty, it means that all remaining features + * are identical. Split in the middle to maintain a balanced tree. + */ + lim1 = left; + right = count-1; + for (;; ) { + while (left<=right && dataset_get(ind[left],cutfeat)<=cutval) ++left; + while (right && left<=right && dataset_get(ind[right],cutfeat)>cutval) --right; + if (left>right || !right) break; // "!right" was added to support unsigned Index types + std::swap(ind[left], ind[right]); + ++left; + --right; + } + lim2 = left; + } + + DistanceType computeInitialDistances(const ElementType* vec, distance_vector_t& dists) const + { + assert(vec); + DistanceType distsq = DistanceType(); + + for (int i = 0; i < (DIM>0 ? DIM : dim); ++i) { + if (vec[i] < root_bbox[i].low) { + dists[i] = distance.accum_dist(vec[i], root_bbox[i].low, i); + distsq += dists[i]; + } + if (vec[i] > root_bbox[i].high) { + dists[i] = distance.accum_dist(vec[i], root_bbox[i].high, i); + distsq += dists[i]; + } + } + + return distsq; + } + + /** + * Performs an exact search in the tree starting from a node. + * \tparam RESULTSET Should be any ResultSet + */ + template + void searchLevel(RESULTSET& result_set, const ElementType* vec, const NodePtr node, DistanceType mindistsq, + distance_vector_t& dists, const float epsError) const + { + /* If this is a leaf node, then do check and return. */ + if ((node->child1 == NULL)&&(node->child2 == NULL)) { + //count_leaf += (node->lr.right-node->lr.left); // Removed since was neither used nor returned to the user. + DistanceType worst_dist = result_set.worstDist(); + for (IndexType i=node->lr.left; ilr.right; ++i) { + const IndexType index = vind[i];// reorder... : i; + DistanceType dist = distance(vec, index, (DIM>0 ? DIM : dim)); + if (distsub.divfeat; + ElementType val = vec[idx]; + DistanceType diff1 = val - node->sub.divlow; + DistanceType diff2 = val - node->sub.divhigh; + + NodePtr bestChild; + NodePtr otherChild; + DistanceType cut_dist; + if ((diff1+diff2)<0) { + bestChild = node->child1; + otherChild = node->child2; + cut_dist = distance.accum_dist(val, node->sub.divhigh, idx); + } + else { + bestChild = node->child2; + otherChild = node->child1; + cut_dist = distance.accum_dist( val, node->sub.divlow, idx); + } + + /* Call recursively to search next level down. */ + searchLevel(result_set, vec, bestChild, mindistsq, dists, epsError); + + DistanceType dst = dists[idx]; + mindistsq = mindistsq + cut_dist - dst; + dists[idx] = cut_dist; + if (mindistsq*epsError<=result_set.worstDist()) { + searchLevel(result_set, vec, otherChild, mindistsq, dists, epsError); + } + dists[idx] = dst; + } + + public: + /** Stores the index in a binary file. + * IMPORTANT NOTE: The set of data points is NOT stored in the file, so when loading the index object it must be constructed associated to the same source of data points used while building it. + * See the example: examples/saveload_example.cpp + * \sa loadIndex */ + void saveIndex(FILE* stream) + { + save_value(stream, m_size); + save_value(stream, dim); + save_value(stream, root_bbox); + save_value(stream, m_leaf_max_size); + save_value(stream, vind); + save_tree(stream, root_node); + } + + /** Loads a previous index from a binary file. + * IMPORTANT NOTE: The set of data points is NOT stored in the file, so the index object must be constructed associated to the same source of data points used while building the index. + * See the example: examples/saveload_example.cpp + * \sa loadIndex */ + void loadIndex(FILE* stream) + { + load_value(stream, m_size); + load_value(stream, dim); + load_value(stream, root_bbox); + load_value(stream, m_leaf_max_size); + load_value(stream, vind); + load_tree(stream, root_node); + } + + }; // class KDTree + + + /** An L2-metric KD-tree adaptor for working with data directly stored in an Eigen Matrix, without duplicating the data storage. + * Each row in the matrix represents a point in the state space. + * + * Example of usage: + * \code + * Eigen::Matrix mat; + * // Fill out "mat"... + * + * typedef KDTreeEigenMatrixAdaptor< Eigen::Matrix > my_kd_tree_t; + * const int max_leaf = 10; + * my_kd_tree_t mat_index(dimdim, mat, max_leaf ); + * mat_index.index->buildIndex(); + * mat_index.index->... + * \endcode + * + * \tparam DIM If set to >0, it specifies a compile-time fixed dimensionality for the points in the data set, allowing more compiler optimizations. + * \tparam Distance The distance metric to use: nanoflann::metric_L1, nanoflann::metric_L2, nanoflann::metric_L2_Simple, etc. + */ + template + struct KDTreeEigenMatrixAdaptor + { + typedef KDTreeEigenMatrixAdaptor self_t; + typedef typename MatrixType::Scalar num_t; + typedef typename MatrixType::Index IndexType; + typedef typename Distance::template traits::distance_t metric_t; + typedef KDTreeSingleIndexAdaptor< metric_t,self_t,DIM,IndexType> index_t; + + index_t* index; //! The kd-tree index for the user to call its methods as usual with any other FLANN index. + + /// Constructor: takes a const ref to the matrix object with the data points + KDTreeEigenMatrixAdaptor(const int dimensionality, const MatrixType &mat, const int leaf_max_size = 10) : m_data_matrix(mat) + { + const IndexType dims = mat.cols(); + if (dims!=dimensionality) throw std::runtime_error("Error: 'dimensionality' must match column count in data matrix"); + if (DIM>0 && static_cast(dims)!=DIM) + throw std::runtime_error("Data set dimensionality does not match the 'DIM' template argument"); + index = new index_t( dims, *this /* adaptor */, nanoflann::KDTreeSingleIndexAdaptorParams(leaf_max_size ) ); + index->buildIndex(); + } + private: + /** Hidden copy constructor, to disallow copying this class (Not implemented) */ + KDTreeEigenMatrixAdaptor(const self_t&); + public: + + ~KDTreeEigenMatrixAdaptor() { + delete index; + } + + const MatrixType &m_data_matrix; + + /** Query for the \a num_closest closest points to a given point (entered as query_point[0:dim-1]). + * Note that this is a short-cut method for index->findNeighbors(). + * The user can also call index->... methods as desired. + * \note nChecks_IGNORED is ignored but kept for compatibility with the original FLANN interface. + */ + inline void query(const num_t *query_point, const size_t num_closest, IndexType *out_indices, num_t *out_distances_sq, const int /* nChecks_IGNORED */ = 10) const + { + nanoflann::KNNResultSet resultSet(num_closest); + resultSet.init(out_indices, out_distances_sq); + index->findNeighbors(resultSet, query_point, nanoflann::SearchParams()); + } + + /** @name Interface expected by KDTreeSingleIndexAdaptor + * @{ */ + + const self_t & derived() const { + return *this; + } + self_t & derived() { + return *this; + } + + // Must return the number of data points + inline size_t kdtree_get_point_count() const { + return m_data_matrix.rows(); + } + + // Returns the L2 distance between the vector "p1[0:size-1]" and the data point with index "idx_p2" stored in the class: + inline num_t kdtree_distance(const num_t *p1, const IndexType idx_p2,IndexType size) const + { + num_t s=0; + for (IndexType i=0; i + bool kdtree_get_bbox(BBOX& /*bb*/) const { + return false; + } + + /** @} */ + + }; // end of KDTreeEigenMatrixAdaptor + /** @} */ + +/** @} */ // end of grouping +} // end of NS + + diff --git a/src/util/settings.cpp b/src/util/settings.cpp new file mode 100644 index 0000000..486cba5 --- /dev/null +++ b/src/util/settings.cpp @@ -0,0 +1,314 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#include "util/settings.h" +#include + + +namespace dso +{ +int pyrLevelsUsed = PYR_LEVELS; + + +/* Parameters controlling when KF's are taken */ +float setting_keyframesPerSecond = 0; // if !=0, takes a fixed number of KF per second. +bool setting_realTimeMaxKF = false; // if true, takes as many KF's as possible (will break the system if the camera stays stationary) +float setting_maxShiftWeightT= 0.04f * (640+480); +float setting_maxShiftWeightR= 0.0f * (640+480); +float setting_maxShiftWeightRT= 0.02f * (640+480); +float setting_kfGlobalWeight = 1; // general weight on threshold, the larger the more KF's are taken (e.g., 2 = double the amount of KF's). +float setting_maxAffineWeight= 2; + + +/* initial hessian values to fix unobservable dimensions / priors on affine lighting parameters. + */ +float setting_idepthFixPrior = 50*50; +float setting_idepthFixPriorMargFac = 600*600; +float setting_initialRotPrior = 1e11; +float setting_initialTransPrior = 1e10; +float setting_initialAffBPrior = 1e14; +float setting_initialAffAPrior = 1e14; +float setting_initialCalibHessian = 5e9; + + + + + +/* some modes for solving the resulting linear system (e.g. orthogonalize wrt. unobservable dimensions) */ +int setting_solverMode = SOLVER_FIX_LAMBDA | SOLVER_ORTHOGONALIZE_X_LATER; +double setting_solverModeDelta = 0.00001; +bool setting_forceAceptStep = true; + + + +/* some thresholds on when to activate / marginalize points */ +float setting_minIdepthH_act = 100; +float setting_minIdepthH_marg = 50; + + + +float setting_desiredImmatureDensity = 1500; // immature points per frame +float setting_desiredPointDensity = 2000; // aimed total points in the active window. +float setting_minPointsRemaining = 0.05; // marg a frame if less than X% points remain. +float setting_maxLogAffFacInWindow = 0.7; // marg a frame if factor between intensities to current frame is larger than 1/X or X. + + +int setting_minFrames = 5; // min frames in window. +int setting_maxFrames = 7; // max frames in window. +int setting_minFrameAge = 1; +int setting_maxOptIterations=6; // max GN iterations. +int setting_minOptIterations=1; // min GN iterations. +float setting_thOptIterations=1.2; // factor on break threshold for GN iteration (larger = break earlier) + + + + + +/* Outlier Threshold on photometric energy */ +float setting_outlierTH = 12*12; // higher -> less strict +float setting_outlierTHSumComponent = 50*50; // higher -> less strong gradient-based reweighting . + + + + +int setting_pattern = 8; // point pattern used. DISABLED. +float setting_margWeightFac = 0.5*0.5; // factor on hessian when marginalizing, to account for inaccurate linearization points. + + +/* when to re-track a frame */ +float setting_reTrackThreshold = 1.5; // (larger = re-track more often) + + + +/* require some minimum number of residuals for a point to become valid */ +int setting_minGoodActiveResForMarg=3; +int setting_minGoodResForMarg=4; + + + + + + +// 0 = nothing. +// 1 = apply inv. response. +// 2 = apply inv. response & remove V. +int setting_photometricCalibration = 2; +bool setting_useExposure = true; +float setting_affineOptModeA = 1e12; //-1: fix. >=0: optimize (with prior, if > 0). +float setting_affineOptModeB = 1e8; //-1: fix. >=0: optimize (with prior, if > 0). + +int setting_gammaWeightsPixelSelect = 1; // 1 = use original intensity for pixel selection; 0 = use gamma-corrected intensity. + + + + +float setting_huberTH = 9; // Huber Threshold + + + + + +// parameters controlling adaptive energy threshold computation. +float setting_frameEnergyTHConstWeight = 0.5; +float setting_frameEnergyTHN = 0.7f; +float setting_frameEnergyTHFacMedian = 1.5; +float setting_overallEnergyTHWeight = 1; +float setting_coarseCutoffTH = 20; + + + + + +// parameters controlling pixel selection +float setting_minGradHistCut = 0.5; +float setting_minGradHistAdd = 7; +float setting_gradDownweightPerLevel = 0.75; +bool setting_selectDirectionDistribution = true; + + + + + + +/* settings controling initial immature point tracking */ +float setting_maxPixSearch = 0.027; // max length of the ep. line segment searched during immature point tracking. relative to image resolution. +float setting_minTraceQuality = 3; +int setting_minTraceTestRadius = 2; +int setting_GNItsOnPointActivation = 3; +float setting_trace_stepsize = 1.0; // stepsize for initial discrete search. +int setting_trace_GNIterations = 3; // max # GN iterations +float setting_trace_GNThreshold = 0.1; // GN stop after this stepsize. +float setting_trace_extraSlackOnTH = 1.2; // for energy-based outlier check, be slightly more relaxed by this factor. +float setting_trace_slackInterval = 1.5; // if pixel-interval is smaller than this, leave it be. +float setting_trace_minImprovementFactor = 2; // if pixel-interval is smaller than this, leave it be. + + + + +// for benchmarking different undistortion settings +float benchmarkSetting_fxfyfac = 0; +int benchmarkSetting_width = 0; +int benchmarkSetting_height = 0; +float benchmark_varNoise = 0; +float benchmark_varBlurNoise = 0; +float benchmark_initializerSlackFactor = 1; +int benchmark_noiseGridsize = 3; + + +float freeDebugParam1 = 1; +float freeDebugParam2 = 1; +float freeDebugParam3 = 1; +float freeDebugParam4 = 1; +float freeDebugParam5 = 1; + + + +bool disableReconfigure=false; +bool debugSaveImages = false; +bool multiThreading = true; +bool disableAllDisplay = false; +bool setting_onlyLogKFPoses = true; +bool setting_logStuff = true; + + + +bool goStepByStep = false; + + +bool setting_render_displayCoarseTrackingFull=false; +bool setting_render_renderWindowFrames=true; +bool setting_render_plotTrackingFull = false; +bool setting_render_display3D = true; +bool setting_render_displayResidual = true; +bool setting_render_displayVideo = true; +bool setting_render_displayDepth = true; + +bool setting_fullResetRequested = false; + +bool setting_debugout_runquiet = false; + +int sparsityFactor = 5; // not actually a setting, only some legacy stuff for coarse initializer. + + +void handleKey(char k) +{ + char kkk = k; + switch(kkk) + { + case 'd': case 'D': + freeDebugParam5 = ((int)(freeDebugParam5+1))%10; + printf("new freeDebugParam5: %f!\n", freeDebugParam5); + break; + case 's': case 'S': + freeDebugParam5 = ((int)(freeDebugParam5-1+10))%10; + printf("new freeDebugParam5: %f!\n", freeDebugParam5); + break; + } + +} + + + + +int staticPattern[10][40][2] = { + {{0,0}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, // . + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{0,-1}, {-1,0}, {0,0}, {1,0}, {0,1}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, // + + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{-1,-1}, {1,1}, {0,0}, {-1,1}, {1,-1}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, // x + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{-1,-1}, {-1,0}, {-1,1}, {-1,0}, {0,0}, {0,1}, {1,-1}, {1,0}, {1,1}, {-100,-100}, // full-tight + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{0,-2}, {-1,-1}, {1,-1}, {-2,0}, {0,0}, {2,0}, {-1,1}, {1,1}, {0,2}, {-100,-100}, // full-spread-9 + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{0,-2}, {-1,-1}, {1,-1}, {-2,0}, {0,0}, {2,0}, {-1,1}, {1,1}, {0,2}, {-2,-2}, // full-spread-13 + {-2,2}, {2,-2}, {2,2}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{-2,-2}, {-2,-1}, {-2,-0}, {-2,1}, {-2,2}, {-1,-2}, {-1,-1}, {-1,-0}, {-1,1}, {-1,2}, // full-25 + {-0,-2}, {-0,-1}, {-0,-0}, {-0,1}, {-0,2}, {+1,-2}, {+1,-1}, {+1,-0}, {+1,1}, {+1,2}, + {+2,-2}, {+2,-1}, {+2,-0}, {+2,1}, {+2,2}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{0,-2}, {-1,-1}, {1,-1}, {-2,0}, {0,0}, {2,0}, {-1,1}, {1,1}, {0,2}, {-2,-2}, // full-spread-21 + {-2,2}, {2,-2}, {2,2}, {-3,-1}, {-3,1}, {3,-1}, {3,1}, {1,-3}, {-1,-3}, {1,3}, + {-1,3}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{0,-2}, {-1,-1}, {1,-1}, {-2,0}, {0,0}, {2,0}, {-1,1}, {0,2}, {-100,-100}, {-100,-100}, // 8 for SSE efficiency + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, + {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}, {-100,-100}}, + + {{-4,-4}, {-4,-2}, {-4,-0}, {-4,2}, {-4,4}, {-2,-4}, {-2,-2}, {-2,-0}, {-2,2}, {-2,4}, // full-45-SPREAD + {-0,-4}, {-0,-2}, {-0,-0}, {-0,2}, {-0,4}, {+2,-4}, {+2,-2}, {+2,-0}, {+2,2}, {+2,4}, + {+4,-4}, {+4,-2}, {+4,-0}, {+4,2}, {+4,4}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, + {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}, {-200,-200}}, +}; + +int staticPatternNum[10] = { + 1, + 5, + 5, + 9, + 9, + 13, + 25, + 21, + 8, + 25 +}; + +int staticPatternPadding[10] = { + 1, + 1, + 1, + 1, + 2, + 2, + 2, + 3, + 2, + 4 +}; + + +} diff --git a/src/util/settings.h b/src/util/settings.h new file mode 100644 index 0000000..6077355 --- /dev/null +++ b/src/util/settings.h @@ -0,0 +1,231 @@ +/** +* This file is part of DSO. +* +* Copyright 2016 Technical University of Munich and Intel. +* Developed by Jakob Engel , +* for more information see . +* If you use this code, please cite the respective publications as +* listed on the above website. +* +* DSO is free software: you can redistribute it and/or modify +* it under the terms of the GNU General Public License as published by +* the Free Software Foundation, either version 3 of the License, or +* (at your option) any later version. +* +* DSO is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU General Public License for more details. +* +* You should have received a copy of the GNU General Public License +* along with DSO. If not, see . +*/ + + + +#pragma once + +#include +#include +#include + + +namespace dso +{ +#define SOLVER_SVD (int)1 +#define SOLVER_ORTHOGONALIZE_SYSTEM (int)2 +#define SOLVER_ORTHOGONALIZE_POINTMARG (int)4 +#define SOLVER_ORTHOGONALIZE_FULL (int)8 +#define SOLVER_SVD_CUT7 (int)16 +#define SOLVER_REMOVE_POSEPRIOR (int)32 +#define SOLVER_USE_GN (int)64 +#define SOLVER_FIX_LAMBDA (int)128 +#define SOLVER_ORTHOGONALIZE_X (int)256 +#define SOLVER_MOMENTUM (int)512 +#define SOLVER_STEPMOMENTUM (int)1024 +#define SOLVER_ORTHOGONALIZE_X_LATER (int)2048 + + +// ============== PARAMETERS TO BE DECIDED ON COMPILE TIME ================= +#define PYR_LEVELS 6 +extern int pyrLevelsUsed; + + + +extern float setting_keyframesPerSecond; +extern bool setting_realTimeMaxKF; +extern float setting_maxShiftWeightT; +extern float setting_maxShiftWeightR; +extern float setting_maxShiftWeightRT; +extern float setting_maxAffineWeight; +extern float setting_kfGlobalWeight; + + + +extern float setting_idepthFixPrior; +extern float setting_idepthFixPriorMargFac; +extern float setting_initialRotPrior; +extern float setting_initialTransPrior; +extern float setting_initialAffBPrior; +extern float setting_initialAffAPrior; +extern float setting_initialCalibHessian; + +extern int setting_solverMode; +extern double setting_solverModeDelta; + + +extern float setting_minIdepthH_act; +extern float setting_minIdepthH_marg; + + + +extern float setting_maxIdepth; +extern float setting_maxPixSearch; +extern float setting_desiredImmatureDensity; // done +extern float setting_desiredPointDensity; // done +extern float setting_minPointsRemaining; +extern float setting_maxLogAffFacInWindow; +extern int setting_minFrames; +extern int setting_maxFrames; +extern int setting_minFrameAge; +extern int setting_maxOptIterations; +extern int setting_minOptIterations; +extern float setting_thOptIterations; +extern float setting_outlierTH; +extern float setting_outlierTHSumComponent; + + + +extern int setting_pattern; +extern float setting_margWeightFac; +extern int setting_GNItsOnPointActivation; + + +extern float setting_minTraceQuality; +extern int setting_minTraceTestRadius; +extern float setting_reTrackThreshold; + + +extern int setting_minGoodActiveResForMarg; +extern int setting_minGoodResForMarg; +extern int setting_minInlierVotesForMarg; + + + + +extern int setting_photometricCalibration; +extern bool setting_useExposure; +extern float setting_affineOptModeA; +extern float setting_affineOptModeB; +extern int setting_gammaWeightsPixelSelect; + + + +extern bool setting_forceAceptStep; + + + +extern float setting_huberTH; + + +extern bool setting_logStuff; +extern float benchmarkSetting_fxfyfac; +extern int benchmarkSetting_width; +extern int benchmarkSetting_height; +extern float benchmark_varNoise; +extern float benchmark_varBlurNoise; +extern int benchmark_noiseGridsize; +extern float benchmark_initializerSlackFactor; + +extern float setting_frameEnergyTHConstWeight; +extern float setting_frameEnergyTHN; + +extern float setting_frameEnergyTHFacMedian; +extern float setting_overallEnergyTHWeight; +extern float setting_coarseCutoffTH; + +extern float setting_minGradHistCut; +extern float setting_minGradHistAdd; +extern float setting_gradDownweightPerLevel; +extern bool setting_selectDirectionDistribution; + + + +extern float setting_trace_stepsize; +extern int setting_trace_GNIterations; +extern float setting_trace_GNThreshold; +extern float setting_trace_extraSlackOnTH; +extern float setting_trace_slackInterval; +extern float setting_trace_minImprovementFactor; + + +extern bool setting_render_displayCoarseTrackingFull; +extern bool setting_render_renderWindowFrames; +extern bool setting_render_plotTrackingFull; +extern bool setting_render_display3D; +extern bool setting_render_displayResidual; +extern bool setting_render_displayVideo; +extern bool setting_render_displayDepth; + +extern bool setting_fullResetRequested; + +extern bool setting_debugout_runquiet; + +extern bool disableAllDisplay; +extern bool disableReconfigure; + + +extern bool setting_onlyLogKFPoses; + + + + +extern bool debugSaveImages; + + +extern int sparsityFactor; +extern bool goStepByStep; +extern bool plotStereoImages; +extern bool multiThreading; + +extern float freeDebugParam1; +extern float freeDebugParam2; +extern float freeDebugParam3; +extern float freeDebugParam4; +extern float freeDebugParam5; + + +void handleKey(char k); + + + + +extern int staticPattern[10][40][2]; +extern int staticPatternNum[10]; +extern int staticPatternPadding[10]; + + + + +//#define patternNum staticPatternNum[setting_pattern] +//#define patternP staticPattern[setting_pattern] +//#define patternPadding staticPatternPadding[setting_pattern] + +// +#define patternNum 8 +#define patternP staticPattern[8] +#define patternPadding 2 + + + + + + + + + + + + + +} diff --git a/thirdparty/Sophus/CMakeLists.txt b/thirdparty/Sophus/CMakeLists.txt new file mode 100644 index 0000000..49a5657 --- /dev/null +++ b/thirdparty/Sophus/CMakeLists.txt @@ -0,0 +1,83 @@ +SET(PROJECT_NAME Sophus) + +PROJECT(${PROJECT_NAME}) +CMAKE_MINIMUM_REQUIRED(VERSION 2.6) + +SET (CMAKE_VERBOSE_MAKEFILE ON) + +# Release by default +# Turn on Debug with "-DCMAKE_BUILD_TYPE=Debug" +IF( NOT CMAKE_BUILD_TYPE ) + SET( CMAKE_BUILD_TYPE Release ) +ENDIF() + +IF (CMAKE_COMPILER_IS_GNUCXX ) + SET(CMAKE_CXX_FLAGS_DEBUG "-O0 -g") + SET(CMAKE_CXX_FLAGS_RELEASE "-O3 -DNDEBUG ") + + ADD_DEFINITIONS("-Wall -Werror -Wno-unused-variable + -Wno-unused-but-set-variable -Wno-unknown-pragmas ") +ENDIF() + +################################################################################ +# Add local path for finding packages, set the local version first +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake_modules" ) +list( APPEND CMAKE_MODULE_PATH "${CMAKE_ROOT}/Modules" ) + +################################################################################ +# Create variables used for exporting in SophusConfig.cmake +set( Sophus_LIBRARIES "" ) +set( Sophus_INCLUDE_DIR ${PROJECT_SOURCE_DIR} ) + +################################################################################ + +include(FindEigen3.cmake) +#find_package( Eigen3 REQUIRED ) +INCLUDE_DIRECTORIES( ${EIGEN3_INCLUDE_DIR} ) +SET( Sophus_INCLUDE_DIR ${Sophus_INCLUDE_DIR} ${EIGEN3_INCLUDE_DIR} ) + +SET (SOURCE_DIR "sophus") + +SET (TEMPLATES tests + so2 + se2 + so3 + se3 + rxso3 + sim3 +) + +SET (SOURCES ${SOURCE_DIR}/sophus.hpp) + +FOREACH(templ ${TEMPLATES}) + LIST(APPEND SOURCES ${SOURCE_DIR}/${templ}.hpp) +ENDFOREACH(templ) + + +INCLUDE_DIRECTORIES(${INCLUDE_DIRS}) + +# Added ${SOURCES} to executables so they show up in QtCreator (and possibly +# other IDEs). +# ADD_EXECUTABLE(test_so2 sophus/test_so2.cpp ${SOURCES}) +# ADD_EXECUTABLE(test_se2 sophus/test_se2.cpp ${SOURCES}) +# ADD_EXECUTABLE(test_so3 sophus/test_so3.cpp ${SOURCES}) +# ADD_EXECUTABLE(test_se3 sophus/test_se3.cpp ${SOURCES}) +# ADD_EXECUTABLE(test_rxso3 sophus/test_rxso3.cpp ${SOURCES}) +# ADD_EXECUTABLE(test_sim3 sophus/test_sim3.cpp ${SOURCES}) +# ENABLE_TESTING() +# +# ADD_TEST(test_so2 test_so2) +# ADD_TEST(test_se2 test_se2) +# ADD_TEST(test_so3 test_so3) +# ADD_TEST(test_se3 test_se3) +# ADD_TEST(test_rxso3 test_rxso3) +# ADD_TEST(test_sim3 test_sim3) + +################################################################################ +# Create the SophusConfig.cmake file for other cmake projects. +CONFIGURE_FILE( ${CMAKE_CURRENT_SOURCE_DIR}/SophusConfig.cmake.in + ${CMAKE_CURRENT_BINARY_DIR}/SophusConfig.cmake @ONLY IMMEDIATE ) +export( PACKAGE Sophus ) + +INSTALL(DIRECTORY sophus DESTINATION ${CMAKE_INSTALL_PREFIX}/include + FILES_MATCHING PATTERN "*.hpp" ) \ No newline at end of file diff --git a/thirdparty/Sophus/FindEigen3.cmake b/thirdparty/Sophus/FindEigen3.cmake new file mode 100644 index 0000000..9c546a0 --- /dev/null +++ b/thirdparty/Sophus/FindEigen3.cmake @@ -0,0 +1,81 @@ +# - Try to find Eigen3 lib +# +# This module supports requiring a minimum version, e.g. you can do +# find_package(Eigen3 3.1.2) +# to require version 3.1.2 or newer of Eigen3. +# +# Once done this will define +# +# EIGEN3_FOUND - system has eigen lib with correct version +# EIGEN3_INCLUDE_DIR - the eigen include directory +# EIGEN3_VERSION - eigen version + +# Copyright (c) 2006, 2007 Montel Laurent, +# Copyright (c) 2008, 2009 Gael Guennebaud, +# Copyright (c) 2009 Benoit Jacob +# Redistribution and use is allowed according to the terms of the 2-clause BSD license. + +if(NOT Eigen3_FIND_VERSION) + if(NOT Eigen3_FIND_VERSION_MAJOR) + set(Eigen3_FIND_VERSION_MAJOR 2) + endif(NOT Eigen3_FIND_VERSION_MAJOR) + if(NOT Eigen3_FIND_VERSION_MINOR) + set(Eigen3_FIND_VERSION_MINOR 91) + endif(NOT Eigen3_FIND_VERSION_MINOR) + if(NOT Eigen3_FIND_VERSION_PATCH) + set(Eigen3_FIND_VERSION_PATCH 0) + endif(NOT Eigen3_FIND_VERSION_PATCH) + + set(Eigen3_FIND_VERSION "${Eigen3_FIND_VERSION_MAJOR}.${Eigen3_FIND_VERSION_MINOR}.${Eigen3_FIND_VERSION_PATCH}") +endif(NOT Eigen3_FIND_VERSION) + +macro(_eigen3_check_version) + file(READ "${EIGEN3_INCLUDE_DIR}/Eigen/src/Core/util/Macros.h" _eigen3_version_header) + + string(REGEX MATCH "define[ \t]+EIGEN_WORLD_VERSION[ \t]+([0-9]+)" _eigen3_world_version_match "${_eigen3_version_header}") + set(EIGEN3_WORLD_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MAJOR_VERSION[ \t]+([0-9]+)" _eigen3_major_version_match "${_eigen3_version_header}") + set(EIGEN3_MAJOR_VERSION "${CMAKE_MATCH_1}") + string(REGEX MATCH "define[ \t]+EIGEN_MINOR_VERSION[ \t]+([0-9]+)" _eigen3_minor_version_match "${_eigen3_version_header}") + set(EIGEN3_MINOR_VERSION "${CMAKE_MATCH_1}") + + set(EIGEN3_VERSION ${EIGEN3_WORLD_VERSION}.${EIGEN3_MAJOR_VERSION}.${EIGEN3_MINOR_VERSION}) + if(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK FALSE) + else(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + set(EIGEN3_VERSION_OK TRUE) + endif(${EIGEN3_VERSION} VERSION_LESS ${Eigen3_FIND_VERSION}) + + if(NOT EIGEN3_VERSION_OK) + + message(STATUS "Eigen3 version ${EIGEN3_VERSION} found in ${EIGEN3_INCLUDE_DIR}, " + "but at least version ${Eigen3_FIND_VERSION} is required") + endif(NOT EIGEN3_VERSION_OK) +endmacro(_eigen3_check_version) + +if (EIGEN3_INCLUDE_DIR) + + # in cache already + _eigen3_check_version() + set(EIGEN3_FOUND ${EIGEN3_VERSION_OK}) + +else (EIGEN3_INCLUDE_DIR) + + find_path(EIGEN3_INCLUDE_DIR NAMES signature_of_eigen3_matrix_library + PATHS + ${CMAKE_INSTALL_PREFIX}/include + ${KDE4_INCLUDE_DIR} + PATH_SUFFIXES eigen3 eigen + ) + + if(EIGEN3_INCLUDE_DIR) + _eigen3_check_version() + endif(EIGEN3_INCLUDE_DIR) + + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR EIGEN3_VERSION_OK) + + mark_as_advanced(EIGEN3_INCLUDE_DIR) + +endif(EIGEN3_INCLUDE_DIR) + diff --git a/thirdparty/Sophus/README b/thirdparty/Sophus/README new file mode 100644 index 0000000..05213ac --- /dev/null +++ b/thirdparty/Sophus/README @@ -0,0 +1,19 @@ +Sophus (version 0.9a) + +C++ implementation of Lie Groups using Eigen. + +Thanks to Steven Lovegrove, Sophus is now fully templated - using the Curiously Recurring Template Pattern (CRTP). + +(In order to go back to the non-templated/double-only version "git checkout a621ff".) + +Installation guide: + +>>> +cd Sophus +mkdir build +cd build +cmake .. +make +<<< + + diff --git a/thirdparty/Sophus/SophusConfig.cmake.in b/thirdparty/Sophus/SophusConfig.cmake.in new file mode 100644 index 0000000..24ba84f --- /dev/null +++ b/thirdparty/Sophus/SophusConfig.cmake.in @@ -0,0 +1,11 @@ +################################################################################ +# Sophus source dir +set( Sophus_SOURCE_DIR "@CMAKE_CURRENT_SOURCE_DIR@") + +################################################################################ +# Sophus build dir +set( Sophus_DIR "@CMAKE_CURRENT_BINARY_DIR@") + +################################################################################ +set( Sophus_INCLUDE_DIR "@Sophus_INCLUDE_DIR@" ) +set( Sophus_INCLUDE_DIRS "@Sophus_INCLUDE_DIR@" ) \ No newline at end of file diff --git a/thirdparty/Sophus/cmake_modules/FindEigen3.cmake b/thirdparty/Sophus/cmake_modules/FindEigen3.cmake new file mode 100644 index 0000000..469c77d --- /dev/null +++ b/thirdparty/Sophus/cmake_modules/FindEigen3.cmake @@ -0,0 +1,26 @@ +# - Try to find Eigen3 lib +# Once done this will define +# +# EIGEN3_FOUND - system has eigen lib +# EIGEN3_INCLUDE_DIR - the eigen include directory + +# Copyright (c) 2006, 2007 Montel Laurent, +# Redistribution and use is allowed according to the terms of the BSD license. +# For details see the accompanying COPYING-CMAKE-SCRIPTS file. + +if( EIGEN3_INCLUDE_DIR ) + # in cache already + set( EIGEN3_FOUND TRUE ) +else (EIGEN3_INCLUDE_DIR) + find_path( EIGEN3_INCLUDE_DIR NAMES Eigen/Core + PATH_SUFFIXES eigen3/ + HINTS + ${INCLUDE_INSTALL_DIR} + /usr/local/include + ${KDE4_INCLUDE_DIR} + ) + include( FindPackageHandleStandardArgs ) + find_package_handle_standard_args( Eigen3 DEFAULT_MSG EIGEN3_INCLUDE_DIR ) + mark_as_advanced( EIGEN3_INCLUDE_DIR ) +endif(EIGEN3_INCLUDE_DIR) + diff --git a/thirdparty/Sophus/sophus/rxso3.hpp b/thirdparty/Sophus/sophus/rxso3.hpp new file mode 100644 index 0000000..a0262a0 --- /dev/null +++ b/thirdparty/Sophus/sophus/rxso3.hpp @@ -0,0 +1,838 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_RXSO3_HPP +#define RXSO3_HPP + +#include "sophus.hpp" +#include "so3.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class RxSO3Group; +typedef RxSO3Group ScSO3 EIGEN_DEPRECATED; +typedef RxSO3Group RxSO3d; /**< double precision RxSO3 */ +typedef RxSO3Group RxSO3f; /**< single precision RxSO3 */ +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Quaternion QuaternionType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> QuaternionType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> QuaternionType; +}; + +} +} + +namespace Sophus { +using namespace Eigen; + +class ScaleNotPositive : public SophusException { +public: + ScaleNotPositive () + : SophusException("Scale factor is not positive") { + } +}; + +/** + * \brief RxSO3 base type - implements RxSO3 class but is storage agnostic + * + * This class implements the group \f$ R^{+} \times SO3 \f$ (RxSO3), the direct + * product of the group of positive scalar matrices (=isomorph to the positive + * real numbers) and the three-dimensional special orthogonal group SO3. + * Geometrically, it is the group of rotation and scaling in three dimensions. + * As a matrix groups, RxSO3 consists of matrices of the form \f$ s\cdot R \f$ + * where \f$ R \f$ is an orthognal matrix with \f$ det(R)=1 \f$ and \f$ s>0 \f$ + * be a positive real number. + * + * Internally, RxSO3 is represented by the group of non-zero quaternions. This + * is a most compact representation since the degrees of freedom (DoF) of RxSO3 + * (=4) equals the number of internal parameters (=4). + * + * [add more detailed description/tutorial] + */ +template +class RxSO3GroupBase { +public: + /** \brief scalar type, use with care since this might be a Map type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion reference type */ + typedef typename internal::traits::QuaternionType & + QuaternionReference; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + + /** \brief degree of freedom of group + * (three for rotation and one for scaling) */ + static const int DoF = 4; + /** \brief number of internal parameters used + * (quaternion for rotation and scaling) */ + static const int num_parameters = 4; + /** \brief group transformations are NxN matrices */ + static const int N = 3; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Matrix Tangent; + /** \brief adjoint transformation type */ + typedef Matrix Adjoint; + + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-operator. + * + * For RxSO3, it simply returns the rotation matrix corresponding to + * \f$ A \f$. + */ + inline + const Adjoint Adj() const { + Adjoint res; + res.setIdentity(); + res.template topLeftCorner<3,3>() = rotationMatrix(); + return res; + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline RxSO3Group cast() const { + return RxSO3Group(quaternion() + .template cast() ); + } + + /** + * \returns pointer to internal data + * + * This provides direct read/write access to internal data. RxSO3 is + * represented by an Eigen::Quaternion (four parameters). + * + * Note: The first three Scalars represent the imaginary parts, while the + * forth Scalar represent the real part. + */ + inline Scalar* data() { + return quaternion().coeffs().data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + inline const Scalar* data() const { + return quaternion().coeffs().data(); + } + + /** + * \brief In-place group multiplication + * + * Same as operator*=() for RxSO3. + * + * \see operator*=() + */ + inline + void fastMultiply(const RxSO3Group& other) { + quaternion() *= other.quaternion(); + } + + + /** + * \returns group inverse of instance + */ + inline + const RxSO3Group inverse() const { + if(quaternion().squaredNorm() <= static_cast(0)) { + throw ScaleNotPositive(); + } + return RxSO3Group(quaternion().inverse()); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation (=rotation vector) of instance + * + * \see log(). + */ + inline + const Tangent log() const { + return RxSO3Group::log(*this); + } + + /** + * \returns 3x3 matrix representation of instance + * + * For RxSO3, the matrix representation is a scaled orthogonal + * matrix \f$ sR \f$ with \f$ det(sR)=s^3 \f$, thus a scaled rotation + * matrix \f$ R \f$ with scale s. + */ + inline + const Transformation matrix() const { + //ToDO: implement this directly! + Scalar scale = quaternion().norm(); + Quaternion norm_quad = quaternion(); + norm_quad.coeffs() /= scale; + return scale*norm_quad.toRotationMatrix(); + } + + /** + * \brief Assignment operator + */ + template inline + RxSO3GroupBase& operator= + (const RxSO3GroupBase & other) { + quaternion() = other.quaternion(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const RxSO3Group operator*(const RxSO3Group& other) const { + RxSO3Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^3 \f$ + * + * \param p point \f$p \in \mathbf{R}^3 \f$ + * \returns point \f$p' \in \mathbf{R}^3 \f$, + * rotated and scaled version of \f$p\f$ + * + * This function rotates and scales a point \f$ p \f$ in \f$ \mathbf{R}^3 \f$ + * by the RxSO3 transformation \f$sR\f$ (=rotation matrix) + * : \f$ p' = sR\cdot p \f$. + */ + inline + const Point operator*(const Point & p) const { + //ToDO: implement this directly! + Scalar scale = quaternion().norm(); + Quaternion norm_quad = quaternion(); + norm_quad.coeffs() /= scale; + return scale*norm_quad._transformVector(p); + } + + /** + * \brief In-place group multiplication + * \see operator*=() + */ + inline + void operator*=(const RxSO3Group& other) { + quaternion() *= other.quaternion(); + } + + /** + * \brief Mutator of quaternion + */ + EIGEN_STRONG_INLINE + QuaternionReference quaternion() { + return static_cast(this)->quaternion(); + } + + /** + * \brief Accessor of quaternion + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference quaternion() const { + return static_cast(this)->quaternion(); + } + + /** + * \returns rotation matrix + */ + inline + Transformation rotationMatrix() const { + Scalar scale = quaternion().norm(); + Quaternion norm_quad = quaternion(); + norm_quad.coeffs() /= scale; + return norm_quad.toRotationMatrix(); + } + + /** + * \returns scale + */ + EIGEN_STRONG_INLINE + const Scalar scale() const { + return quaternion().norm(); + } + + /** + * \brief Setter of quaternion using rotation matrix, leaves scale untouched + * + * \param R a 3x3 rotation matrix + * \pre the 3x3 matrix should be orthogonal and have a determinant of 1 + */ + inline + void setRotationMatrix(const Transformation & R) { + Scalar saved_scale = scale(); + quaternion() = R; + quaternion().coeffs() *= saved_scale; + } + + /** + * \brief Scale setter + */ + EIGEN_STRONG_INLINE + void setScale(const Scalar & scale) { + quaternion().normalize(); + quaternion().coeffs() *= scale; + } + + /** + * \brief Setter of quaternion using scaled rotation matrix + * + * \param sR a 3x3 scaled rotation matrix + * \pre the 3x3 matrix should be "scaled orthogonal" + * and have a positive determinant + */ + inline + void setScaledRotationMatrix + (const Transformation & sR) { + Transformation squared_sR = sR*sR.transpose(); + Scalar squared_scale + = static_cast(1./3.) + *(squared_sR(0,0)+squared_sR(1,1)+squared_sR(2,2)); + if (squared_scale <= static_cast(0)) { + throw ScaleNotPositive(); + } + Scalar scale = std::sqrt(squared_scale); + if (scale <= static_cast(0)) { + throw ScaleNotPositive(); + } + quaternion() = sR/scale; + quaternion().coeffs() *= scale; + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \param b 4-vector representation of Lie algebra element + * \returns derivative of Lie bracket + * + * This function returns \f$ \frac{\partial}{\partial a} [a, b]_{rxso3} \f$ + * with \f$ [a, b]_{rxso3} \f$ being the lieBracket() of the Lie + * algebra rxso3. + * + * \see lieBracket() + */ + inline static + const Adjoint d_lieBracketab_by_d_a(const Tangent & b) { + Adjoint res; + res.setZero(); + res.template topLeftCorner<3,3>() = -SO3::hat(b.template head<3>()); + return res; + } + + /** + * \brief Group exponential + * + * \param a tangent space element + * (rotation vector \f$ \omega \f$ and logarithm of scale) + * \returns corresponding element of the group RxSO3 + * + * To be more specific, this function computes \f$ \exp(\widehat{a}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of RxSO3. + * + * \see expAndTheta() + * \see hat() + * \see log() + */ + inline static + const RxSO3Group exp(const Tangent & a) { + Scalar theta; + return expAndTheta(a, &theta); + } + + /** + * \brief Group exponential and theta + * + * \param a tangent space element + * (rotation vector \f$ \omega \f$ and logarithm of scale ) + * \param[out] theta angle of rotation \f$ \theta = |\omega| \f$ + * \returns corresponding element of the group RxSO3 + * + * \see exp() for details + */ + inline static + const RxSO3Group expAndTheta(const Tangent & a, + Scalar * theta) { + const Matrix & omega = a.template head<3>(); + Scalar sigma = a[3]; + Scalar scale = std::exp(sigma); + Quaternion quat + = SO3Group::expAndTheta(omega, theta).unit_quaternion(); + quat.coeffs() *= scale; + return RxSO3Group(quat); + } + + /** + * \brief Generators + * + * \pre \f$ i \in \{0,1,2,3\} \f$ + * \returns \f$ i \f$th generator \f$ G_i \f$ of RxSO3 + * + * The infinitesimal generators of RxSO3 + * are \f$ + * G_0 = \left( \begin{array}{ccc} + * 0& 0& 0& \\ + * 0& 0& -1& \\ + * 0& 1& 0& + * \end{array} \right), + * G_1 = \left( \begin{array}{ccc} + * 0& 0& 1& \\ + * 0& 0& 0& \\ + * -1& 0& 0& + * \end{array} \right), + * G_2 = \left( \begin{array}{ccc} + * 0& -1& 0& \\ + * 1& 0& 0& \\ + * 0& 0& 0& + * \end{array} \right), + * G_3 = \left( \begin{array}{ccc} + * 1& 0& 0& \\ + * 0& 1& 0& \\ + * 0& 0& 1& + * \end{array} \right). + * \f$ + * \see hat() + */ + inline static + const Transformation generator(int i) { + if (i<0 || i>3) { + throw SophusException("i is not in range [0,3]."); + } + Tangent e; + e.setZero(); + e[i] = static_cast(1); + return hat(e); + } + + /** + * \brief hat-operator + * + * \param a 4-vector representation of Lie algebra element + * \returns 3x3-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of RxSO3 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^4 \rightarrow \mathbf{R}^{3\times 3}, + * \quad \widehat{a} = \sum_{i=0}^3 G_i a_i \f$ + * with \f$ G_i \f$ being the ith infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & a) { + Transformation A; + A << a(3), -a(2), a(1) + , a(2), a(3), -a(0) + ,-a(1), a(0), a(3); + return A; + } + + /** + * \brief Lie bracket + * + * \param a 4-vector representation of Lie algebra element + * \param b 4-vector representation of Lie algebra element + * \returns 4-vector representation of Lie algebra element + * + * It computes the bracket of RxSO3. To be more specific, it + * computes \f$ [a, 2]_{rxso3} + * := [\widehat{a}, \widehat{b}]^\vee \f$ + * with \f$ [A,B] = AB-BA \f$ being the matrix + * commutator, \f$ \widehat{\cdot} \f$ the + * hat()-operator and \f$ (\cdot)^\vee \f$ the vee()-operator of RxSO3. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & a, + const Tangent & b) { + const Matrix & omega1 = a.template head<3>(); + const Matrix & omega2 = b.template head<3>(); + Matrix res; + res.template head<3>() = omega1.cross(omega2); + res[3] = static_cast(0); + return res; + } + + /** + * \brief Logarithmic map + * + * \param other element of the group RxSO3 + * \returns corresponding tangent space element + * (rotation vector \f$ \omega \f$ and logarithm of scale) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of RxSO3. + * + * \see exp() + * \see logAndTheta() + * \see vee() + */ + inline static + const Tangent log(const RxSO3Group & other) { + Scalar theta; + return logAndTheta(other, &theta); + } + + /** + * \brief Logarithmic map and theta + * + * \param other element of the group RxSO3 + * \param[out] theta angle of rotation \f$ \theta = |\omega| \f$ + * \returns corresponding tangent space element + * (rotation vector \f$ \omega \f$ and logarithm of scale) + * + * \see log() for details + */ + inline static + const Tangent logAndTheta(const RxSO3Group & other, + Scalar * theta) { + const Scalar & scale = other.quaternion().norm(); + Tangent omega_sigma; + omega_sigma[3] = std::log(scale); + omega_sigma.template head<3>() + = SO3Group::logAndTheta(SO3Group(other.quaternion()), + theta); + return omega_sigma; + } + + /** + * \brief vee-operator + * + * \param Omega 3x3-matrix representation of Lie algebra element + * \returns 4-vector representatin of Lie algebra element + * + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + return Tangent( static_cast(0.5) * (Omega(2,1) - Omega(1,2)), + static_cast(0.5) * (Omega(0,2) - Omega(2,0)), + static_cast(0.5) * (Omega(1,0) - Omega(0,1)), + static_cast(1./3.) + * (Omega(0,0) + Omega(1,1) + Omega(2,2)) ); + } +}; + +/** + * \brief RxSO3 default type - Constructors and default storage for RxSO3 Type + */ +template +class RxSO3Group : public RxSO3GroupBase > { + typedef RxSO3GroupBase > Base; +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief quaternion reference type */ + typedef typename internal::traits > + ::QuaternionType & QuaternionReference; + /** \brief quaternion const reference type */ + typedef const typename internal::traits > + ::QuaternionType & ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize Quaternion to identity rotation and scale. + */ + inline RxSO3Group() + : quaternion_(static_cast(1), static_cast(0), + static_cast(0), static_cast(0)) { + } + + /** + * \brief Copy constructor + */ + template inline + RxSO3Group(const RxSO3GroupBase & other) + : quaternion_(other.quaternion()) { + } + + /** + * \brief Constructor from scaled rotation matrix + * + * \pre matrix need to be "scaled orthogonal" with positive determinant + */ + inline explicit + RxSO3Group(const Transformation & sR) { + this->setScaledRotationMatrix(sR); + } + + /** + * \brief Constructor from scale factor and rotation matrix + * + * \pre rotation matrix need to be orthogonal with determinant of 1 + * \pre scale need to be not zero + */ + inline + RxSO3Group(const Scalar & scale, const Transformation & R) + : quaternion_(R) { + if(scale <= static_cast(0)) { + throw ScaleNotPositive(); + } + quaternion_.normalize(); + quaternion_.coeffs() *= scale; + } + + /** + * \brief Constructor from scale factor and SO3 + * + * \pre scale need to be not zero + */ + inline + RxSO3Group(const Scalar & scale, const SO3Group & so3) + : quaternion_(so3.unit_quaternion()) { + if (scale <= static_cast(0)) { + throw ScaleNotPositive(); + } + quaternion_.normalize(); + quaternion_.coeffs() *= scale; + } + + /** + * \brief Constructor from quaternion + * + * \pre quaternion must not be zero + */ + inline explicit + RxSO3Group(const Quaternion & quat) : quaternion_(quat) { + if(quaternion_.squaredNorm() <= SophusConstants::epsilon()) { + throw ScaleNotPositive(); + } + } + + /** + * \brief Mutator of quaternion + */ + EIGEN_STRONG_INLINE + QuaternionReference quaternion() { + return quaternion_; + } + + /** + * \brief Accessor of quaternion + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference quaternion() const { + return quaternion_; + } + +protected: + Quaternion quaternion_; +}; + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for RxSO3GroupBase + * + * Allows us to wrap RxSO3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::RxSO3GroupBase< + Map,_Options> > { + typedef Sophus::RxSO3GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion reference type */ + typedef typename internal::traits::QuaternionType & + QuaternionReference; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) : quaternion_(coeffs) { + } + + /** + * \brief Mutator of quaternion + */ + EIGEN_STRONG_INLINE + QuaternionReference quaternion() { + return quaternion_; + } + + /** + * \brief Accessor of quaternion + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference quaternion() const { + return quaternion_; + } + +protected: + Map,_Options> quaternion_; +}; + +/** + * \brief Specialisation of Eigen::Map for const RxSO3GroupBase + * + * Allows us to wrap RxSO3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::RxSO3GroupBase< + Map, _Options> > { + typedef Sophus::RxSO3GroupBase< + Map, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) : quaternion_(coeffs) { + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference quaternion() const { + return quaternion_; + } + +protected: + const Map,_Options> quaternion_; +}; + +} + +#endif // SOPHUS_RXSO3_HPP diff --git a/thirdparty/Sophus/sophus/se2.hpp b/thirdparty/Sophus/sophus/se2.hpp new file mode 100644 index 0000000..32f3ff2 --- /dev/null +++ b/thirdparty/Sophus/sophus/se2.hpp @@ -0,0 +1,907 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_SE2_HPP +#define SOPHUS_SE2_HPP + +#include "so2.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class SE2Group; +typedef SE2Group SE2 EIGEN_DEPRECATED; +typedef SE2Group SE2d; /**< double precision SE2 */ +typedef SE2Group SE2f; /**< single precision SE2 */ +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Matrix TranslationType; + typedef Sophus::SO2Group SO2Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> SO2Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> SO2Type; +}; + +} +} + +namespace Sophus { +using namespace Eigen; +using namespace std; + +/** + * \brief SE2 base type - implements SE2 class but is storage agnostic + * + * [add more detailed description/tutorial] + */ +template +class SE2GroupBase { +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO2 reference type */ + typedef typename internal::traits::SO2Type & + SO2Reference; + /** \brief SO2 type */ + typedef const typename internal::traits::SO2Type & + ConstSO2Reference; + + /** \brief degree of freedom of group + * (two for translation, one for in-plane rotation) */ + static const int DoF = 3; + /** \brief number of internal parameters used + * (unit complex number for rotation + translation 2-vector) */ + static const int num_parameters = 4; + /** \brief group transformations are NxN matrices */ + static const int N = 3; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Matrix Tangent; + /** \brief adjoint transformation type */ + typedef Matrix Adjoint; + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-operator. + */ + inline + const Adjoint Adj() const { + const Matrix & R = so2().matrix(); + Transformation res; + res.setIdentity(); + res.template topLeftCorner<2,2>() = R; + res(0,2) = translation()[1]; + res(1,2) = -translation()[0]; + return res; + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline SE2Group cast() const { + return + SE2Group(so2().template cast(), + translation().template cast() ); + } + + /** + * \brief Fast group multiplication + * + * This method is a fast version of operator*=(), since it does not perform + * normalization. It is up to the user to call normalize() once in a while. + * + * \see operator*=() + */ + inline + void fastMultiply(const SE2Group& other) { + translation() += so2()*(other.translation()); + so2().fastMultiply(other.so2()); + } + + /** + * \returns Group inverse of instance + */ + inline + const SE2Group inverse() const { + const SO2Group invR = so2().inverse(); + return SE2Group(invR, invR*(translation() + *static_cast(-1) ) ); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation + * (translational part and rotation angle) of instance + * + * \see log(). + */ + inline + const Tangent log() const { + return log(*this); + } + + /** + * \brief Normalize SO2 element + * + * It re-normalizes the SO2 element. This method only needs to + * be called in conjunction with fastMultiply() or data() write access. + */ + inline + void normalize() { + so2().normalize(); + } + + /** + * \returns 3x3 matrix representation of instance + */ + inline + const Transformation matrix() const { + Transformation homogenious_matrix; + homogenious_matrix.setIdentity(); + homogenious_matrix.block(0,0,2,2) = rotationMatrix(); + homogenious_matrix.col(2).head(2) = translation(); + return homogenious_matrix; + } + + /** + * \returns 2x3 matrix representation of instance + * + * It returns the three first row of matrix(). + */ + inline + const Matrix matrix2x3() const { + Matrix matrix; + matrix.block(0,0,2,2) = rotationMatrix(); + matrix.col(2) = translation(); + return matrix; + } + + /** + * \brief Assignment operator + */ + template inline + SE2GroupBase& operator= (const SE2GroupBase & other) { + so2() = other.so2(); + translation() = other.translation(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const SE2Group operator*(const SE2Group& other) const { + SE2Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^2 \f$ + * + * \param p point \f$p \in \mathbf{R}^2 \f$ + * \returns point \f$p' \in \mathbf{R}^2 \f$, + * rotated and translated version of \f$p\f$ + * + * This function rotates and translates point \f$ p \f$ + * in \f$ \mathbf{R}^2 \f$ by the SE2 transformation \f$R,t\f$ + * (=rotation matrix, translation vector): \f$ p' = R\cdot p + t \f$. + */ + inline + const Point operator*(const Point & p) const { + return so2()*p + translation(); + } + + /** + * \brief In-place group multiplication + * + * \see fastMultiply() + * \see operator*() + */ + inline + void operator*=(const SE2Group& other) { + fastMultiply(other); + normalize(); + } + + + /** + * \returns Rotation matrix + */ + inline + const Matrix rotationMatrix() const { + return so2().matrix(); + } + + /** + * \brief Setter of internal unit complex number representation + * + * \param complex + * \pre the complex number must not be zero + * + * The complex number is normalized to unit length. + */ + inline + void setComplex(const Matrix & complex) { + return so2().setComplex(complex); + } + + /** + * \brief Setter of unit complex number using rotation matrix + * + * \param R a 2x2 matrix + * \pre the 2x2 matrix should be orthogonal and have a determinant of 1 + */ + inline + void setRotationMatrix(const Matrix & R) { + so2().setComplex(static_cast(0.5)*(R(0,0)+R(1,1)), + static_cast(0.5)*(R(1,0)-R(0,1))); + } + + /** + * \brief Mutator of SO2 group + */ + EIGEN_STRONG_INLINE + SO2Reference so2() { + return static_cast(this)->so2(); + } + + /** + * \brief Accessor of SO2 group + */ + EIGEN_STRONG_INLINE + ConstSO2Reference so2() const { + return static_cast(this)->so2(); + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return static_cast(this)->translation(); + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return static_cast(this)->translation(); + } + + /** + * \brief Accessor of unit complex number + * + * No direct write access is given to ensure the complex number stays + * normalized. + */ + inline + typename internal::traits::SO2Type::ConstComplexReference + unit_complex() const { + return so2().unit_complex(); + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \param b 3-vector representation of Lie algebra element + * \returns derivative of Lie bracket + * + * This function returns \f$ \frac{\partial}{\partial a} [a, b]_{se2} \f$ + * with \f$ [a, b]_{se2} \f$ being the lieBracket() of the Lie algebra se2. + * + * \see lieBracket() + */ + inline static + const Transformation d_lieBracketab_by_d_a(const Tangent & b) { + static const Scalar zero = static_cast(0); + Matrix upsilon2 = b.template head<2>(); + Scalar theta2 = b[2]; + + Transformation res; + res << zero, theta2, -upsilon2[1] + , -theta2, zero, upsilon2[0] + , zero, zero, zero; + return res; + } + + /** + * \brief Group exponential + * + * \param a tangent space element (3-vector) + * \returns corresponding element of the group SE2 + * + * The first two components of \f$ a \f$ represent the translational + * part \f$ \upsilon \f$ in the tangent space of SE2, while the last + * components of \f$ a \f$ is the rotation angle \f$ \theta \f$. + * + * To be more specific, this function computes \f$ \exp(\widehat{a}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of SE2. + * + * \see hat() + * \see log() + */ + inline static + const SE2Group exp(const Tangent & a) { + Scalar theta = a[2]; + const SO2Group & so2 = SO2Group::exp(theta); + Scalar sin_theta_by_theta; + Scalar one_minus_cos_theta_by_theta; + + if(std::abs(theta)::epsilon()) { + Scalar theta_sq = theta*theta; + sin_theta_by_theta + = static_cast(1.) - static_cast(1./6.)*theta_sq; + one_minus_cos_theta_by_theta + = static_cast(0.5)*theta + - static_cast(1./24.)*theta*theta_sq; + } else { + sin_theta_by_theta = so2.unit_complex().y()/theta; + one_minus_cos_theta_by_theta + = (static_cast(1.) - so2.unit_complex().x())/theta; + } + Matrix trans + (sin_theta_by_theta*a[0] - one_minus_cos_theta_by_theta*a[1], + one_minus_cos_theta_by_theta * a[0]+sin_theta_by_theta*a[1]); + return SE2Group(so2, trans); + } + + /** + * \brief Generators + * + * \pre \f$ i \in \{0,1,2\} \f$ + * \returns \f$ i \f$th generator \f$ G_i \f$ of SE2 + * + * The infinitesimal generators of SE2 are: \f[ + * G_0 = \left( \begin{array}{ccc} + * 0& 0& 1\\ + * 0& 0& 0\\ + * 0& 0& 0\\ + * \end{array} \right), + * G_1 = \left( \begin{array}{cccc} + * 0& 0& 0\\ + * 0& 0& 1\\ + * 0& 0& 0\\ + * \end{array} \right), + * G_2 = \left( \begin{array}{cccc} + * 0& 0& 0&\\ + * 0& 0& -1&\\ + * 0& 1& 0&\\ + * \end{array} \right), + * \f] + * \see hat() + */ + inline static + const Transformation generator(int i) { + if (i<0 || i>2) { + throw SophusException("i is not in range [0,2]."); + } + Tangent e; + e.setZero(); + e[i] = static_cast(1); + return hat(e); + } + + /** + * \brief hat-operator + * + * \param omega 3-vector representation of Lie algebra element + * \returns 3x3-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of SE2 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^3 \rightarrow \mathbf{R}^{2\times 2}, + * \quad \widehat{\omega} = \sum_{i=0}^2 G_i \omega_i \f$ + * with \f$ G_i \f$ being the ith infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & v) { + Transformation Omega; + Omega.setZero(); + Omega.template topLeftCorner<2,2>() = SO2Group::hat(v[2]); + Omega.col(2).template head<2>() = v.template head<2>(); + return Omega; + } + + /** + * \brief Lie bracket + * + * \param a 3-vector representation of Lie algebra element + * \param b 3-vector representation of Lie algebra element + * \returns 3-vector representation of Lie algebra element + * + * It computes the bracket of SE2. To be more specific, it + * computes \f$ [a, b]_{se2} + * := [\widehat{a_1}, \widehat{b_2}]^\vee \f$ + * with \f$ [A,B] = AB-BA \f$ being the matrix + * commutator, \f$ \widehat{\cdot} \f$ the + * hat()-operator and \f$ (\cdot)^\vee \f$ the vee()-operator of SE2. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & a, + const Tangent & b) { + Matrix upsilon1 = a.template head<2>(); + Matrix upsilon2 = b.template head<2>(); + Scalar theta1 = a[2]; + Scalar theta2 = b[2]; + + return Tangent(-theta1*upsilon2[1] + theta2*upsilon1[1], + theta1*upsilon2[0] - theta2*upsilon1[0], + static_cast(0)); + } + + /** + * \brief Logarithmic map + * + * \param other element of the group SE2 + * \returns corresponding tangent space element + * (translational part \f$ \upsilon \f$ + * and rotation vector \f$ \omega \f$) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of SE2. + * + * \see exp() + * \see vee() + */ + inline static + const Tangent log(const SE2Group & other) { + Tangent upsilon_theta; + const SO2Group & so2 = other.so2(); + Scalar theta = SO2Group::log(so2); + upsilon_theta[2] = theta; + Scalar halftheta = static_cast(0.5)*theta; + Scalar halftheta_by_tan_of_halftheta; + + const Matrix & z = so2.unit_complex(); + Scalar real_minus_one = z.x()-static_cast(1.); + if (std::abs(real_minus_one)::epsilon()) { + halftheta_by_tan_of_halftheta + = static_cast(1.) + - static_cast(1./12)*theta*theta; + } else { + halftheta_by_tan_of_halftheta + = -(halftheta*z.y())/(real_minus_one); + } + Matrix V_inv; + V_inv << halftheta_by_tan_of_halftheta, halftheta + , -halftheta, halftheta_by_tan_of_halftheta; + upsilon_theta.template head<2>() = V_inv*other.translation(); + return upsilon_theta; + } + + /** + * \brief vee-operator + * + * \param Omega 3x3-matrix representation of Lie algebra element + * \returns 3-vector representatin of Lie algebra element + * + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + Tangent upsilon_omega; + upsilon_omega.template head<2>() = Omega.col(2).template head<2>(); + upsilon_omega[2] + = SO2Group::vee(Omega.template topLeftCorner<2,2>()); + return upsilon_omega; + } +}; + +/** + * \brief SE2 default type - Constructors and default storage for SE2 Type + */ +template +class SE2Group : public SE2GroupBase > { + typedef SE2GroupBase > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits > + ::TranslationType & TranslationReference; + typedef const typename internal::traits > + ::TranslationType & ConstTranslationReference; + /** \brief SO2 reference type */ + typedef typename internal::traits > + ::SO2Type & SO2Reference; + /** \brief SO2 const reference type */ + typedef const typename internal::traits > + ::SO2Type & ConstSO2Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize Complex to identity rotation and translation to zero. + */ + inline + SE2Group() + : translation_( Matrix::Zero() ) + { + } + + /** + * \brief Copy constructor + */ + template inline + SE2Group(const SE2GroupBase & other) + : so2_(other.so2()), translation_(other.translation()) { + } + + /** + * \brief Constructor from SO2 and translation vector + */ + template inline + SE2Group(const SO2GroupBase & so2, + const Point & translation) + : so2_(so2), translation_(translation) { + } + + /** + * \brief Constructor from rotation matrix and translation vector + * + * \pre rotation matrix need to be orthogonal with determinant of 1 + */ + inline + SE2Group(const typename SO2Group::Transformation & rotation_matrix, + const Point & translation) + : so2_(rotation_matrix), translation_(translation) { + } + + /** + * \brief Constructor from rotation angle and translation vector + */ + inline + SE2Group(const Scalar & theta, + const Point & translation) + : so2_(theta), translation_(translation) { + } + + /** + * \brief Constructor from complex number and translation vector + * + * \pre complex must not be zero + */ + inline + SE2Group(const std::complex & complex, + const Point & translation) + : so2_(complex), translation_(translation) { + } + + /** + * \brief Constructor from 3x3 matrix + * + * \pre 2x2 sub-matrix need to be orthogonal with determinant of 1 + */ + inline explicit + SE2Group(const Transformation & T) + : so2_(T.template topLeftCorner<2,2>()), + translation_(T.template block<2,1>(0,2)) { + } + + /** + * \returns pointer to internal data + * + * This provides unsafe read/write access to internal data. SE2 is represented + * by a pair of an SO2 element (two parameters) and a translation vector (two + * parameters). The user needs to take care of that the complex + * stays normalized. + * + * /see normalize() + */ + EIGEN_STRONG_INLINE + Scalar* data() { + // so2_ and translation_ are layed out sequentially with no padding + return so2_.data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + EIGEN_STRONG_INLINE + const Scalar* data() const { + // so2_ and translation_ are layed out sequentially with no padding + return so2_.data(); + } + + /** + * \brief Accessor of SO2 + */ + EIGEN_STRONG_INLINE + SO2Reference so2() { + return so2_; + } + + /** + * \brief Mutator of SO2 + */ + EIGEN_STRONG_INLINE + ConstSO2Reference so2() const { + return so2_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Sophus::SO2Group so2_; + Matrix translation_; +}; + + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for SE2GroupBase + * + * Allows us to wrap SE2 Objects around POD array + * (e.g. external c style complex) + */ +template +class Map, _Options> + : public Sophus::SE2GroupBase, _Options> > +{ + typedef Sophus::SE2GroupBase, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO2 reference type */ + typedef typename internal::traits::SO2Type & SO2Reference; + /** \brief SO2 const reference type */ + typedef const typename internal::traits::SO2Type & ConstSO2Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) + : so2_(coeffs), + translation_(coeffs+Sophus::SO2Group::num_parameters) { + } + + /** + * \brief Mutator of SO2 + */ + EIGEN_STRONG_INLINE + SO2Reference so2() { + return so2_; + } + + /** + * \brief Accessor of SO2 + */ + EIGEN_STRONG_INLINE + ConstSO2Reference so2() const { + return so2_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Map,_Options> so2_; + Map,_Options> translation_; +}; + +/** + * \brief Specialisation of Eigen::Map for const SE2GroupBase + * + * Allows us to wrap SE2 Objects around POD array + * (e.g. external c style complex) + */ +template +class Map, _Options> + : public Sophus::SE2GroupBase< + Map, _Options> > { + typedef Sophus::SE2GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO2 const reference type */ + typedef const typename internal::traits::SO2Type & ConstSO2Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) + : so2_(coeffs), + translation_(coeffs+Sophus::SO2Group::num_parameters) { + } + + EIGEN_STRONG_INLINE + Map(const Scalar* trans_coeffs, const Scalar* rot_coeffs) + : translation_(trans_coeffs), so2_(rot_coeffs){ + } + + /** + * \brief Accessor of SO2 + */ + EIGEN_STRONG_INLINE + ConstSO2Reference so2() const { + return so2_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + const Map,_Options> so2_; + const Map,_Options> translation_; +}; + +} + +#endif diff --git a/thirdparty/Sophus/sophus/se3.hpp b/thirdparty/Sophus/sophus/se3.hpp new file mode 100644 index 0000000..d2a20cc --- /dev/null +++ b/thirdparty/Sophus/sophus/se3.hpp @@ -0,0 +1,947 @@ +// This file is part of Sophus. +// +// Copyright 2011-2013 Hauke Strasdat +// 2012-2013 Steven Lovegrove +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_SE3_HPP +#define SOPHUS_SE3_HPP + +#include "so3.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class SE3Group; +typedef SE3Group SE3 EIGEN_DEPRECATED; +typedef SE3Group SE3d; /**< double precision SE3 */ +typedef SE3Group SE3f; /**< single precision SE3 */ +typedef Matrix Vector6d; +typedef Matrix Matrix6d; +typedef Matrix Vector6f; +typedef Matrix Matrix6f; +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Matrix TranslationType; + typedef Sophus::SO3Group SO3Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> SO3Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> SO3Type; +}; + +} +} + +namespace Sophus { +using namespace Eigen; +using namespace std; + +/** + * \brief SE3 base type - implements SE3 class but is storage agnostic + * + * [add more detailed description/tutorial] + */ +template +class SE3GroupBase { +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO3 reference type */ + typedef typename internal::traits::SO3Type & + SO3Reference; + /** \brief SO3 const reference type */ + typedef const typename internal::traits::SO3Type & + ConstSO3Reference; + + /** \brief degree of freedom of group + * (three for translation, three for rotation) */ + static const int DoF = 6; + /** \brief number of internal parameters used + * (unit quaternion for rotation + translation 3-vector) */ + static const int num_parameters = 7; + /** \brief group transformations are NxN matrices */ + static const int N = 4; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Matrix Tangent; + /** \brief adjoint transformation type */ + typedef Matrix Adjoint; + + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-operator. + */ + inline + const Adjoint Adj() const { + const Matrix & R = so3().matrix(); + Adjoint res; + res.block(0,0,3,3) = R; + res.block(3,3,3,3) = R; + res.block(0,3,3,3) = SO3Group::hat(translation())*R; + res.block(3,0,3,3) = Matrix::Zero(3,3); + return res; + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline SE3Group cast() const { + return + SE3Group(so3().template cast(), + translation().template cast() ); + } + + /** + * \brief Fast group multiplication + * + * This method is a fast version of operator*=(), since it does not perform + * normalization. It is up to the user to call normalize() once in a while. + * + * \see operator*=() + */ + inline + void fastMultiply(const SE3Group& other) { + translation() += so3()*(other.translation()); + so3().fastMultiply(other.so3()); + } + + /** + * \returns Group inverse of instance + */ + inline + const SE3Group inverse() const { + const SO3Group invR = so3().inverse(); + return SE3Group(invR, invR*(translation() + *static_cast(-1) ) ); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation + * (translational part and rotation vector) of instance + * + * \see log(). + */ + inline + const Tangent log() const { + return log(*this); + } + + /** + * \brief Normalize SO3 element + * + * It re-normalizes the SO3 element. This method only needs to + * be called in conjunction with fastMultiply() or data() write access. + */ + inline + void normalize() { + so3().normalize(); + } + + /** + * \returns 4x4 matrix representation of instance + */ + inline + const Transformation matrix() const { + Transformation homogenious_matrix; + homogenious_matrix.setIdentity(); + homogenious_matrix.block(0,0,3,3) = rotationMatrix(); + homogenious_matrix.col(3).head(3) = translation(); + return homogenious_matrix; + } + + /** + * \returns 3x4 matrix representation of instance + * + * It returns the three first row of matrix(). + */ + inline + const Matrix matrix3x4() const { + Matrix matrix; + matrix.block(0,0,3,3) = rotationMatrix(); + matrix.col(3) = translation(); + return matrix; + } + + /** + * \brief Assignment operator + */ + template inline + SE3GroupBase& operator= (const SE3GroupBase & other) { + so3() = other.so3(); + translation() = other.translation(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const SE3Group operator*(const SE3Group& other) const { + SE3Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^3 \f$ + * + * \param p point \f$p \in \mathbf{R}^3 \f$ + * \returns point \f$p' \in \mathbf{R}^3 \f$, + * rotated and translated version of \f$p\f$ + * + * This function rotates and translates point \f$ p \f$ + * in \f$ \mathbf{R}^3 \f$ by the SE3 transformation \f$R,t\f$ + * (=rotation matrix, translation vector): \f$ p' = R\cdot p + t \f$. + */ + inline + const Point operator*(const Point & p) const { + return so3()*p + translation(); + } + + /** + * \brief In-place group multiplication + * + * \see fastMultiply() + * \see operator*() + */ + inline + void operator*=(const SE3Group& other) { + fastMultiply(other); + normalize(); + } + + + /** + * \returns Rotation matrix + * + * deprecated: use rotationMatrix() instead. + */ + typedef Transformation M3_marcos_dont_like_commas; + inline + EIGEN_DEPRECATED const M3_marcos_dont_like_commas rotation_matrix() const { + return so3().matrix(); + } + + /** + * \returns Rotation matrix + */ + inline + const Matrix rotationMatrix() const { + return so3().matrix(); + } + + + /** + * \brief Mutator of SO3 group + */ + EIGEN_STRONG_INLINE + SO3Reference so3() { + return static_cast(this)->so3(); + } + + /** + * \brief Accessor of SO3 group + */ + EIGEN_STRONG_INLINE + ConstSO3Reference so3() const { + return static_cast(this)->so3(); + } + + /** + * \brief Setter of internal unit quaternion representation + * + * \param quaternion + * \pre the quaternion must not be zero + * + * The quaternion is normalized to unit length. + */ + inline + void setQuaternion(const Quaternion & quat) { + return so3().setQuaternion(quat); + } + + /** + * \brief Setter of unit quaternion using rotation matrix + * + * \param rotation_matrix a 3x3 rotation matrix + * \pre the 3x3 matrix should be orthogonal and have a determinant of 1 + */ + inline + void setRotationMatrix + (const Matrix & rotation_matrix) { + so3().setQuaternion(Quaternion(rotation_matrix)); + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return static_cast(this)->translation(); + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return static_cast(this)->translation(); + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + inline + typename internal::traits::SO3Type::ConstQuaternionReference + unit_quaternion() const { + return so3().unit_quaternion(); + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \param b 6-vector representation of Lie algebra element + * \returns derivative of Lie bracket + * + * This function returns \f$ \frac{\partial}{\partial a} [a, b]_{se3} \f$ + * with \f$ [a, b]_{se3} \f$ being the lieBracket() of the Lie algebra se3. + * + * \see lieBracket() + */ + inline static + const Adjoint d_lieBracketab_by_d_a(const Tangent & b) { + Adjoint res; + res.setZero(); + + const Matrix & upsilon2 = b.template head<3>(); + const Matrix & omega2 = b.template tail<3>(); + + res.template topLeftCorner<3,3>() = -SO3Group::hat(omega2); + res.template topRightCorner<3,3>() = -SO3Group::hat(upsilon2); + res.template bottomRightCorner<3,3>() = -SO3Group::hat(omega2); + return res; + } + + /** + * \brief Group exponential + * + * \param a tangent space element (6-vector) + * \returns corresponding element of the group SE3 + * + * The first three components of \f$ a \f$ represent the translational + * part \f$ \upsilon \f$ in the tangent space of SE3, while the last three + * components of \f$ a \f$ represents the rotation vector \f$ \omega \f$. + * + * To be more specific, this function computes \f$ \exp(\widehat{a}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of SE3. + * + * \see hat() + * \see log() + */ + inline static + const SE3Group exp(const Tangent & a) { + const Matrix & omega = a.template tail<3>(); + + Scalar theta; + const SO3Group & so3 + = SO3Group::expAndTheta(omega, &theta); + + const Matrix & Omega = SO3Group::hat(omega); + const Matrix & Omega_sq = Omega*Omega; + Matrix V; + + if(theta::epsilon()) { + V = so3.matrix(); + //Note: That is an accurate expansion! + } else { + Scalar theta_sq = theta*theta; + V = (Matrix::Identity() + + (static_cast(1)-std::cos(theta))/(theta_sq)*Omega + + (theta-std::sin(theta))/(theta_sq*theta)*Omega_sq); + } + return SE3Group(so3,V*a.template head<3>()); + } + + /** + * \brief Generators + * + * \pre \f$ i \in \{0,1,2,3,4,5\} \f$ + * \returns \f$ i \f$th generator \f$ G_i \f$ of SE3 + * + * The infinitesimal generators of SE3 are: \f[ + * G_0 = \left( \begin{array}{cccc} + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_1 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_2 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * \end{array} \right). + * G_3 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& -1& 0\\ + * 0& 1& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_4 = \left( \begin{array}{cccc} + * 0& 0& 1& 0\\ + * 0& 0& 0& 0\\ + * -1& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_5 = \left( \begin{array}{cccc} + * 0& -1& 0& 0\\ + * 1& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right). + * \f] + * \see hat() + */ + inline static + const Transformation generator(int i) { + if (i<0 || i>5) { + throw SophusException("i is not in range [0,5]."); + } + Tangent e; + e.setZero(); + e[i] = static_cast(1); + return hat(e); + } + + /** + * \brief hat-operator + * + * \param omega 6-vector representation of Lie algebra element + * \returns 4x4-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of SE3 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^6 \rightarrow \mathbf{R}^{4\times 4}, + * \quad \widehat{\omega} = \sum_{i=0}^5 G_i \omega_i \f$ + * with \f$ G_i \f$ being the ith infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & v) { + Transformation Omega; + Omega.setZero(); + Omega.template topLeftCorner<3,3>() + = SO3Group::hat(v.template tail<3>()); + Omega.col(3).template head<3>() = v.template head<3>(); + return Omega; + } + + /** + * \brief Lie bracket + * + * \param a 6-vector representation of Lie algebra element + * \param b 6-vector representation of Lie algebra element + * \returns 6-vector representation of Lie algebra element + * + * It computes the bracket of SE3. To be more specific, it + * computes \f$ [a, b]_{se3} + * := [\widehat{a}, \widehat{b}]^\vee \f$ + * with \f$ [A,B] = AB-BA \f$ being the matrix + * commutator, \f$ \widehat{\cdot} \f$ the + * hat()-operator and \f$ (\cdot)^\vee \f$ the vee()-operator of SE3. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & a, + const Tangent & b) { + Matrix upsilon1 = a.template head<3>(); + Matrix upsilon2 = b.template head<3>(); + Matrix omega1 = a.template tail<3>(); + Matrix omega2 = b.template tail<3>(); + + Tangent res; + res.template head<3>() = omega1.cross(upsilon2) + upsilon1.cross(omega2); + res.template tail<3>() = omega1.cross(omega2); + + return res; + } + + /** + * \brief Logarithmic map + * + * \param other element of the group SE3 + * \returns corresponding tangent space element + * (translational part \f$ \upsilon \f$ + * and rotation vector \f$ \omega \f$) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of SE3. + * + * \see exp() + * \see vee() + */ + inline static + const Tangent log(const SE3Group & se3) { + Tangent upsilon_omega; + Scalar theta; + upsilon_omega.template tail<3>() + = SO3Group::logAndTheta(se3.so3(), &theta); + + if (std::abs(theta)::epsilon()) { + const Matrix & Omega + = SO3Group::hat(upsilon_omega.template tail<3>()); + const Matrix & V_inv = + Matrix::Identity() - + static_cast(0.5)*Omega + + static_cast(1./12.)*(Omega*Omega); + + upsilon_omega.template head<3>() = V_inv*se3.translation(); + } else { + const Matrix & Omega + = SO3Group::hat(upsilon_omega.template tail<3>()); + const Matrix & V_inv = + ( Matrix::Identity() - static_cast(0.5)*Omega + + ( static_cast(1) + - theta/(static_cast(2)*tan(theta/Scalar(2)))) / + (theta*theta)*(Omega*Omega) ); + upsilon_omega.template head<3>() = V_inv*se3.translation(); + } + return upsilon_omega; + } + + /** + * \brief vee-operator + * + * \param Omega 4x4-matrix representation of Lie algebra element + * \returns 6-vector representatin of Lie algebra element + * + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + Tangent upsilon_omega; + upsilon_omega.template head<3>() = Omega.col(3).template head<3>(); + upsilon_omega.template tail<3>() + = SO3Group::vee(Omega.template topLeftCorner<3,3>()); + return upsilon_omega; + } +}; + +/** + * \brief SE3 default type - Constructors and default storage for SE3 Type + */ +template +class SE3Group : public SE3GroupBase > { + typedef SE3GroupBase > Base; +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief SO3 reference type */ + typedef typename internal::traits > + ::SO3Type & SO3Reference; + /** \brief SO3 const reference type */ + typedef const typename internal::traits > + ::SO3Type & ConstSO3Reference; + /** \brief translation reference type */ + typedef typename internal::traits > + ::TranslationType & TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits > + ::TranslationType & ConstTranslationReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize Quaternion to identity rotation and translation to zero. + */ + inline + SE3Group() + : translation_( Matrix::Zero() ) + { + } + + /** + * \brief Copy constructor + */ + template inline + SE3Group(const SE3GroupBase & other) + : so3_(other.so3()), translation_(other.translation()) { + } + + /** + * \brief Constructor from SO3 and translation vector + */ + template inline + SE3Group(const SO3GroupBase & so3, + const Point & translation) + : so3_(so3), translation_(translation) { + } + + /** + * \brief Constructor from rotation matrix and translation vector + * + * \pre rotation matrix need to be orthogonal with determinant of 1 + */ + inline + SE3Group(const Matrix & rotation_matrix, + const Point & translation) + : so3_(rotation_matrix), translation_(translation) { + } + + /** + * \brief Constructor from quaternion and translation vector + * + * \pre quaternion must not be zero + */ + inline + SE3Group(const Quaternion & quaternion, + const Point & translation) + : so3_(quaternion), translation_(translation) { + } + + /** + * \brief Constructor from 4x4 matrix + * + * \pre top-left 3x3 sub-matrix need to be orthogonal with determinant of 1 + */ + inline explicit + SE3Group(const Eigen::Matrix& T) + : so3_(T.template topLeftCorner<3,3>()), + translation_(T.template block<3,1>(0,3)) { + } + + /** + * \returns pointer to internal data + * + * This provides unsafe read/write access to internal data. SE3 is represented + * by a pair of an SO3 element (4 parameters) and translation vector (three + * parameters). The user needs to take care of that the quaternion + * stays normalized. + * + * Note: The first three Scalars represent the imaginary parts, while the + * forth Scalar represent the real part. + * + * /see normalize() + */ + EIGEN_STRONG_INLINE + Scalar* data() { + // so3_ and translation_ are layed out sequentially with no padding + return so3_.data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + EIGEN_STRONG_INLINE + const Scalar* data() const { + // so3_ and translation_ are layed out sequentially with no padding + return so3_.data(); + } + + /** + * \brief Accessor of SO3 + */ + EIGEN_STRONG_INLINE + SO3Reference so3() { + return so3_; + } + + /** + * \brief Mutator of SO3 + */ + EIGEN_STRONG_INLINE + ConstSO3Reference so3() const { + return so3_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Sophus::SO3Group so3_; + Matrix translation_; +}; + + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for SE3GroupBase + * + * Allows us to wrap SE3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::SE3GroupBase, _Options> > { + typedef Sophus::SE3GroupBase, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO3 reference type */ + typedef typename internal::traits::SO3Type & + SO3Reference; + /** \brief SO3 const reference type */ + typedef const typename internal::traits::SO3Type & + ConstSO3Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) + : so3_(coeffs), + translation_(coeffs+Sophus::SO3Group::num_parameters) { + } + + /** + * \brief Mutator of SO3 + */ + EIGEN_STRONG_INLINE + SO3Reference so3() { + return so3_; + } + + /** + * \brief Accessor of SO3 + */ + EIGEN_STRONG_INLINE + ConstSO3Reference so3() const { + return so3_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Map,_Options> so3_; + Map,_Options> translation_; +}; + +/** + * \brief Specialisation of Eigen::Map for const SE3GroupBase + * + * Allows us to wrap SE3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::SE3GroupBase< + Map, _Options> > { + typedef Sophus::SE3GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief SO3 const reference type */ + typedef const typename internal::traits::SO3Type & + ConstSO3Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) + : so3_(coeffs), + translation_(coeffs+Sophus::SO3Group::num_parameters) { + } + + EIGEN_STRONG_INLINE + Map(const Scalar* trans_coeffs, const Scalar* rot_coeffs) + : translation_(trans_coeffs), so3_(rot_coeffs){ + } + + /** + * \brief Accessor of SO3 + */ + EIGEN_STRONG_INLINE + ConstSO3Reference so3() const { + return so3_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + const Map,_Options> so3_; + const Map,_Options> translation_; +}; + +} + +#endif diff --git a/thirdparty/Sophus/sophus/sim3.hpp b/thirdparty/Sophus/sophus/sim3.hpp new file mode 100644 index 0000000..97087c3 --- /dev/null +++ b/thirdparty/Sophus/sophus/sim3.hpp @@ -0,0 +1,976 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_SIM3_HPP +#define SOPHUS_SIM3_HPP + +#include "rxso3.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class Sim3Group; +typedef Sim3Group Sim3 EIGEN_DEPRECATED; +typedef Sim3Group Sim3d; /**< double precision Sim3 */ +typedef Sim3Group Sim3f; /**< single precision Sim3 */ +typedef Matrix Vector7d; +typedef Matrix Matrix7d; +typedef Matrix Vector7f; +typedef Matrix Matrix7f; +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Matrix TranslationType; + typedef Sophus::RxSO3Group RxSO3Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> RxSO3Type; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> TranslationType; + typedef Map,_Options> RxSO3Type; +}; + +} +} + +namespace Sophus { +using namespace Eigen; +using namespace std; + +/** + * \brief Sim3 base type - implements Sim3 class but is storage agnostic + * + * [add more detailed description/tutorial] + */ +template +class Sim3GroupBase { +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief RxSO3 reference type */ + typedef typename internal::traits::RxSO3Type & + RxSO3Reference; + /** \brief RxSO3 const reference type */ + typedef const typename internal::traits::RxSO3Type & + ConstRxSO3Reference; + + + /** \brief degree of freedom of group + * (three for translation, three for rotation, one for scale) */ + static const int DoF = 7; + /** \brief number of internal parameters used + * (quaternion for rotation and scale + translation 3-vector) */ + static const int num_parameters = 7; + /** \brief group transformations are NxN matrices */ + static const int N = 4; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Matrix Tangent; + /** \brief adjoint transformation type */ + typedef Matrix Adjoint; + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-operator. + */ + inline + const Adjoint Adj() const { + const Matrix & R = rxso3().rotationMatrix(); + Adjoint res; + res.setZero(); + res.block(0,0,3,3) = scale()*R; + res.block(0,3,3,3) = SO3Group::hat(translation())*R; + res.block(0,6,3,1) = -translation(); + res.block(3,3,3,3) = R; + res(6,6) = 1; + return res; + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline Sim3Group cast() const { + return + Sim3Group(rxso3().template cast(), + translation().template cast() ); + } + + /** + * \brief In-place group multiplication + * + * Same as operator*=() for Sim3. + * + * \see operator*() + */ + inline + void fastMultiply(const Sim3Group& other) { + translation() += (rxso3() * other.translation()); + rxso3() *= other.rxso3(); + } + + /** + * \returns Group inverse of instance + */ + inline + const Sim3Group inverse() const { + const RxSO3Group invR = rxso3().inverse(); + return Sim3Group(invR, invR*(translation() + *static_cast(-1) ) ); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation + * (translational part and rotation vector) of instance + * + * \see log(). + */ + inline + const Tangent log() const { + return log(*this); + } + + /** + * \returns 4x4 matrix representation of instance + */ + inline + const Transformation matrix() const { + Transformation homogenious_matrix; + homogenious_matrix.setIdentity(); + homogenious_matrix.block(0,0,3,3) = rxso3().matrix(); + homogenious_matrix.col(3).head(3) = translation(); + return homogenious_matrix; + } + + /** + * \returns 3x4 matrix representation of instance + * + * It returns the three first row of matrix(). + */ + inline + const Matrix matrix3x4() const { + Matrix matrix; + matrix.block(0,0,3,3) = rxso3().matrix(); + matrix.col(3) = translation(); + return matrix; + } + + /** + * \brief Assignment operator + */ + template inline + Sim3GroupBase& operator= + (const Sim3GroupBase & other) { + rxso3() = other.rxso3(); + translation() = other.translation(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const Sim3Group operator*(const Sim3Group& other) const { + Sim3Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^3 \f$ + * + * \param p point \f$p \in \mathbf{R}^3 \f$ + * \returns point \f$p' \in \mathbf{R}^3 \f$, + * rotated, scaled and translated version of \f$p\f$ + * + * This function scales, rotates and translates point \f$ p \f$ + * in \f$ \mathbf{R}^3 \f$ by the Sim3 transformation \f$sR,t\f$ + * (=scaled rotation matrix, translation vector): \f$ p' = sR\cdot p + t \f$. + */ + inline + const Point operator*(const Point & p) const { + return rxso3()*p + translation(); + } + + /** + * \brief In-place group multiplication + * + * \see operator*() + */ + inline + void operator*=(const Sim3Group& other) { + translation() += (rxso3() * other.translation()); + rxso3() *= other.rxso3(); + } + + /** + * \brief Mutator of quaternion + */ + inline + typename internal::traits::RxSO3Type::QuaternionReference + quaternion() { + return rxso3().quaternion(); + } + + /** + * \brief Accessor of quaternion + */ + inline + typename internal::traits::RxSO3Type::ConstQuaternionReference + quaternion() const { + return rxso3().quaternion(); + } + + /** + * \returns Rotation matrix + * + * deprecated: use rotationMatrix() instead. + */ + inline + EIGEN_DEPRECATED const Transformation rotation_matrix() const { + return rxso3().rotationMatrix(); + } + + /** + * \returns Rotation matrix + */ + inline + const Matrix rotationMatrix() const { + return rxso3().rotationMatrix(); + } + + /** + * \brief Mutator of RxSO3 group + */ + EIGEN_STRONG_INLINE + RxSO3Reference rxso3() { + return static_cast(this)->rxso3(); + } + + /** + * \brief Accessor of RxSO3 group + */ + EIGEN_STRONG_INLINE + ConstRxSO3Reference rxso3() const { + return static_cast(this)->rxso3(); + } + + /** + * \returns scale + */ + EIGEN_STRONG_INLINE + const Scalar scale() const { + return rxso3().scale(); + } + + /** + * \brief Setter of quaternion using rotation matrix, leaves scale untouched + * + * \param R a 3x3 rotation matrix + * \pre the 3x3 matrix should be orthogonal and have a determinant of 1 + */ + inline + void setRotationMatrix + (const Matrix & R) { + rxso3().setRotationMatrix(R); + } + + /** + * \brief Scale setter + */ + EIGEN_STRONG_INLINE + void setScale(const Scalar & scale) { + rxso3().setScale(scale); + } + + /** + * \brief Setter of quaternion using scaled rotation matrix + * + * \param sR a 3x3 scaled rotation matrix + * \pre the 3x3 matrix should be "scaled orthogonal" + * and have a positive determinant + */ + inline + void setScaledRotationMatrix + (const Matrix & sR) { + rxso3().setScaledRotationMatrix(sR); + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return static_cast(this)->translation(); + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return static_cast(this)->translation(); + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \param b 7-vector representation of Lie algebra element + * \returns derivative of Lie bracket + * + * This function returns \f$ \frac{\partial}{\partial a} [a, b]_{sim3} \f$ + * with \f$ [a, b]_{sim3} \f$ being the lieBracket() of the Lie algebra sim3. + * + * \see lieBracket() + */ + inline static + const Adjoint d_lieBracketab_by_d_a(const Tangent & b) { + const Matrix & upsilon2 = b.template head<3>(); + const Matrix & omega2 = b.template segment<3>(3); + Scalar sigma2 = b[6]; + + Adjoint res; + res.setZero(); + res.template topLeftCorner<3,3>() + = -SO3::hat(omega2)-sigma2*Matrix3d::Identity(); + res.template block<3,3>(0,3) = -SO3::hat(upsilon2); + res.template topRightCorner<3,1>() = upsilon2; + res.template block<3,3>(3,3) = -SO3::hat(omega2); + return res; + } + + /** + * \brief Group exponential + * + * \param a tangent space element (7-vector) + * \returns corresponding element of the group Sim3 + * + * The first three components of \f$ a \f$ represent the translational + * part \f$ \upsilon \f$ in the tangent space of Sim3, while the last three + * components of \f$ a \f$ represents the rotation vector \f$ \omega \f$. + * + * To be more specific, this function computes \f$ \exp(\widehat{a}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of Sim3. + * + * \see hat() + * \see log() + */ + inline static + const Sim3Group exp(const Tangent & a) { + const Matrix & upsilon = a.segment(0,3); + const Matrix & omega = a.segment(3,3); + Scalar sigma = a[6]; + Scalar theta; + RxSO3Group rxso3 + = RxSO3Group::expAndTheta(a.template tail<4>(), &theta); + const Matrix & Omega = SO3Group::hat(omega); + const Matrix & W = calcW(theta, sigma, rxso3.scale(), Omega); + return Sim3Group(rxso3, W*upsilon); + } + + /** + * \brief Generators + * + * \pre \f$ i \in \{0,1,2,3,4,5,6\} \f$ + * \returns \f$ i \f$th generator \f$ G_i \f$ of Sim3 + * + * The infinitesimal generators of Sim3 are: \f[ + * G_0 = \left( \begin{array}{cccc} + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_1 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_2 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 1\\ + * 0& 0& 0& 0\\ + * \end{array} \right). + * G_3 = \left( \begin{array}{cccc} + * 0& 0& 0& 0\\ + * 0& 0& -1& 0\\ + * 0& 1& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_4 = \left( \begin{array}{cccc} + * 0& 0& 1& 0\\ + * 0& 0& 0& 0\\ + * -1& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_5 = \left( \begin{array}{cccc} + * 0& -1& 0& 0\\ + * 1& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right), + * G_6 = \left( \begin{array}{cccc} + * 1& 0& 0& 0\\ + * 0& 1& 0& 0\\ + * 0& 0& 1& 0\\ + * 0& 0& 0& 0\\ + * \end{array} \right). + * \f] + * \see hat() + */ + inline static + const Transformation generator(int i) { + if (i<0 || i>6) { + throw SophusException("i is not in range [0,6]."); + } + Tangent e; + e.setZero(); + e[i] = static_cast(1); + return hat(e); + } + + /** + * \brief hat-operator + * + * \param omega 7-vector representation of Lie algebra element + * \returns 4x4-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of Sim3 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^7 \rightarrow \mathbf{R}^{4\times 4}, + * \quad \widehat{\omega} = \sum_{i=0}^5 G_i \omega_i \f$ + * with \f$ G_i \f$ being the ith infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & v) { + Transformation Omega; + Omega.template topLeftCorner<3,3>() + = RxSO3Group::hat(v.template tail<4>()); + Omega.col(3).template head<3>() = v.template head<3>(); + Omega.row(3).setZero(); + return Omega; + } + + /** + * \brief Lie bracket + * + * \param a 7-vector representation of Lie algebra element + * \param b 7-vector representation of Lie algebra element + * \returns 7-vector representation of Lie algebra element + * + * It computes the bracket of Sim3. To be more specific, it + * computes \f$ [a, b]_{sim3} + * := [\widehat{a}, \widehat{b}]^\vee \f$ + * with \f$ [A,B] = AB-BA \f$ being the matrix + * commutator, \f$ \widehat{\cdot} \f$ the + * hat()-operator and \f$ (\cdot)^\vee \f$ the vee()-operator of Sim3. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & a, + const Tangent & b) { + const Matrix & upsilon1 = a.template head<3>(); + const Matrix & upsilon2 = b.template head<3>(); + const Matrix & omega1 = a.template segment<3>(3); + const Matrix & omega2 = b.template segment<3>(3); + Scalar sigma1 = a[6]; + Scalar sigma2 = b[6]; + + Tangent res; + res.template head<3>() = + SO3Group::hat(omega1)*upsilon2 + + SO3Group::hat(upsilon1)*omega2 + + sigma1*upsilon2 - sigma2*upsilon1; + res.template segment<3>(3) = omega1.cross(omega2); + res[6] = static_cast(0); + + return res; + } + + /** + * \brief Logarithmic map + * + * \param other element of the group Sim3 + * \returns corresponding tangent space element + * (translational part \f$ \upsilon \f$ + * and rotation vector \f$ \omega \f$) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of Sim3. + * + * \see exp() + * \see vee() + */ + inline static + const Tangent log(const Sim3Group & other) { + Tangent res; + Scalar theta; + const Matrix & omega_sigma + = RxSO3Group::logAndTheta(other.rxso3(), &theta); + const Matrix & omega = omega_sigma.template head<3>(); + Scalar sigma = omega_sigma[3]; + const Matrix & W + = calcW(theta, sigma, other.scale(), SO3Group::hat(omega)); + res.segment(0,3) = W.partialPivLu().solve(other.translation()); + res.segment(3,3) = omega; + res[6] = sigma; + return res; + } + + /** + * \brief vee-operator + * + * \param Omega 4x4-matrix representation of Lie algebra element + * \returns 7-vector representatin of Lie algebra element + * + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + Tangent upsilon_omega_sigma; + upsilon_omega_sigma.template head<3>() + = Omega.col(3).template head<3>(); + upsilon_omega_sigma.template tail<4>() + = RxSO3Group::vee(Omega.template topLeftCorner<3,3>()); + return upsilon_omega_sigma; + } + +private: + static + Matrix calcW(const Scalar & theta, + const Scalar & sigma, + const Scalar & scale, + const Matrix & Omega){ + static const Matrix I + = Matrix::Identity(); + static const Scalar one = static_cast(1.); + static const Scalar half = static_cast(1./2.); + Matrix Omega2 = Omega*Omega; + + Scalar A,B,C; + if (std::abs(sigma)::epsilon()) { + C = one; + if (std::abs(theta)::epsilon()) { + A = half; + B = static_cast(1./6.); + } else { + Scalar theta_sq = theta*theta; + A = (one-std::cos(theta))/theta_sq; + B = (theta-std::sin(theta))/(theta_sq*theta); + } + } else { + C = (scale-one)/sigma; + if (std::abs(theta)::epsilon()) { + Scalar sigma_sq = sigma*sigma; + A = ((sigma-one)*scale+one)/sigma_sq; + B = ((half*sigma*sigma-sigma+one)*scale)/(sigma_sq*sigma); + } else { + Scalar theta_sq = theta*theta; + Scalar a = scale*std::sin(theta); + Scalar b = scale*std::cos(theta); + Scalar c = theta_sq+sigma*sigma; + A = (a*sigma+ (one-b)*theta)/(theta*c); + B = (C-((b-one)*sigma+a*theta)/(c))*one/(theta_sq); + } + } + return A*Omega + B*Omega2 + C*I; + } +}; + +/** + * \brief Sim3 default type - Constructors and default storage for Sim3 Type + */ +template +class Sim3Group : public Sim3GroupBase > { + typedef Sim3GroupBase > Base; +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief RxSO3 reference type */ + typedef typename internal::traits > + ::RxSO3Type & RxSO3Reference; + /** \brief RxSO3 const reference type */ + typedef const typename internal::traits > + ::RxSO3Type & ConstRxSO3Reference; + /** \brief translation reference type */ + typedef typename internal::traits > + ::TranslationType & TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits > + ::TranslationType & ConstTranslationReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize Quaternion to identity rotation and translation to zero. + */ + inline + Sim3Group() + : translation_( Matrix::Zero() ) + { + } + + /** + * \brief Copy constructor + */ + template inline + Sim3Group(const Sim3GroupBase & other) + : rxso3_(other.rxso3()), translation_(other.translation()) { + } + + /** + * \brief Constructor from RxSO3 and translation vector + */ + template inline + Sim3Group(const RxSO3GroupBase & rxso3, + const Point & translation) + : rxso3_(rxso3), translation_(translation) { + } + + /** + * \brief Constructor from quaternion and translation vector + * + * \pre quaternion must not be zero + */ + inline + Sim3Group(const Quaternion & quaternion, + const Point & translation) + : rxso3_(quaternion), translation_(translation) { + } + + /** + * \brief Constructor from 4x4 matrix + * + * \pre top-left 3x3 sub-matrix need to be "scaled orthogonal" + * with positive determinant of + */ + inline explicit + Sim3Group(const Eigen::Matrix& T) + : rxso3_(T.template topLeftCorner<3,3>()), + translation_(T.template block<3,1>(0,3)) { + } + + /** + * \returns pointer to internal data + * + * This provides unsafe read/write access to internal data. Sim3 is + * represented by a pair of an RxSO3 element (4 parameters) and translation + * vector (three parameters). + * + * Note: The first three Scalars represent the imaginary parts, while the + */ + EIGEN_STRONG_INLINE + Scalar* data() { + // rxso3_ and translation_ are layed out sequentially with no padding + return rxso3_.data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + EIGEN_STRONG_INLINE + const Scalar* data() const { + // rxso3_ and translation_ are layed out sequentially with no padding + return rxso3_.data(); + } + + /** + * \brief Accessor of RxSO3 + */ + EIGEN_STRONG_INLINE + RxSO3Reference rxso3() { + return rxso3_; + } + + /** + * \brief Mutator of RxSO3 + */ + EIGEN_STRONG_INLINE + ConstRxSO3Reference rxso3() const { + return rxso3_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Sophus::RxSO3Group rxso3_; + Matrix translation_; +}; + + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for Sim3GroupBase + * + * Allows us to wrap Sim3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::Sim3GroupBase, _Options> > { + typedef Sophus::Sim3GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation reference type */ + typedef typename internal::traits::TranslationType & + TranslationReference; + /** \brief translation const reference type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief RxSO3 reference type */ + typedef typename internal::traits::RxSO3Type & + RxSO3Reference; + /** \brief RxSO3 const reference type */ + typedef const typename internal::traits::RxSO3Type & + ConstRxSO3Reference; + + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) + : rxso3_(coeffs), + translation_(coeffs+Sophus::RxSO3Group::num_parameters) { + } + + /** + * \brief Mutator of RxSO3 + */ + EIGEN_STRONG_INLINE + RxSO3Reference rxso3() { + return rxso3_; + } + + /** + * \brief Accessor of RxSO3 + */ + EIGEN_STRONG_INLINE + ConstRxSO3Reference rxso3() const { + return rxso3_; + } + + /** + * \brief Mutator of translation vector + */ + EIGEN_STRONG_INLINE + TranslationReference translation() { + return translation_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + Map,_Options> rxso3_; + Map,_Options> translation_; +}; + +/** + * \brief Specialisation of Eigen::Map for const Sim3GroupBase + * + * Allows us to wrap Sim3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::Sim3GroupBase< + Map, _Options> > { + typedef Sophus::Sim3GroupBase< + Map, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief translation type */ + typedef const typename internal::traits::TranslationType & + ConstTranslationReference; + /** \brief RxSO3 const reference type */ + typedef const typename internal::traits::RxSO3Type & + ConstRxSO3Reference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) + : rxso3_(coeffs), + translation_(coeffs+Sophus::RxSO3Group::num_parameters) { + } + + EIGEN_STRONG_INLINE + Map(const Scalar* trans_coeffs, const Scalar* rot_coeffs) + : translation_(trans_coeffs), rxso3_(rot_coeffs){ + } + + /** + * \brief Accessor of RxSO3 + */ + EIGEN_STRONG_INLINE + ConstRxSO3Reference rxso3() const { + return rxso3_; + } + + /** + * \brief Accessor of translation vector + */ + EIGEN_STRONG_INLINE + ConstTranslationReference translation() const { + return translation_; + } + +protected: + const Map,_Options> rxso3_; + const Map,_Options> translation_; +}; + +} + +#endif diff --git a/thirdparty/Sophus/sophus/so2.hpp b/thirdparty/Sophus/sophus/so2.hpp new file mode 100644 index 0000000..d2e8160 --- /dev/null +++ b/thirdparty/Sophus/sophus/so2.hpp @@ -0,0 +1,701 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_SO2_HPP +#define SOPHUS_SO2_HPP + +#include + +#include "sophus.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class SO2Group; +typedef SO2Group SO2 EIGEN_DEPRECATED; +typedef SO2Group SO2d; /**< double precision SO2 */ +typedef SO2Group SO2f; /**< single precision SO2 */ +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Matrix ComplexType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> ComplexType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> ComplexType; +}; + +} +} + +namespace Sophus { +using namespace Eigen; + +/** + * \brief SO2 base type - implements SO2 class but is storage agnostic + * + * [add more detailed description/tutorial] + */ +template +class SO2GroupBase { +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief complex number reference type */ + typedef typename internal::traits::ComplexType & + ComplexReference; + /** \brief complex number const reference type */ + typedef const typename internal::traits::ComplexType & + ConstComplexReference; + + /** \brief degree of freedom of group + * (one for in-plane rotation) */ + static const int DoF = 1; + /** \brief number of internal parameters used + * (unit complex number for rotation) */ + static const int num_parameters = 2; + /** \brief group transformations are NxN matrices */ + static const int N = 2; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Scalar Tangent; + /** \brief adjoint transformation type */ + typedef Scalar Adjoint; + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-operator. + * + * For SO2, it simply returns 1. + */ + inline + const Adjoint Adj() const { + return 1; + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline SO2Group cast() const { + return SO2Group(unit_complex() + .template cast() ); + } + + /** + * \returns pointer to internal data + * + * This provides unsafe read/write access to internal data. SO2 is represented + * by a complex number with unit length (two parameters). When using direct + * write access, the user needs to take care of that the complex number stays + * normalized. + * + * \see normalize() + */ + inline Scalar* data() { + return unit_complex_nonconst().data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + inline const Scalar* data() const { + return unit_complex().data(); + } + + /** + * \brief Fast group multiplication + * + * This method is a fast version of operator*=(), since it does not perform + * normalization. It is up to the user to call normalize() once in a while. + * + * \see operator*=() + */ + inline + void fastMultiply(const SO2Group& other) { + Scalar lhs_real = unit_complex().x(); + Scalar lhs_imag = unit_complex().y(); + const Scalar & rhs_real = other.unit_complex().x(); + const Scalar & rhs_imag = other.unit_complex().y(); + // complex multiplication + unit_complex_nonconst().x() = lhs_real*rhs_real - lhs_imag*rhs_imag; + unit_complex_nonconst().y() = lhs_real*rhs_imag + lhs_imag*rhs_real; + } + + /** + * \returns group inverse of instance + */ + inline + const SO2Group inverse() const { + return SO2Group(unit_complex().x(), -unit_complex().y()); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation (=rotation angle) of instance + * + * \see log(). + */ + inline + const Scalar log() const { + return SO2Group::log(*this); + } + + /** + * \brief Normalize complex number + * + * It re-normalizes complex number to unit length. This method only needs to + * be called in conjunction with fastMultiply() or data() write access. + */ + inline + void normalize() { + Scalar length = + std::sqrt(unit_complex().x()*unit_complex().x() + + unit_complex().y()*unit_complex().y()); + if(length < SophusConstants::epsilon()) { + throw SophusException("Complex number is (near) zero!"); + } + unit_complex_nonconst().x() /= length; + unit_complex_nonconst().y() /= length; + } + + /** + * \returns 2x2 matrix representation of instance + * + * For SO2, the matrix representation is an orthogonal matrix R with det(R)=1, + * thus the so-called rotation matrix. + */ + inline + const Transformation matrix() const { + const Scalar & real = unit_complex().x(); + const Scalar & imag = unit_complex().y(); + Transformation R; + R << real, -imag + ,imag, real; + return R; + } + + /** + * \brief Assignment operator + */ + template inline + SO2GroupBase& operator=(const SO2GroupBase & other) { + unit_complex_nonconst() = other.unit_complex(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const SO2Group operator*(const SO2Group& other) const { + SO2Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^2 \f$ + * + * \param p point \f$p \in \mathbf{R}^2 \f$ + * \returns point \f$p' \in \mathbf{R}^2 \f$, rotated version of \f$p\f$ + * + * This function rotates a point \f$ p \f$ in \f$ \mathbf{R}^2 \f$ by the + * SO2 transformation \f$R\f$ (=rotation matrix): \f$ p' = R\cdot p \f$. + */ + inline + const Point operator*(const Point & p) const { + const Scalar & real = unit_complex().x(); + const Scalar & imag = unit_complex().y(); + return Point(real*p[0] - imag*p[1], imag*p[0] + real*p[1]); + } + + /** + * \brief In-place group multiplication + * + * \see fastMultiply() + * \see operator*() + */ + inline + void operator*=(const SO2Group& other) { + fastMultiply(other); + normalize(); + } + + /** + * \brief Setter of internal unit complex number representation + * + * \param complex + * \pre the complex number must not be near zero + * + * The complex number is normalized to unit length. + */ + inline + void setComplex(const Point & complex) { + unit_complex() = complex; + normalize(); + } + + /** + * \brief Accessor of unit complex number + * + * No direct write access is given to ensure the complex stays normalized. + */ + EIGEN_STRONG_INLINE + ConstComplexReference unit_complex() const { + return static_cast(this)->unit_complex(); + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \brief Group exponential + * + * \param theta tangent space element (=rotation angle \f$ \theta \f$) + * \returns corresponding element of the group SO2 + * + * To be more specific, this function computes \f$ \exp(\widehat{\theta}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of SO2. + * + * \see hat() + * \see log() + */ + inline static + const SO2Group exp(const Tangent & theta) { + return SO2Group(std::cos(theta), std::sin(theta)); + } + + /** + * \brief Generator + * + * The infinitesimal generator of SO2 + * is \f$ + * G_0 = \left( \begin{array}{ccc} + * 0& -1& \\ + * 1& 0& + * \end{array} \right). + * \f$ + * \see hat() + */ + inline static + const Transformation generator() { + return hat(1); + } + + /** + * \brief hat-operator + * + * \param theta scalar representation of Lie algebra element + * \returns 2x2-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of SO2 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^2 \rightarrow \mathbf{R}^{2\times 2}, + * \quad \widehat{\theta} = G_0\cdot \theta \f$ + * with \f$ G_0 \f$ being the infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & theta) { + Transformation Omega; + Omega << static_cast(0), -theta + , theta, static_cast(0); + return Omega; + } + + /** + * \brief Lie bracket + * + * \param theta1 scalar representation of Lie algebra element + * \param theta2 scalar representation of Lie algebra element + * \returns zero + * + * It computes the bracket. For the Lie algebra so2, the Lie bracket is + * simply \f$ [\theta_1, \theta_2]_{so2} = 0 \f$ since SO2 is a + * commutative group. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & theta1, + const Tangent & theta2) { + return static_cast(0); + } + + /** + * \brief Logarithmic map + * + * \param other element of the group SO2 + * \returns corresponding tangent space element + * (=rotation angle \f$ \theta \f$) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of SO2. + * + * \see exp() + * \see vee() + */ + inline static + const Tangent log(const SO2Group & other) { + // todo: general implementation for Scalar not being float or double. + return atan2(other.unit_complex_.y(), other.unit_complex().x()); + } + + /** + * \brief vee-operator + * + * \param Omega 2x2-matrix representation of Lie algebra element + * \pre Omega need to be a skew-symmetric matrix + * \returns scalar representatin of Lie algebra element + *s + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + return static_cast(0.5)*(Omega(1,0) - Omega(0,1)); + } + +private: + // Mutator of complex number is private so users are hampered + // from setting non-unit complex numbers. + EIGEN_STRONG_INLINE + ComplexReference unit_complex_nonconst() { + return static_cast(this)->unit_complex_nonconst(); + } + +}; + +/** + * \brief SO2 default type - Constructors and default storage for SO2 Type + */ +template +class SO2Group : public SO2GroupBase > { + typedef SO2GroupBase > Base; +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief complex number reference type */ + typedef typename internal::traits > + ::ComplexType & ComplexReference; + /** \brief complex number const reference type */ + typedef const typename internal::traits > + ::ComplexType & ConstComplexReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + // base is friend so unit_complex_nonconst can be accessed from base + friend class SO2GroupBase >; + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize complex number to identity rotation. + */ + inline SO2Group() + : unit_complex_(static_cast(1), static_cast(0)) { + } + + /** + * \brief Copy constructor + */ + template inline + SO2Group(const SO2GroupBase & other) + : unit_complex_(other.unit_complex()) { + } + + /** + * \brief Constructor from rotation matrix + * + * \pre rotation matrix need to be orthogonal with determinant of 1 + */ + inline explicit + SO2Group(const Transformation & R) + : unit_complex_(static_cast(0.5)*(R(0,0)+R(1,1)), + static_cast(0.5)*(R(1,0)-R(0,1))) { + if (std::abs(R.determinant()-static_cast(1)) + > SophusConstants::epsilon()) { + throw SophusException("det(R) is not near 1."); + } + } + + /** + * \brief Constructor from pair of real and imaginary number + * + * \pre pair must not be zero + */ + inline SO2Group(const Scalar & real, const Scalar & imag) + : unit_complex_(real, imag) { + Base::normalize(); + } + + /** + * \brief Constructor from 2-vector + * + * \pre vector must not be zero + */ + inline explicit + SO2Group(const Matrix & complex) + : unit_complex_(complex) { + Base::normalize(); + } + + /** + * \brief Constructor from std::complex + * + * \pre complex number must not be zero + */ + inline explicit + SO2Group(const std::complex & complex) + : unit_complex_(complex.real(), complex.imag()) { + Base::normalize(); + } + + /** + * \brief Constructor from an angle + */ + inline explicit + SO2Group(Scalar theta) { + unit_complex_nonconst() = SO2Group::exp(theta).unit_complex(); + } + + /** + * \brief Accessor of unit complex number + * + * No direct write access is given to ensure the complex number stays + * normalized. + */ + EIGEN_STRONG_INLINE + ConstComplexReference unit_complex() const { + return unit_complex_; + } + +protected: + // Mutator of complex number is protected so users are hampered + // from setting non-unit complex numbers. + EIGEN_STRONG_INLINE + ComplexReference unit_complex_nonconst() { + return unit_complex_; + } + + static bool isNearZero(const Scalar & real, const Scalar & imag) { + return (real*real + imag*imag < SophusConstants::epsilon()); + } + + Matrix unit_complex_; +}; + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for SO2GroupBase + * + * Allows us to wrap SO2 Objects around POD array + * (e.g. external c style complex number) + */ +template +class Map, _Options> + : public Sophus::SO2GroupBase, _Options> > { + typedef Sophus::SO2GroupBase, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief complex number reference type */ + typedef typename internal::traits::ComplexType & ComplexReference; + /** \brief complex number const reference type */ + typedef const typename internal::traits::ComplexType & + ConstComplexReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + // base is friend so unit_complex_nonconst can be accessed from base + friend class Sophus::SO2GroupBase, _Options> >; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) : unit_complex_(coeffs) { + } + + /** + * \brief Accessor of unit complex number + * + * No direct write access is given to ensure the complex number stays + * normalized. + */ + EIGEN_STRONG_INLINE + ConstComplexReference unit_complex() const { + return unit_complex_; + } + +protected: + // Mutator of complex number is protected so users are hampered + // from setting non-unit complex number. + EIGEN_STRONG_INLINE + ComplexReference unit_complex_nonconst() { + return unit_complex_; + } + + Map,_Options> unit_complex_; +}; + +/** + * \brief Specialisation of Eigen::Map for const SO2GroupBase + * + * Allows us to wrap SO2 Objects around POD array + * (e.g. external c style complex number) + */ +template +class Map, _Options> + : public Sophus::SO2GroupBase< + Map, _Options> > { + typedef Sophus::SO2GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief complex number const reference type */ + typedef const typename internal::traits::ComplexType & + ConstComplexReference; + + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) : unit_complex_(coeffs) { + } + + /** + * \brief Accessor of unit complex number + * + * No direct write access is given to ensure the complex number stays + * normalized. + */ + EIGEN_STRONG_INLINE + ConstComplexReference unit_complex() const { + return unit_complex_; + } + +protected: + const Map,_Options> unit_complex_; +}; + +} + + +#endif // SOPHUS_SO2_HPP diff --git a/thirdparty/Sophus/sophus/so3.hpp b/thirdparty/Sophus/sophus/so3.hpp new file mode 100644 index 0000000..88a362e --- /dev/null +++ b/thirdparty/Sophus/sophus/so3.hpp @@ -0,0 +1,811 @@ +// This file is part of Sophus. +// +// Copyright 2011-2013 Hauke Strasdat +// Copyrifht 2012-2013 Steven Lovegrove +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_SO3_HPP +#define SOPHUS_SO3_HPP + +#include "sophus.hpp" + +//////////////////////////////////////////////////////////////////////////// +// Forward Declarations / typedefs +//////////////////////////////////////////////////////////////////////////// + +namespace Sophus { +template class SO3Group; +typedef EIGEN_DEPRECATED SO3Group SO3; +typedef SO3Group SO3d; /**< double precision SO3 */ +typedef SO3Group SO3f; /**< single precision SO3 */ +} + +//////////////////////////////////////////////////////////////////////////// +// Eigen Traits (For querying derived types in CRTP hierarchy) +//////////////////////////////////////////////////////////////////////////// + +namespace Eigen { +namespace internal { + +template +struct traits > { + typedef _Scalar Scalar; + typedef Quaternion QuaternionType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> QuaternionType; +}; + +template +struct traits, _Options> > + : traits > { + typedef _Scalar Scalar; + typedef Map,_Options> QuaternionType; +}; + +} +} + +namespace Sophus { +using namespace Eigen; + +/** + * \brief SO3 base type - implements SO3 class but is storage agnostic + * + * [add more detailed description/tutorial] + */ +template +class SO3GroupBase { +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion reference type */ + typedef typename internal::traits::QuaternionType & + QuaternionReference; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + /** \brief degree of freedom of group + * (three for rotation) */ + static const int DoF = 3; + /** \brief number of internal parameters used + * (unit quaternion for rotation) */ + static const int num_parameters = 4; + /** \brief group transformations are NxN matrices */ + static const int N = 3; + /** \brief group transfomation type */ + typedef Matrix Transformation; + /** \brief point type */ + typedef Matrix Point; + /** \brief tangent vector type */ + typedef Matrix Tangent; + /** \brief adjoint transformation type */ + typedef Matrix Adjoint; + + /** + * \brief Adjoint transformation + * + * This function return the adjoint transformation \f$ Ad \f$ of the + * group instance \f$ A \f$ such that for all \f$ x \f$ + * it holds that \f$ \widehat{Ad_A\cdot x} = A\widehat{x}A^{-1} \f$ + * with \f$\ \widehat{\cdot} \f$ being the hat()-Vector4Scalaror. + * + * For SO3, it simply returns the rotation matrix corresponding to \f$ A \f$. + */ + inline + const Adjoint Adj() const { + return matrix(); + } + + /** + * \returns copy of instance casted to NewScalarType + */ + template + inline SO3Group cast() const { + return SO3Group(unit_quaternion() + .template cast() ); + } + + /** + * \returns pointer to internal data + * + * This provides unsafe read/write access to internal data. SO3 is represented + * by an Eigen::Quaternion (four parameters). When using direct write access, + * the user needs to take care of that the quaternion stays normalized. + * + * Note: The first three Scalars represent the imaginary parts, while the + * forth Scalar represent the real part. + * + * \see normalize() + */ + inline Scalar* data() { + return unit_quaternion_nonconst().coeffs().data(); + } + + /** + * \returns const pointer to internal data + * + * Const version of data(). + */ + inline const Scalar* data() const { + return unit_quaternion().coeffs().data(); + } + + /** + * \brief Fast group multiplication + * + * This method is a fast version of operator*=(), since it does not perform + * normalization. It is up to the user to call normalize() once in a while. + * + * \see operator*=() + */ + inline + void fastMultiply(const SO3Group& other) { + unit_quaternion_nonconst() *= other.unit_quaternion(); + } + + /** + * \returns group inverse of instance + */ + inline + const SO3Group inverse() const { + return SO3Group(unit_quaternion().conjugate()); + } + + /** + * \brief Logarithmic map + * + * \returns tangent space representation (=rotation vector) of instance + * + * \see log(). + */ + inline + const Tangent log() const { + return SO3Group::log(*this); + } + + /** + * \brief Normalize quaternion + * + * It re-normalizes unit_quaternion to unit length. This method only needs to + * be called in conjunction with fastMultiply() or data() write access. + */ + inline + void normalize() { + Scalar length = unit_quaternion_nonconst().norm(); + if (length < SophusConstants::epsilon()) { + throw SophusException("Quaternion is (near) zero!"); + } + unit_quaternion_nonconst().coeffs() /= length; + } + + /** + * \returns 3x3 matrix representation of instance + * + * For SO3, the matrix representation is an orthogonal matrix R with det(R)=1, + * thus the so-called rotation matrix. + */ + inline + const Transformation matrix() const { + return unit_quaternion().toRotationMatrix(); + } + + /** + * \brief Assignment operator + */ + template inline + SO3GroupBase& operator=(const SO3GroupBase & other) { + unit_quaternion_nonconst() = other.unit_quaternion(); + return *this; + } + + /** + * \brief Group multiplication + * \see operator*=() + */ + inline + const SO3Group operator*(const SO3Group& other) const { + SO3Group result(*this); + result *= other; + return result; + } + + /** + * \brief Group action on \f$ \mathbf{R}^3 \f$ + * + * \param p point \f$p \in \mathbf{R}^3 \f$ + * \returns point \f$p' \in \mathbf{R}^3 \f$, rotated version of \f$p\f$ + * + * This function rotates a point \f$ p \f$ in \f$ \mathbf{R}^3 \f$ by the + * SO3 transformation \f$R\f$ (=rotation matrix): \f$ p' = R\cdot p \f$. + * + * + * Since SO3 is intenally represented by a unit quaternion \f$q\f$, it is + * implemented as \f$ p' = q\cdot p \cdot q^{*} \f$ + * with \f$ q^{*} \f$ being the quaternion conjugate of \f$ q \f$. + * + * Geometrically, \f$ p \f$ is rotated by angle \f$|\omega|\f$ around the + * axis \f$\frac{\omega}{|\omega|}\f$ with \f$ \omega = \log(R)^\vee \f$. + * + * \see log() + */ + inline + const Point operator*(const Point & p) const { + return unit_quaternion()._transformVector(p); + } + + /** + * \brief In-place group multiplication + * + * \see fastMultiply() + * \see operator*() + */ + inline + void operator*=(const SO3Group& other) { + fastMultiply(other); + normalize(); + } + + /** + * \brief Setter of internal unit quaternion representation + * + * \param quaternion + * \pre the quaternion must not be zero + * + * The quaternion is normalized to unit length. + */ + inline + void setQuaternion(const Quaternion& quaternion) { + unit_quaternion_nonconst() = quaternion; + normalize(); + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference unit_quaternion() const { + return static_cast(this)->unit_quaternion(); + } + + //////////////////////////////////////////////////////////////////////////// + // public static functions + //////////////////////////////////////////////////////////////////////////// + + /** + * \param b 3-vector representation of Lie algebra element + * \returns derivative of Lie bracket + * + * This function returns \f$ \frac{\partial}{\partial a} [a, b]_{so3} \f$ + * with \f$ [a, b]_{so3} \f$ being the lieBracket() of the Lie algebra so3. + * + * \see lieBracket() + */ + inline static + const Adjoint d_lieBracketab_by_d_a(const Tangent & b) { + return -hat(b); + } + + /** + * \brief Group exponential + * + * \param omega tangent space element (=rotation vector \f$ \omega \f$) + * \returns corresponding element of the group SO3 + * + * To be more specific, this function computes \f$ \exp(\widehat{\omega}) \f$ + * with \f$ \exp(\cdot) \f$ being the matrix exponential + * and \f$ \widehat{\cdot} \f$ the hat()-operator of SO3. + * + * \see expAndTheta() + * \see hat() + * \see log() + */ + inline static + const SO3Group exp(const Tangent & omega) { + Scalar theta; + return expAndTheta(omega, &theta); + } + + /** + * \brief Group exponential and theta + * + * \param omega tangent space element (=rotation vector \f$ \omega \f$) + * \param[out] theta angle of rotation \f$ \theta = |\omega| \f$ + * \returns corresponding element of the group SO3 + * + * \see exp() for details + */ + inline static + const SO3Group expAndTheta(const Tangent & omega, + Scalar * theta) { + const Scalar theta_sq = omega.squaredNorm(); + *theta = std::sqrt(theta_sq); + const Scalar half_theta = static_cast(0.5)*(*theta); + + Scalar imag_factor; + Scalar real_factor;; + if((*theta)::epsilon()) { + const Scalar theta_po4 = theta_sq*theta_sq; + imag_factor = static_cast(0.5) + - static_cast(1.0/48.0)*theta_sq + + static_cast(1.0/3840.0)*theta_po4; + real_factor = static_cast(1) + - static_cast(0.5)*theta_sq + + static_cast(1.0/384.0)*theta_po4; + } else { + const Scalar sin_half_theta = std::sin(half_theta); + imag_factor = sin_half_theta/(*theta); + real_factor = std::cos(half_theta); + } + + return SO3Group(Quaternion(real_factor, + imag_factor*omega.x(), + imag_factor*omega.y(), + imag_factor*omega.z())); + } + + /** + * \brief Generators + * + * \pre \f$ i \in \{0,1,2\} \f$ + * \returns \f$ i \f$th generator \f$ G_i \f$ of SO3 + * + * The infinitesimal generators of SO3 + * are \f$ + * G_0 = \left( \begin{array}{ccc} + * 0& 0& 0& \\ + * 0& 0& -1& \\ + * 0& 1& 0& + * \end{array} \right), + * G_1 = \left( \begin{array}{ccc} + * 0& 0& 1& \\ + * 0& 0& 0& \\ + * -1& 0& 0& + * \end{array} \right), + * G_2 = \left( \begin{array}{ccc} + * 0& -1& 0& \\ + * 1& 0& 0& \\ + * 0& 0& 0& + * \end{array} \right). + * \f$ + * \see hat() + */ + inline static + const Transformation generator(int i) { + if (i<0 || i>2) { + throw SophusException("i is not in range [0,2]."); + } + Tangent e; + e.setZero(); + e[i] = static_cast(1); + return hat(e); + } + + /** + * \brief hat-operator + * + * \param omega 3-vector representation of Lie algebra element + * \returns 3x3-matrix representatin of Lie algebra element + * + * Formally, the hat-operator of SO3 is defined + * as \f$ \widehat{\cdot}: \mathbf{R}^3 \rightarrow \mathbf{R}^{3\times 3}, + * \quad \widehat{\omega} = \sum_{i=0}^2 G_i \omega_i \f$ + * with \f$ G_i \f$ being the ith infinitesial generator(). + * + * \see generator() + * \see vee() + */ + inline static + const Transformation hat(const Tangent & omega) { + Transformation Omega; + Omega << static_cast(0), -omega(2), omega(1) + , omega(2), static_cast(0), -omega(0) + , -omega(1), omega(0), static_cast(0); + return Omega; + } + + /** + * \brief Lie bracket + * + * \param omega1 3-vector representation of Lie algebra element + * \param omega2 3-vector representation of Lie algebra element + * \returns 3-vector representation of Lie algebra element + * + * It computes the bracket of SO3. To be more specific, it + * computes \f$ [\omega_1, \omega_2]_{so3} + * := [\widehat{\omega_1}, \widehat{\omega_2}]^\vee \f$ + * with \f$ [A,B] = AB-BA \f$ being the matrix + * commutator, \f$ \widehat{\cdot} \f$ the + * hat()-operator and \f$ (\cdot)^\vee \f$ the vee()-operator of SO3. + * + * For the Lie algebra so3, the Lie bracket is simply the + * cross product: \f$ [\omega_1, \omega_2]_{so3} + * = \omega_1 \times \omega_2 \f$. + * + * \see hat() + * \see vee() + */ + inline static + const Tangent lieBracket(const Tangent & omega1, + const Tangent & omega2) { + return omega1.cross(omega2); + } + + /** + * \brief Logarithmic map + * + * \param other element of the group SO3 + * \returns corresponding tangent space element + * (=rotation vector \f$ \omega \f$) + * + * Computes the logarithmic, the inverse of the group exponential. + * To be specific, this function computes \f$ \log({\cdot})^\vee \f$ + * with \f$ \vee(\cdot) \f$ being the matrix logarithm + * and \f$ \vee{\cdot} \f$ the vee()-operator of SO3. + * + * \see exp() + * \see logAndTheta() + * \see vee() + */ + inline static + const Tangent log(const SO3Group & other) { + Scalar theta; + return logAndTheta(other, &theta); + } + + /** + * \brief Logarithmic map and theta + * + * \param other element of the group SO3 + * \param[out] theta angle of rotation \f$ \theta = |\omega| \f$ + * \returns corresponding tangent space element + * (=rotation vector \f$ \omega \f$) + * + * \see log() for details + */ + inline static + const Tangent logAndTheta(const SO3Group & other, + Scalar * theta) { + const Scalar squared_n + = other.unit_quaternion().vec().squaredNorm(); + const Scalar n = std::sqrt(squared_n); + const Scalar w = other.unit_quaternion().w(); + + Scalar two_atan_nbyw_by_n; + + // Atan-based log thanks to + // + // C. Hertzberg et al.: + // "Integrating Generic Sensor Fusion Algorithms with Sound State + // Representation through Encapsulation of Manifolds" + // Information Fusion, 2011 + + if (n < SophusConstants::epsilon()) { + // If quaternion is normalized and n=0, then w should be 1; + // w=0 should never happen here! + if (std::abs(w) < SophusConstants::epsilon()) { + throw SophusException("Quaternion is not normalized!"); + } + const Scalar squared_w = w*w; + two_atan_nbyw_by_n = static_cast(2) / w + - static_cast(2)*(squared_n)/(w*squared_w); + } else { + if (std::abs(w)::epsilon()) { + if (w > static_cast(0)) { + two_atan_nbyw_by_n = M_PI/n; + } else { + two_atan_nbyw_by_n = -M_PI/n; + } + }else{ + two_atan_nbyw_by_n = static_cast(2) * atan(n/w) / n; + } + } + + *theta = two_atan_nbyw_by_n*n; + + return two_atan_nbyw_by_n * other.unit_quaternion().vec(); + } + + /** + * \brief vee-operator + * + * \param Omega 3x3-matrix representation of Lie algebra element + * \pr Omega must be a skew-symmetric matrix + * \returns 3-vector representatin of Lie algebra element + * + * This is the inverse of the hat()-operator. + * + * \see hat() + */ + inline static + const Tangent vee(const Transformation & Omega) { + return static_cast(0.5) * Tangent(Omega(2,1) - Omega(1,2), + Omega(0,2) - Omega(2,0), + Omega(1,0) - Omega(0,1)); + } + +private: + // Mutator of unit_quaternion is private so users are hampered + // from setting non-unit quaternions. + EIGEN_STRONG_INLINE + QuaternionReference unit_quaternion_nonconst() { + return static_cast(this)->unit_quaternion_nonconst(); + } + +}; + +/** + * \brief SO3 default type - Constructors and default storage for SO3 Type + */ +template +class SO3Group : public SO3GroupBase > { + typedef SO3GroupBase > Base; +public: + /** \brief scalar type */ + typedef typename internal::traits > + ::Scalar Scalar; + /** \brief quaternion type */ + typedef typename internal::traits > + ::QuaternionType & QuaternionReference; + typedef const typename internal::traits > + ::QuaternionType & ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + // base is friend so unit_quaternion_nonconst can be accessed from base + friend class SO3GroupBase >; + + EIGEN_MAKE_ALIGNED_OPERATOR_NEW + + /** + * \brief Default constructor + * + * Initialize Quaternion to identity rotation. + */ + inline + SO3Group() + : unit_quaternion_(static_cast(1), static_cast(0), + static_cast(0), static_cast(0)) { + } + + /** + * \brief Copy constructor + */ + template inline + SO3Group(const SO3GroupBase & other) + : unit_quaternion_(other.unit_quaternion()) { + } + + /** + * \brief Constructor from rotation matrix + * + * \pre rotation matrix need to be orthogonal with determinant of 1 + */ + inline SO3Group(const Transformation & R) + : unit_quaternion_(R) { + } + + /** + * \brief Constructor from quaternion + * + * \pre quaternion must not be zero + */ + inline explicit + SO3Group(const Quaternion & quat) : unit_quaternion_(quat) { + Base::normalize(); + } + + /** + * \brief Constructor from Euler angles + * + * \param alpha1 rotation around x-axis + * \param alpha2 rotation around y-axis + * \param alpha3 rotation around z-axis + * + * Since rotations in 3D do not commute, the order of the individual rotations + * matter. Here, the following convention is used. We calculate a SO3 member + * corresponding to the rotation matrix \f$ R \f$ such + * that \f$ R=\exp\left(\begin{array}{c}\alpha_1\\ 0\\ 0\end{array}\right) + * \cdot \exp\left(\begin{array}{c}0\\ \alpha_2\\ 0\end{array}\right) + * \cdot \exp\left(\begin{array}{c}0\\ 0\\ \alpha_3\end{array}\right)\f$. + */ + inline + SO3Group(Scalar alpha1, Scalar alpha2, Scalar alpha3) { + const static Scalar zero = static_cast(0); + unit_quaternion_ + = ( SO3Group::exp(Tangent(alpha1, zero, zero)) + *SO3Group::exp(Tangent( zero, alpha2, zero)) + *SO3Group::exp(Tangent( zero, zero, alpha3)) ) + .unit_quaternion_; + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference unit_quaternion() const { + return unit_quaternion_; + } + +protected: + // Mutator of unit_quaternion is protected so users are hampered + // from setting non-unit quaternions. + EIGEN_STRONG_INLINE + QuaternionReference unit_quaternion_nonconst() { + return unit_quaternion_; + } + + Quaternion unit_quaternion_; +}; + +} // end namespace + + +namespace Eigen { +/** + * \brief Specialisation of Eigen::Map for SO3GroupBase + * + * Allows us to wrap SO3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::SO3GroupBase, _Options> > { + typedef Sophus::SO3GroupBase, _Options> > Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion reference type */ + typedef typename internal::traits::QuaternionType & + QuaternionReference; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + // base is friend so unit_quaternion_nonconst can be accessed from base + friend class Sophus::SO3GroupBase, _Options> >; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(Scalar* coeffs) : unit_quaternion_(coeffs) { + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + EIGEN_STRONG_INLINE + ConstQuaternionReference unit_quaternion() const { + return unit_quaternion_; + } + +protected: + // Mutator of unit_quaternion is protected so users are hampered + // from setting non-unit quaternions. + EIGEN_STRONG_INLINE + QuaternionReference unit_quaternion_nonconst() { + return unit_quaternion_; + } + + Map,_Options> unit_quaternion_; +}; + +/** + * \brief Specialisation of Eigen::Map for const SO3GroupBase + * + * Allows us to wrap SO3 Objects around POD array + * (e.g. external c style quaternion) + */ +template +class Map, _Options> + : public Sophus::SO3GroupBase< + Map, _Options> > { + typedef Sophus::SO3GroupBase, _Options> > + Base; + +public: + /** \brief scalar type */ + typedef typename internal::traits::Scalar Scalar; + /** \brief quaternion const reference type */ + typedef const typename internal::traits::QuaternionType & + ConstQuaternionReference; + + /** \brief degree of freedom of group */ + static const int DoF = Base::DoF; + /** \brief number of internal parameters used */ + static const int num_parameters = Base::num_parameters; + /** \brief group transformations are NxN matrices */ + static const int N = Base::N; + /** \brief group transfomation type */ + typedef typename Base::Transformation Transformation; + /** \brief point type */ + typedef typename Base::Point Point; + /** \brief tangent vector type */ + typedef typename Base::Tangent Tangent; + /** \brief adjoint transformation type */ + typedef typename Base::Adjoint Adjoint; + + EIGEN_INHERIT_ASSIGNMENT_EQUAL_OPERATOR(Map) + using Base::operator*=; + using Base::operator*; + + EIGEN_STRONG_INLINE + Map(const Scalar* coeffs) : unit_quaternion_(coeffs) { + } + + /** + * \brief Accessor of unit quaternion + * + * No direct write access is given to ensure the quaternion stays normalized. + */ + EIGEN_STRONG_INLINE + const ConstQuaternionReference unit_quaternion() const { + return unit_quaternion_; + } + +protected: + const Map,_Options> unit_quaternion_; +}; + +} + +#endif diff --git a/thirdparty/Sophus/sophus/sophus.hpp b/thirdparty/Sophus/sophus/sophus.hpp new file mode 100644 index 0000000..76e142e --- /dev/null +++ b/thirdparty/Sophus/sophus/sophus.hpp @@ -0,0 +1,77 @@ +// This file is part of Sophus. +// +// Copyright 2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#ifndef SOPHUS_HPP +#define SOPHUS_HPP + +#include + +// fix log1p not being found on Android in Eigen +#if defined( ANDROID ) +#include +namespace std { + using ::log1p; +} +#endif + +#include +#include + +namespace Sophus { +using namespace Eigen; + +template +struct SophusConstants { + EIGEN_ALWAYS_INLINE static + const Scalar epsilon() { + return static_cast(1e-10); + } + + EIGEN_ALWAYS_INLINE static + const Scalar pi() { + return static_cast(M_PI); + } +}; + +template<> +struct SophusConstants { + EIGEN_ALWAYS_INLINE static + float epsilon() { + return static_cast(1e-5); + } + + EIGEN_ALWAYS_INLINE static + float pi() { + return static_cast(M_PI); + } +}; + +class SophusException : public std::runtime_error { +public: + SophusException (const std::string& str) + : runtime_error("Sophus exception: " + str) { + } +}; + +} + +#endif diff --git a/thirdparty/Sophus/sophus/test_rxso3.cpp b/thirdparty/Sophus/sophus/test_rxso3.cpp new file mode 100644 index 0000000..46134d3 --- /dev/null +++ b/thirdparty/Sophus/sophus/test_rxso3.cpp @@ -0,0 +1,92 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include +#include + + +#include "rxso3.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef RxSO3Group RxSO3Type; + typedef typename RxSO3Group::Point Point; + typedef typename RxSO3Group::Tangent Tangent; + + vector rxso3_vec; + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0.2, 0.5, 0.0, 1.))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0.2, 0.5, -1.0, 1.1))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0., 0., 0., 1.1))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0., 0., 0.00001, 0.))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0., 0., 0.00001, 0.00001))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0., 0., 0.00001, 0))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(M_PI, 0, 0, 0.9))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0.2, 0.5, 0.0,0)) + *RxSO3Type::exp(Tangent(M_PI, 0, 0,0.0)) + *RxSO3Type::exp(Tangent(-0.2, -0.5, -0.0,0))); + rxso3_vec.push_back(RxSO3Type::exp(Tangent(0.3, 0.5, 0.1,0)) + *RxSO3Type::exp(Tangent(M_PI, 0, 0,0)) + *RxSO3Type::exp(Tangent(-0.3, -0.5, -0.1,0))); + + vector tangent_vec; + Tangent tmp; + tmp << 0,0,0,0; + tangent_vec.push_back(tmp); + tmp << 1,0,0,0; + tangent_vec.push_back(tmp); + tmp << 1,0,0,0.1; + tangent_vec.push_back(tmp); + tmp << 0,1,0,0.1; + tangent_vec.push_back(tmp); + tmp << 0,0,1,-0.1; + tangent_vec.push_back(tmp); + tmp << -1,1,0,-0.1; + tangent_vec.push_back(tmp); + tmp << 20,-1,0,2; + tangent_vec.push_back(tmp); + + vector point_vec; + point_vec.push_back(Point(1,2,4)); + + Tests tests; + tests.setGroupElements(rxso3_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); +} + +int main() { + cerr << "Test RxSO3" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/test_se2.cpp b/thirdparty/Sophus/sophus/test_se2.cpp new file mode 100644 index 0000000..1d9d293 --- /dev/null +++ b/thirdparty/Sophus/sophus/test_se2.cpp @@ -0,0 +1,90 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include +#include + +#include +#include "se2.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef SO2Group SO2Type; + typedef SE2Group SE2Type; + typedef typename SE2Group::Point Point; + typedef typename SE2Group::Tangent Tangent; + + vector se2_vec; + se2_vec.push_back(SE2Type(SO2Type(0.0),Point(0,0))); + se2_vec.push_back(SE2Type(SO2Type(0.2),Point(10,0))); + se2_vec.push_back(SE2Type(SO2Type(0.),Point(0,100))); + se2_vec.push_back(SE2Type(SO2Type(-1.),Point(20,-1))); + se2_vec.push_back(SE2Type(SO2Type(0.00001), + Point(-0.00000001,0.0000000001))); + se2_vec.push_back(SE2Type(SO2Type(0.2),Point(0,0)) + *SE2Type(SO2Type(M_PI),Point(0,0)) + *SE2Type(SO2Type(-0.2),Point(0,0))); + se2_vec.push_back(SE2Type(SO2Type(0.3),Point(2,0)) + *SE2Type(SO2Type(M_PI),Point(0,0)) + *SE2Type(SO2Type(-0.3),Point(0,6))); + + vector tangent_vec; + Tangent tmp; + tmp << 0,0,0; + tangent_vec.push_back(tmp); + tmp << 1,0,0; + tangent_vec.push_back(tmp); + tmp << 0,1,1; + tangent_vec.push_back(tmp); + tmp << -1,1,0; + tangent_vec.push_back(tmp); + tmp << 20,-1,-1; + tangent_vec.push_back(tmp); + tmp << 30,5,20; + tangent_vec.push_back(tmp); + + vector point_vec; + point_vec.push_back(Point(1,2)); + + Tests tests; + tests.setGroupElements(se2_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); +} + +int main() { + cerr << "Test SE2" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/test_se3.cpp b/thirdparty/Sophus/sophus/test_se3.cpp new file mode 100644 index 0000000..4d9313b --- /dev/null +++ b/thirdparty/Sophus/sophus/test_se3.cpp @@ -0,0 +1,105 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include +#include + +#include "se3.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef SO3Group SO3Type; + typedef SE3Group SE3Type; + typedef typename SE3Group::Point Point; + typedef typename SE3Group::Tangent Tangent; + + vector se3_vec; + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0.2, 0.5, 0.0)), + Point(0,0,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0.2, 0.5, -1.0)), + Point(10,0,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0., 0., 0.)), + Point(0,100,5))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0., 0., 0.00001)), + Point(0,0,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0., 0., 0.00001)), + Point(0,-0.00000001,0.0000000001))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0., 0., 0.00001)), + Point(0.01,0,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(M_PI, 0, 0)), + Point(4,-5,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0.2, 0.5, 0.0)), + Point(0,0,0)) + *SE3Type(SO3Type::exp(Point(M_PI, 0, 0)), + Point(0,0,0)) + *SE3Type(SO3Type::exp(Point(-0.2, -0.5, -0.0)), + Point(0,0,0))); + se3_vec.push_back(SE3Type(SO3Type::exp(Point(0.3, 0.5, 0.1)), + Point(2,0,-7)) + *SE3Type(SO3Type::exp(Point(M_PI, 0, 0)), + Point(0,0,0)) + *SE3Type(SO3Type::exp(Point(-0.3, -0.5, -0.1)), + Point(0,6,0))); + vector tangent_vec; + Tangent tmp; + tmp << 0,0,0,0,0,0; + tangent_vec.push_back(tmp); + tmp << 1,0,0,0,0,0; + tangent_vec.push_back(tmp); + tmp << 0,1,0,1,0,0; + tangent_vec.push_back(tmp); + tmp << 0,-5,10,0,0,0; + tangent_vec.push_back(tmp); + tmp << -1,1,0,0,0,1; + tangent_vec.push_back(tmp); + tmp << 20,-1,0,-1,1,0; + tangent_vec.push_back(tmp); + tmp << 30,5,-1,20,-1,0; + tangent_vec.push_back(tmp); + + vector point_vec; + point_vec.push_back(Point(1,2,4)); + + Tests tests; + tests.setGroupElements(se3_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); + cerr << "passed." << endl << endl; +} + +int main() { + cerr << "Test SE3" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/test_sim3.cpp b/thirdparty/Sophus/sophus/test_sim3.cpp new file mode 100644 index 0000000..97c2c8c --- /dev/null +++ b/thirdparty/Sophus/sophus/test_sim3.cpp @@ -0,0 +1,109 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include +#include + +#include + +#include "sim3.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef Sim3Group Sim3Type; + typedef RxSO3Group RxSO3Type; + typedef typename Sim3Group::Point Point; + typedef typename Sim3Group::Tangent Tangent; + typedef Matrix Vector4Type; + + vector sim3_vec; + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0.2, 0.5, 0.0,1.)), + Point(0,0,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0.2, 0.5, -1.0,1.1)), + Point(10,0,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0., 0., 0.,1.1)), + Point(0,10,5))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0., 0., 0.00001, 0.)), + Point(0,0,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp( + Vector4Type(0., 0., 0.00001, 0.0000001)), + Point(1,-1.00000001,2.0000000001))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0., 0., 0.00001, 0)), + Point(0.01,0,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(M_PI, 0, 0,0.9)), + Point(4,-5,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0.2, 0.5, 0.0,0)), + Point(0,0,0)) + *Sim3Type(RxSO3Type::exp(Vector4Type(M_PI, 0, 0,0)), + Point(0,0,0)) + *Sim3Type(RxSO3Type::exp(Vector4Type(-0.2, -0.5, -0.0,0)), + Point(0,0,0))); + sim3_vec.push_back(Sim3Type(RxSO3Type::exp(Vector4Type(0.3, 0.5, 0.1,0)), + Point(2,0,-7)) + *Sim3Type(RxSO3Type::exp(Vector4Type(M_PI, 0, 0,0)), + Point(0,0,0)) + *Sim3Type(RxSO3Type::exp(Vector4Type(-0.3, -0.5, -0.1,0)), + Point(0,6,0))); + vector tangent_vec; + Tangent tmp; + tmp << 0,0,0,0,0,0,0; + tangent_vec.push_back(tmp); + tmp << 1,0,0,0,0,0,0; + tangent_vec.push_back(tmp); + tmp << 0,1,0,1,0,0,0.1; + tangent_vec.push_back(tmp); + tmp << 0,0,1,0,1,0,0.1; + tangent_vec.push_back(tmp); + tmp << -1,1,0,0,0,1,-0.1; + tangent_vec.push_back(tmp); + tmp << 20,-1,0,-1,1,0,-0.1; + tangent_vec.push_back(tmp); + tmp << 30,5,-1,20,-1,0,1.5; + tangent_vec.push_back(tmp); + + + vector point_vec; + point_vec.push_back(Point(1,2,4)); + + Tests tests; + tests.setGroupElements(sim3_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); +} + +int main() { + cerr << "Test Sim3" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/test_so2.cpp b/thirdparty/Sophus/sophus/test_so2.cpp new file mode 100644 index 0000000..1685b2b --- /dev/null +++ b/thirdparty/Sophus/sophus/test_so2.cpp @@ -0,0 +1,91 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + + +#include +#include + +#include "so2.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef SO2Group SO2Type; + typedef typename SO2Group::Point Point; + typedef typename SO2Group::Tangent Tangent; + + vector so2_vec; + so2_vec.push_back(SO2Type::exp(0.0)); + so2_vec.push_back(SO2Type::exp(0.2)); + so2_vec.push_back(SO2Type::exp(10.)); + so2_vec.push_back(SO2Type::exp(0.00001)); + so2_vec.push_back(SO2Type::exp(M_PI)); + so2_vec.push_back(SO2Type::exp(0.2) + *SO2Type::exp(M_PI) + *SO2Type::exp(-0.2)); + so2_vec.push_back(SO2Type::exp(-0.3) + *SO2Type::exp(M_PI) + *SO2Type::exp(0.3)); + + vector tangent_vec; + tangent_vec.push_back(Tangent(0)); + tangent_vec.push_back(Tangent(1)); + tangent_vec.push_back(Tangent(M_PI_2)); + tangent_vec.push_back(Tangent(-1)); + tangent_vec.push_back(Tangent(20)); + tangent_vec.push_back(Tangent(M_PI_2+0.0001)); + + vector point_vec; + point_vec.push_back(Point(1,2)); + + Tests tests; + tests.setGroupElements(so2_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); + + cerr << "Exception test: "; + try { + SO2Type so2(0., 0.); + } catch(SophusException & e) { + cerr << "passed." << endl << endl; + return; + } + cerr << "failed!" << endl << endl; + exit(-1); +} + +int main() { + cerr << "Test SO2" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/test_so3.cpp b/thirdparty/Sophus/sophus/test_so3.cpp new file mode 100644 index 0000000..e961e1c --- /dev/null +++ b/thirdparty/Sophus/sophus/test_so3.cpp @@ -0,0 +1,84 @@ +// This file is part of Sophus. +// +// Copyright 2012-2013 Hauke Strasdat +// +// Permission is hereby granted, free of charge, to any person obtaining a copy +// of this software and associated documentation files (the "Software"), to +// deal in the Software without restriction, including without limitation the +// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or +// sell copies of the Software, and to permit persons to whom the Software is +// furnished to do so, subject to the following conditions: +// +// The above copyright notice and this permission notice shall be included in +// all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS +// IN THE SOFTWARE. + +#include +#include + +#include "so3.hpp" +#include "tests.hpp" + +using namespace Sophus; +using namespace std; + +template +void tests() { + + typedef SO3Group SO3Type; + typedef typename SO3Group::Point Point; + typedef typename SO3Group::Tangent Tangent; + + vector so3_vec; + + so3_vec.push_back(SO3Type(Quaternion(0.1e-11, 0., 1., 0.))); + so3_vec.push_back(SO3Type(Quaternion(-1,0.00001,0.0,0.0))); + so3_vec.push_back(SO3Type::exp(Point(0.2, 0.5, 0.0))); + so3_vec.push_back(SO3Type::exp(Point(0.2, 0.5, -1.0))); + so3_vec.push_back(SO3Type::exp(Point(0., 0., 0.))); + so3_vec.push_back(SO3Type::exp(Point(0., 0., 0.00001))); + so3_vec.push_back(SO3Type::exp(Point(M_PI, 0, 0))); + so3_vec.push_back(SO3Type::exp(Point(0.2, 0.5, 0.0)) + *SO3Type::exp(Point(M_PI, 0, 0)) + *SO3Type::exp(Point(-0.2, -0.5, -0.0))); + so3_vec.push_back(SO3Type::exp(Point(0.3, 0.5, 0.1)) + *SO3Type::exp(Point(M_PI, 0, 0)) + *SO3Type::exp(Point(-0.3, -0.5, -0.1))); + + vector tangent_vec; + tangent_vec.push_back(Tangent(0,0,0)); + tangent_vec.push_back(Tangent(1,0,0)); + tangent_vec.push_back(Tangent(0,1,0)); + tangent_vec.push_back(Tangent(M_PI_2,M_PI_2,0.0)); + tangent_vec.push_back(Tangent(-1,1,0)); + tangent_vec.push_back(Tangent(20,-1,0)); + tangent_vec.push_back(Tangent(30,5,-1)); + + vector point_vec; + point_vec.push_back(Point(1,2,4)); + + Tests tests; + tests.setGroupElements(so3_vec); + tests.setTangentVectors(tangent_vec); + tests.setPoints(point_vec); + + tests.runAllTests(); +} + +int main() { + cerr << "Test SO3" << endl << endl; + + cerr << "Double tests: " << endl; + tests(); + + cerr << "Float tests: " << endl; + tests(); + return 0; +} diff --git a/thirdparty/Sophus/sophus/tests.hpp b/thirdparty/Sophus/sophus/tests.hpp new file mode 100644 index 0000000..0ec3c4a --- /dev/null +++ b/thirdparty/Sophus/sophus/tests.hpp @@ -0,0 +1,264 @@ +#ifndef SOPUHS_TESTS_HPP +#define SOPUHS_TESTS_HPP + +#include +#include + +#include "sophus.hpp" + +namespace Sophus { + +using namespace std; +using namespace Eigen; + +template +class Tests { + +public: + typedef typename LieGroup::Scalar Scalar; + typedef typename LieGroup::Transformation Transformation; + typedef typename LieGroup::Tangent Tangent; + typedef typename LieGroup::Point Point; + typedef typename LieGroup::Adjoint Adjoint; + static const int N = LieGroup::N; + static const int DoF = LieGroup::DoF; + + const Scalar SMALL_EPS; + + Tests() : SMALL_EPS(SophusConstants::epsilon()) { + } + + void setGroupElements(const vector & group_vec) { + group_vec_ = group_vec; + } + + void setTangentVectors(const vector & tangent_vec) { + tangent_vec_ = tangent_vec; + } + + void setPoints(const vector & point_vec) { + point_vec_ = point_vec; + } + + bool adjointTest() { + bool passed = true; + for (size_t i=0; i20.*SMALL_EPS) { + cerr << "Adjoint" << endl; + cerr << "Test case: " << i << "," << j <SMALL_EPS) { + cerr << "G - exp(log(G))" << endl; + cerr << "Test case: " << i << endl; + cerr << DiffT <10.*SMALL_EPS) { + cerr << "expmap(hat(x)) - exp(x)" << endl; + cerr << "Test case: " << i << endl; + cerr << exp_x <SMALL_EPS) { + cerr << "Transform vector" << endl; + cerr << "Test case: " << i << endl; + cerr << (res1-res2) <SMALL_EPS) { + cerr << "Lie Bracket Test" << endl; + cerr << "Test case: " << i << ", " < fastmul_res(fastmul_res_raw); + Eigen::Map group_j_constmap(group_vec_[j].data()); + fastmul_res = group_vec_[i]; + fastmul_res.fastMultiply(group_j_constmap); + Transformation diff = mul_resmat-fastmul_res.matrix(); + Scalar nrm = diff.norm(); + if (isnan(nrm) || nrm>SMALL_EPS) { + cerr << "Map & Multiply" << endl; + cerr << "Test case: " << i << "," << j << endl; + cerr << diff <SMALL_EPS) { + cerr << "Hat-vee Test" << endl; + cerr << "Test case: " << i << endl; + cerr << resDiff << endl; + cerr << endl; + passed = false; + } + } + return passed; + } + + + + void runAllTests() { + bool passed = adjointTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = expLogTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = expMapTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = groupActionTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = lieBracketTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = mapAndMultTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + passed = veeHatTest(); + if (!passed) { + cerr << "failed!" << endl << endl; + exit(-1); + } + cerr << "passed." << endl << endl; + } + +private: + Matrix map(const Matrix & T, + const Matrix & p) { + return T.template topLeftCorner()*p + + T.template topRightCorner(); + } + + Matrix map(const Matrix & T, + const Matrix & p) { + return T*p; + } + + Scalar norm(const Scalar & v) { + return std::abs(v); + } + + Scalar norm(const Matrix & T) { + return T.norm(); + } + + std::vector group_vec_; + std::vector tangent_vec_; + std::vector point_vec_; +}; +} +#endif // TESTS_HPP diff --git a/thirdparty/libzip-1.1.1.tar.gz b/thirdparty/libzip-1.1.1.tar.gz new file mode 100755 index 0000000..e604128 Binary files /dev/null and b/thirdparty/libzip-1.1.1.tar.gz differ diff --git a/thirdparty/sse2neon/SSE2NEON.h b/thirdparty/sse2neon/SSE2NEON.h new file mode 100644 index 0000000..30a4464 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON.h @@ -0,0 +1,1497 @@ +#ifndef SSE2NEON_H +#define SSE2NEON_H + +// This header file provides a simple API translation layer +// between SSE intrinsics to their corresponding ARM NEON versions +// +// This header file does not (yet) translate *all* of the SSE intrinsics. +// Since this is in support of a specific porting effort, I have only +// included the intrinsics I needed to get my port to work. +// +// Questions/Comments/Feedback send to: jratcliffscarab@gmail.com +// +// If you want to improve or add to this project, send me an +// email and I will probably approve your access to the depot. +// +// Project is located here: +// +// https://github.com/jratcliff63367/sse2neon +// +// Show your appreciation for open source by sending me a bitcoin tip to the following +// address. +// +// TipJar: 1PzgWDSyq4pmdAXRH8SPUtta4SWGrt4B1p : +// https://blockchain.info/address/1PzgWDSyq4pmdAXRH8SPUtta4SWGrt4B1p +// +// +// Contributors to this project are: +// +// John W. Ratcliff : jratcliffscarab@gmail.com +// Brandon Rowlett : browlett@nvidia.com +// Ken Fast : kfast@gdeb.com +// Eric van Beurden : evanbeurden@nvidia.com +// Alexander Potylitsin : apotylitsin@nvidia.com +// +// +// ********************************************************************************************************************* +// apoty: March 17, 2017 +// Current version was changed in most to fix issues and potential issues. +// All unit tests were rewritten as a part of forge lib project to cover all implemented functions. +// ********************************************************************************************************************* +// Release notes for January 20, 2017 version: +// +// The unit tests have been refactored. They no longer assert on an error, instead they return a pass/fail condition +// The unit-tests now test 10,000 random float and int values against each intrinsic. +// +// SSE2NEON now supports 95 SSE intrinsics. 39 of them have formal unit tests which have been implemented and +// fully tested on NEON/ARM. The remaining 56 still need unit tests implemented. +// +// A struct is now defined in this header file called 'SIMDVec' which can be used by applications which +// attempt to access the contents of an _m128 struct directly. It is important to note that accessing the __m128 +// struct directly is bad coding practice by Microsoft: @see: https://msdn.microsoft.com/en-us/library/ayeb3ayc.aspx +// +// However, some legacy source code may try to access the contents of an __m128 struct directly so the developer +// can use the SIMDVec as an alias for it. Any casting must be done manually by the developer, as you cannot +// cast or otherwise alias the base NEON data type for intrinsic operations. +// +// A bug was found with the _mm_shuffle_ps intrinsic. If the shuffle permutation was not one of the ones with +// a custom/unique implementation causing it to fall through to the default shuffle implementation it was failing +// to return the correct value. This is now fixed. +// +// A bug was found with the _mm_cvtps_epi32 intrinsic. This converts floating point values to integers. +// It was not honoring the correct rounding mode. In SSE the default rounding mode when converting from float to int +// is to use 'round to even' otherwise known as 'bankers rounding'. ARMv7 did not support this feature but ARMv8 does. +// As it stands today, this header file assumes ARMv8. If you are trying to target really old ARM devices, you may get +// a build error. +// +// Support for a number of new intrinsics was added, however, none of them yet have unit-tests to 100% confirm they are +// producing the correct results on NEON. These unit tests will be added as soon as possible. +// +// Here is the list of new instrinsics which have been added: +// +// _mm_cvtss_f32 : extracts the lower order floating point value from the parameter +// _mm_add_ss : adds the scalar single - precision floating point values of a and b +// _mm_div_ps : Divides the four single - precision, floating - point values of a and b. +// _mm_div_ss : Divides the scalar single - precision floating point value of a by b. +// _mm_sqrt_ss : Computes the approximation of the square root of the scalar single - precision floating point value of in. +// _mm_rsqrt_ps : Computes the approximations of the reciprocal square roots of the four single - precision floating point values of in. +// _mm_comilt_ss : Compares the lower single - precision floating point scalar values of a and b using a less than operation +// _mm_comigt_ss : Compares the lower single - precision floating point scalar values of a and b using a greater than operation. +// _mm_comile_ss : Compares the lower single - precision floating point scalar values of a and b using a less than or equal operation. +// _mm_comige_ss : Compares the lower single - precision floating point scalar values of a and b using a greater than or equal operation. +// _mm_comieq_ss : Compares the lower single - precision floating point scalar values of a and b using an equality operation. +// _mm_comineq_s : Compares the lower single - precision floating point scalar values of a and b using an inequality operation +// _mm_unpackhi_epi8 : Interleaves the upper 8 signed or unsigned 8 - bit integers in a with the upper 8 signed or unsigned 8 - bit integers in b. +// _mm_unpackhi_epi16: Interleaves the upper 4 signed or unsigned 16 - bit integers in a with the upper 4 signed or unsigned 16 - bit integers in b. +// +// ********************************************************************************************************************* +/* +** The MIT license: +** +** Permission is hereby granted, free of charge, to any person obtaining a copy +** of this software and associated documentation files (the "Software"), to deal +** in the Software without restriction, including without limitation the rights +** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +** copies of the Software, and to permit persons to whom the Software is furnished +** to do so, subject to the following conditions: +** +** The above copyright notice and this permission notice shall be included in all +** copies or substantial portions of the Software. + +** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +** IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +** FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +** AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +** WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +** CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#define ENABLE_CPP_VERSION 0 + +#if defined(__GNUC__) || defined(__clang__) +# pragma push_macro("FORCE_INLINE") +# pragma push_macro("ALIGN_STRUCT") +# define FORCE_INLINE static inline __attribute__((always_inline)) +# define ALIGN_STRUCT(x) __attribute__((aligned(x))) +#else +# error "Macro name collisions may happens with unknown compiler" +# define FORCE_INLINE static inline +# define ALIGN_STRUCT(x) __declspec(align(x)) +#endif + +#include +#include "arm_neon.h" + + +/*******************************************************/ +/* MACRO for shuffle parameter for _mm_shuffle_ps(). */ +/* Argument fp3 is a digit[0123] that represents the fp*/ +/* from argument "b" of mm_shuffle_ps that will be */ +/* placed in fp3 of result. fp2 is the same for fp2 in */ +/* result. fp1 is a digit[0123] that represents the fp */ +/* from argument "a" of mm_shuffle_ps that will be */ +/* places in fp1 of result. fp0 is the same for fp0 of */ +/* result */ +/*******************************************************/ +#define _MM_SHUFFLE(fp3,fp2,fp1,fp0) \ + (((fp3) << 6) | ((fp2) << 4) | ((fp1) << 2) | ((fp0))) + +/* indicate immediate constant argument in a given range */ +#define __constrange(a,b) \ + const + +typedef float32x4_t __m128; +typedef int32x4_t __m128i; + + +// ****************************************** +// type-safe casting between types +// ****************************************** + +#define vreinterpretq_m128_f16(x) \ + vreinterpretq_f32_f16(x) + +#define vreinterpretq_m128_f32(x) \ + (x) + +#define vreinterpretq_m128_f64(x) \ + vreinterpretq_f32_f64(x) + + +#define vreinterpretq_m128_u8(x) \ + vreinterpretq_f32_u8(x) + +#define vreinterpretq_m128_u16(x) \ + vreinterpretq_f32_u16(x) + +#define vreinterpretq_m128_u32(x) \ + vreinterpretq_f32_u32(x) + +#define vreinterpretq_m128_u64(x) \ + vreinterpretq_f32_u64(x) + + +#define vreinterpretq_m128_s8(x) \ + vreinterpretq_f32_s8(x) + +#define vreinterpretq_m128_s16(x) \ + vreinterpretq_f32_s16(x) + +#define vreinterpretq_m128_s32(x) \ + vreinterpretq_f32_s32(x) + +#define vreinterpretq_m128_s64(x) \ + vreinterpretq_f32_s64(x) + + +#define vreinterpretq_f16_m128(x) \ + vreinterpretq_f16_f32(x) + +#define vreinterpretq_f32_m128(x) \ + (x) + +#define vreinterpretq_f64_m128(x) \ + vreinterpretq_f64_f32(x) + + +#define vreinterpretq_u8_m128(x) \ + vreinterpretq_u8_f32(x) + +#define vreinterpretq_u16_m128(x) \ + vreinterpretq_u16_f32(x) + +#define vreinterpretq_u32_m128(x) \ + vreinterpretq_u32_f32(x) + +#define vreinterpretq_u64_m128(x) \ + vreinterpretq_u64_f32(x) + + +#define vreinterpretq_s8_m128(x) \ + vreinterpretq_s8_f32(x) + +#define vreinterpretq_s16_m128(x) \ + vreinterpretq_s16_f32(x) + +#define vreinterpretq_s32_m128(x) \ + vreinterpretq_s32_f32(x) + +#define vreinterpretq_s64_m128(x) \ + vreinterpretq_s64_f32(x) + + +#define vreinterpretq_m128i_s8(x) \ + vreinterpretq_s32_s8(x) + +#define vreinterpretq_m128i_s16(x) \ + vreinterpretq_s32_s16(x) + +#define vreinterpretq_m128i_s32(x) \ + (x) + +#define vreinterpretq_m128i_s64(x) \ + vreinterpretq_s32_s64(x) + + +#define vreinterpretq_m128i_u8(x) \ + vreinterpretq_s32_u8(x) + +#define vreinterpretq_m128i_u16(x) \ + vreinterpretq_s32_u16(x) + +#define vreinterpretq_m128i_u32(x) \ + vreinterpretq_s32_u32(x) + +#define vreinterpretq_m128i_u64(x) \ + vreinterpretq_s32_u64(x) + + +#define vreinterpretq_s8_m128i(x) \ + vreinterpretq_s8_s32(x) + +#define vreinterpretq_s16_m128i(x) \ + vreinterpretq_s16_s32(x) + +#define vreinterpretq_s32_m128i(x) \ + (x) + +#define vreinterpretq_s64_m128i(x) \ + vreinterpretq_s64_s32(x) + + +#define vreinterpretq_u8_m128i(x) \ + vreinterpretq_u8_s32(x) + +#define vreinterpretq_u16_m128i(x) \ + vreinterpretq_u16_s32(x) + +#define vreinterpretq_u32_m128i(x) \ + vreinterpretq_u32_s32(x) + +#define vreinterpretq_u64_m128i(x) \ + vreinterpretq_u64_s32(x) + + +// union intended to allow direct access to an __m128 variable using the names that the MSVC +// compiler provides. This union should really only be used when trying to access the members +// of the vector as integer values. GCC/clang allow native access to the float members through +// a simple array access operator (in C since 4.6, in C++ since 4.8). +// +// Ideally direct accesses to SIMD vectors should not be used since it can cause a performance +// hit. If it really is needed however, the original __m128 variable can be aliased with a +// pointer to this union and used to access individual components. The use of this union should +// be hidden behind a macro that is used throughout the codebase to access the members instead +// of always declaring this type of variable. +typedef union ALIGN_STRUCT(16) SIMDVec +{ + float m128_f32[4]; // as floats - do not to use this. Added for convenience. + int8_t m128_i8[16]; // as signed 8-bit integers. + int16_t m128_i16[8]; // as signed 16-bit integers. + int32_t m128_i32[4]; // as signed 32-bit integers. + int64_t m128_i64[2]; // as signed 64-bit integers. + uint8_t m128_u8[16]; // as unsigned 8-bit integers. + uint16_t m128_u16[8]; // as unsigned 16-bit integers. + uint32_t m128_u32[4]; // as unsigned 32-bit integers. + uint64_t m128_u64[2]; // as unsigned 64-bit integers. +} SIMDVec; + + +// ****************************************** +// Set/get methods +// ****************************************** + +// extracts the lower order floating point value from the parameter : https://msdn.microsoft.com/en-us/library/bb514059%28v=vs.120%29.aspx?f=255&MSPPError=-2147217396 +FORCE_INLINE float _mm_cvtss_f32(__m128 a) +{ + return vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); +} + +// Sets the 128-bit value to zero https://msdn.microsoft.com/en-us/library/vstudio/ys7dw0kh(v=vs.100).aspx +FORCE_INLINE __m128i _mm_setzero_si128() +{ + return vreinterpretq_m128i_s32(vdupq_n_s32(0)); +} + +// Clears the four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/vstudio/tk1t2tbz(v=vs.100).aspx +FORCE_INLINE __m128 _mm_setzero_ps(void) +{ + return vreinterpretq_m128_f32(vdupq_n_f32(0)); +} + +// Sets the four single-precision, floating-point values to w. https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx +FORCE_INLINE __m128 _mm_set1_ps(float _w) +{ + return vreinterpretq_m128_f32(vdupq_n_f32(_w)); +} + +// Sets the four single-precision, floating-point values to w. https://msdn.microsoft.com/en-us/library/vstudio/2x1se8ha(v=vs.100).aspx +FORCE_INLINE __m128 _mm_set_ps1(float _w) +{ + return vreinterpretq_m128_f32(vdupq_n_f32(_w)); +} + +// Sets the four single-precision, floating-point values to the four inputs. https://msdn.microsoft.com/en-us/library/vstudio/afh0zf75(v=vs.100).aspx +FORCE_INLINE __m128 _mm_set_ps(float w, float z, float y, float x) +{ + float __attribute__((aligned(16))) data[4] = { x, y, z, w }; + return vreinterpretq_m128_f32(vld1q_f32(data)); +} + +// Sets the four single-precision, floating-point values to the four inputs in reverse order. https://msdn.microsoft.com/en-us/library/vstudio/d2172ct3(v=vs.100).aspx +FORCE_INLINE __m128 _mm_setr_ps(float w, float z , float y , float x ) +{ + float __attribute__ ((aligned (16))) data[4] = { w, z, y, x }; + return vreinterpretq_m128_f32(vld1q_f32(data)); +} + +// Sets the 4 signed 32-bit integer values to i. https://msdn.microsoft.com/en-us/library/vstudio/h4xscxat(v=vs.100).aspx +FORCE_INLINE __m128i _mm_set1_epi32(int _i) +{ + return vreinterpretq_m128i_s32(vdupq_n_s32(_i)); +} + +// Sets the 4 signed 32-bit integer values. https://msdn.microsoft.com/en-us/library/vstudio/019beekt(v=vs.100).aspx +FORCE_INLINE __m128i _mm_set_epi32(int i3, int i2, int i1, int i0) +{ + int32_t __attribute__((aligned(16))) data[4] = { i0, i1, i2, i3 }; + return vreinterpretq_m128i_s32(vld1q_s32(data)); +} + +// Stores four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/vstudio/s3h4ay6y(v=vs.100).aspx +FORCE_INLINE void _mm_store_ps(float *p, __m128 a) +{ + vst1q_f32(p, vreinterpretq_f32_m128(a)); +} + +// Stores four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/44e30x22(v=vs.100).aspx +FORCE_INLINE void _mm_storeu_ps(float *p, __m128 a) +{ + vst1q_f32(p, vreinterpretq_f32_m128(a)); +} + +// Stores four 32-bit integer values as (as a __m128i value) at the address p. https://msdn.microsoft.com/en-us/library/vstudio/edk11s13(v=vs.100).aspx +FORCE_INLINE void _mm_store_si128(__m128i *p, __m128i a) +{ + vst1q_s32((int32_t*) p, vreinterpretq_s32_m128i(a)); +} + +// Stores the lower single - precision, floating - point value. https://msdn.microsoft.com/en-us/library/tzz10fbx(v=vs.100).aspx +FORCE_INLINE void _mm_store_ss(float *p, __m128 a) +{ + vst1q_lane_f32(p, vreinterpretq_f32_m128(a), 0); +} + +// Reads the lower 64 bits of b and stores them into the lower 64 bits of a. https://msdn.microsoft.com/en-us/library/hhwf428f%28v=vs.90%29.aspx +FORCE_INLINE void _mm_storel_epi64(__m128i* a, __m128i b) +{ + uint64x1_t hi = vget_high_u64(vreinterpretq_u64_m128i(*a)); + uint64x1_t lo = vget_low_u64(vreinterpretq_u64_m128i(b)); + *a = vreinterpretq_m128i_u64(vcombine_u64(lo, hi)); +} + +// Loads a single single-precision, floating-point value, copying it into all four words https://msdn.microsoft.com/en-us/library/vstudio/5cdkf716(v=vs.100).aspx +FORCE_INLINE __m128 _mm_load1_ps(const float * p) +{ + return vreinterpretq_m128_f32(vld1q_dup_f32(p)); +} + +// Loads four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/vstudio/zzd50xxt(v=vs.100).aspx +FORCE_INLINE __m128 _mm_load_ps(const float * p) +{ + return vreinterpretq_m128_f32(vld1q_f32(p)); +} + +// Loads four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/x1b16s7z%28v=vs.90%29.aspx +FORCE_INLINE __m128 _mm_loadu_ps(const float * p) +{ + // for neon, alignment doesn't matter, so _mm_load_ps and _mm_loadu_ps are equivalent for neon + return vreinterpretq_m128_f32(vld1q_f32(p)); +} + +// Loads an single - precision, floating - point value into the low word and clears the upper three words. https://msdn.microsoft.com/en-us/library/548bb9h4%28v=vs.90%29.aspx +FORCE_INLINE __m128 _mm_load_ss(const float * p) +{ + return vreinterpretq_m128_f32(vsetq_lane_f32(*p, vdupq_n_f32(0), 0)); +} + + +// ****************************************** +// Logic/Binary operations +// ****************************************** + +// Compares for inequality. https://msdn.microsoft.com/en-us/library/sf44thbx(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmpneq_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32( vmvnq_u32( vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)) ) ); +} + +// Computes the bitwise AND-NOT of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/68h7wd02(v=vs.100).aspx +FORCE_INLINE __m128 _mm_andnot_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_s32( vbicq_s32(vreinterpretq_s32_m128(b), vreinterpretq_s32_m128(a)) ); // *NOTE* argument swap +} + +// Computes the bitwise AND of the 128-bit value in b and the bitwise NOT of the 128-bit value in a. https://msdn.microsoft.com/en-us/library/vstudio/1beaceh8(v=vs.100).aspx +FORCE_INLINE __m128i _mm_andnot_si128(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32( vbicq_s32(vreinterpretq_s32_m128i(b), vreinterpretq_s32_m128i(a)) ); // *NOTE* argument swap +} + +// Computes the bitwise AND of the 128-bit value in a and the 128-bit value in b. https://msdn.microsoft.com/en-us/library/vstudio/6d1txsa8(v=vs.100).aspx +FORCE_INLINE __m128i _mm_and_si128(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32( vandq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)) ); +} + +// Computes the bitwise AND of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/73ck1xc5(v=vs.100).aspx +FORCE_INLINE __m128 _mm_and_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_s32( vandq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)) ); +} + +// Computes the bitwise OR of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/7ctdsyy0(v=vs.100).aspx +FORCE_INLINE __m128 _mm_or_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_s32( vorrq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)) ); +} + +// Computes bitwise EXOR (exclusive-or) of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/ss6k3wk8(v=vs.100).aspx +FORCE_INLINE __m128 _mm_xor_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_s32( veorq_s32(vreinterpretq_s32_m128(a), vreinterpretq_s32_m128(b)) ); +} + +// Computes the bitwise OR of the 128-bit value in a and the 128-bit value in b. https://msdn.microsoft.com/en-us/library/vstudio/ew8ty0db(v=vs.100).aspx +FORCE_INLINE __m128i _mm_or_si128(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32( vorrq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)) ); +} + +// Computes the bitwise XOR of the 128-bit value in a and the 128-bit value in b. https://msdn.microsoft.com/en-us/library/fzt08www(v=vs.100).aspx +FORCE_INLINE __m128i _mm_xor_si128(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32( veorq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b)) ); +} + +// NEON does not provide this method +// Creates a 4-bit mask from the most significant bits of the four single-precision, floating-point values. https://msdn.microsoft.com/en-us/library/vstudio/4490ys29(v=vs.100).aspx +FORCE_INLINE int _mm_movemask_ps(__m128 a) +{ +#if ENABLE_CPP_VERSION // I am not yet convinced that the NEON version is faster than the C version of this + uint32x4_t &ia = *(uint32x4_t *)&a; + return (ia[0] >> 31) | ((ia[1] >> 30) & 2) | ((ia[2] >> 29) & 4) | ((ia[3] >> 28) & 8); +#else + static const uint32x4_t movemask = { 1, 2, 4, 8 }; + static const uint32x4_t highbit = { 0x80000000, 0x80000000, 0x80000000, 0x80000000 }; + uint32x4_t t0 = vreinterpretq_u32_m128(a); + uint32x4_t t1 = vtstq_u32(t0, highbit); + uint32x4_t t2 = vandq_u32(t1, movemask); + uint32x2_t t3 = vorr_u32(vget_low_u32(t2), vget_high_u32(t2)); + return vget_lane_u32(t3, 0) | vget_lane_u32(t3, 1); +#endif +} + +// Takes the upper 64 bits of a and places it in the low end of the result +// Takes the lower 64 bits of b and places it into the high end of the result. +FORCE_INLINE __m128 _mm_shuffle_ps_1032(__m128 a, __m128 b) +{ + float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); + float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(a32, b10)); +} + +// takes the lower two 32-bit values from a and swaps them and places in high end of result +// takes the higher two 32 bit values from b and swaps them and places in low end of result. +FORCE_INLINE __m128 _mm_shuffle_ps_2301(__m128 a, __m128 b) +{ + float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); + float32x2_t b23 = vrev64_f32(vget_high_f32(vreinterpretq_f32_m128(b))); + return vreinterpretq_m128_f32(vcombine_f32(a01, b23)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_0321(__m128 a, __m128 b) +{ + float32x2_t a21 = vget_high_f32(vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); + float32x2_t b03 = vget_low_f32(vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); + return vreinterpretq_m128_f32(vcombine_f32(a21, b03)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_2103(__m128 a, __m128 b) +{ + float32x2_t a03 = vget_low_f32(vextq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a), 3)); + float32x2_t b21 = vget_high_f32(vextq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b), 3)); + return vreinterpretq_m128_f32(vcombine_f32(a03, b21)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_1010(__m128 a, __m128 b) +{ + float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); + float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(a10, b10)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_1001(__m128 a, __m128 b) +{ + float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); + float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(a01, b10)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_0101(__m128 a, __m128 b) +{ + float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); + float32x2_t b01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(b))); + return vreinterpretq_m128_f32(vcombine_f32(a01, b01)); +} + +// keeps the low 64 bits of b in the low and puts the high 64 bits of a in the high +FORCE_INLINE __m128 _mm_shuffle_ps_3210(__m128 a, __m128 b) +{ + float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); + float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(a10, b32)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_0011(__m128 a, __m128 b) +{ + float32x2_t a11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 1); + float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); + return vreinterpretq_m128_f32(vcombine_f32(a11, b00)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_0022(__m128 a, __m128 b) +{ + float32x2_t a22 = vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); + float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); + return vreinterpretq_m128_f32(vcombine_f32(a22, b00)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_2200(__m128 a, __m128 b) +{ + float32x2_t a00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(a)), 0); + float32x2_t b22 = vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(b)), 0); + return vreinterpretq_m128_f32(vcombine_f32(a00, b22)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_3202(__m128 a, __m128 b) +{ + float32_t a0 = vgetq_lane_f32(vreinterpretq_f32_m128(a), 0); + float32x2_t a22 = vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 0); + float32x2_t a02 = vset_lane_f32(a0, a22, 1); /* apoty: TODO: use vzip ?*/ + float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(a02, b32)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_1133(__m128 a, __m128 b) +{ + float32x2_t a33 = vdup_lane_f32(vget_high_f32(vreinterpretq_f32_m128(a)), 1); + float32x2_t b11 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 1); + return vreinterpretq_m128_f32(vcombine_f32(a33, b11)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_2010(__m128 a, __m128 b) +{ + float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); + float32_t b2 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 2); + float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); + float32x2_t b20 = vset_lane_f32(b2, b00, 1); + return vreinterpretq_m128_f32(vcombine_f32(a10, b20)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_2001(__m128 a, __m128 b) +{ + float32x2_t a01 = vrev64_f32(vget_low_f32(vreinterpretq_f32_m128(a))); + float32_t b2 = vgetq_lane_f32(b, 2); + float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); + float32x2_t b20 = vset_lane_f32(b2, b00, 1); + return vreinterpretq_m128_f32(vcombine_f32(a01, b20)); +} + +FORCE_INLINE __m128 _mm_shuffle_ps_2032(__m128 a, __m128 b) +{ + float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); + float32_t b2 = vgetq_lane_f32(b, 2); + float32x2_t b00 = vdup_lane_f32(vget_low_f32(vreinterpretq_f32_m128(b)), 0); + float32x2_t b20 = vset_lane_f32(b2, b00, 1); + return vreinterpretq_m128_f32(vcombine_f32(a32, b20)); +} + +// NEON does not support a general purpose permute intrinsic +// Currently I am not sure whether the C implementation is faster or slower than the NEON version. +// Note, this has to be expanded as a template because the shuffle value must be an immediate value. +// The same is true on SSE as well. +// Selects four specific single-precision, floating-point values from a and b, based on the mask i. https://msdn.microsoft.com/en-us/library/vstudio/5f0858x0(v=vs.100).aspx +#if ENABLE_CPP_VERSION // I am not convinced that the NEON version is faster than the C version yet. +FORCE_INLINE __m128 _mm_shuffle_ps_default(__m128 a, __m128 b, __constrange(0,255) int imm) +{ + __m128 ret; + ret[0] = a[imm & 0x3]; + ret[1] = a[(imm >> 2) & 0x3]; + ret[2] = b[(imm >> 4) & 0x03]; + ret[3] = b[(imm >> 6) & 0x03]; + return ret; +} +#else +#define _mm_shuffle_ps_default(a, b, imm) \ +({ \ + float32x4_t ret; \ + ret = vmovq_n_f32(vgetq_lane_f32(vreinterpretq_f32_m128(a), (imm) & 0x3)); \ + ret = vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(a), ((imm) >> 2) & 0x3), ret, 1); \ + ret = vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 4) & 0x3), ret, 2); \ + ret = vsetq_lane_f32(vgetq_lane_f32(vreinterpretq_f32_m128(b), ((imm) >> 6) & 0x3), ret, 3); \ + vreinterpretq_m128_f32(ret); \ +}) +#endif + +//FORCE_INLINE __m128 _mm_shuffle_ps(__m128 a, __m128 b, __constrange(0,255) int imm) +#define _mm_shuffle_ps(a, b, imm) \ +({ \ + __m128 ret; \ + switch (imm) \ + { \ + case _MM_SHUFFLE(1, 0, 3, 2): ret = _mm_shuffle_ps_1032((a), (b)); break; \ + case _MM_SHUFFLE(2, 3, 0, 1): ret = _mm_shuffle_ps_2301((a), (b)); break; \ + case _MM_SHUFFLE(0, 3, 2, 1): ret = _mm_shuffle_ps_0321((a), (b)); break; \ + case _MM_SHUFFLE(2, 1, 0, 3): ret = _mm_shuffle_ps_2103((a), (b)); break; \ + case _MM_SHUFFLE(1, 0, 1, 0): ret = _mm_shuffle_ps_1010((a), (b)); break; \ + case _MM_SHUFFLE(1, 0, 0, 1): ret = _mm_shuffle_ps_1001((a), (b)); break; \ + case _MM_SHUFFLE(0, 1, 0, 1): ret = _mm_shuffle_ps_0101((a), (b)); break; \ + case _MM_SHUFFLE(3, 2, 1, 0): ret = _mm_shuffle_ps_3210((a), (b)); break; \ + case _MM_SHUFFLE(0, 0, 1, 1): ret = _mm_shuffle_ps_0011((a), (b)); break; \ + case _MM_SHUFFLE(0, 0, 2, 2): ret = _mm_shuffle_ps_0022((a), (b)); break; \ + case _MM_SHUFFLE(2, 2, 0, 0): ret = _mm_shuffle_ps_2200((a), (b)); break; \ + case _MM_SHUFFLE(3, 2, 0, 2): ret = _mm_shuffle_ps_3202((a), (b)); break; \ + case _MM_SHUFFLE(1, 1, 3, 3): ret = _mm_shuffle_ps_1133((a), (b)); break; \ + case _MM_SHUFFLE(2, 0, 1, 0): ret = _mm_shuffle_ps_2010((a), (b)); break; \ + case _MM_SHUFFLE(2, 0, 0, 1): ret = _mm_shuffle_ps_2001((a), (b)); break; \ + case _MM_SHUFFLE(2, 0, 3, 2): ret = _mm_shuffle_ps_2032((a), (b)); break; \ + default: ret = _mm_shuffle_ps_default((a), (b), (imm)); break; \ + } \ + ret; \ +}) + +// Takes the upper 64 bits of a and places it in the low end of the result +// Takes the lower 64 bits of a and places it into the high end of the result. +FORCE_INLINE __m128i _mm_shuffle_epi_1032(__m128i a) +{ + int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); + int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); + return vreinterpretq_m128i_s32(vcombine_s32(a32, a10)); +} + +// takes the lower two 32-bit values from a and swaps them and places in low end of result +// takes the higher two 32 bit values from a and swaps them and places in high end of result. +FORCE_INLINE __m128i _mm_shuffle_epi_2301(__m128i a) +{ + int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); + int32x2_t a23 = vrev64_s32(vget_high_s32(vreinterpretq_s32_m128i(a))); + return vreinterpretq_m128i_s32(vcombine_s32(a01, a23)); +} + +// rotates the least significant 32 bits into the most signficant 32 bits, and shifts the rest down +FORCE_INLINE __m128i _mm_shuffle_epi_0321(__m128i a) +{ + return vreinterpretq_m128i_s32(vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 1)); +} + +// rotates the most significant 32 bits into the least signficant 32 bits, and shifts the rest up +FORCE_INLINE __m128i _mm_shuffle_epi_2103(__m128i a) +{ + return vreinterpretq_m128i_s32(vextq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(a), 3)); +} + +// gets the lower 64 bits of a, and places it in the upper 64 bits +// gets the lower 64 bits of a and places it in the lower 64 bits +FORCE_INLINE __m128i _mm_shuffle_epi_1010(__m128i a) +{ + int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); + return vreinterpretq_m128i_s32(vcombine_s32(a10, a10)); +} + +// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the lower 64 bits +// gets the lower 64 bits of a, and places it in the upper 64 bits +FORCE_INLINE __m128i _mm_shuffle_epi_1001(__m128i a) +{ + int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); + int32x2_t a10 = vget_low_s32(vreinterpretq_s32_m128i(a)); + return vreinterpretq_m128i_s32(vcombine_s32(a01, a10)); +} + +// gets the lower 64 bits of a, swaps the 0 and 1 elements and places it in the upper 64 bits +// gets the lower 64 bits of a, swaps the 0 and 1 elements, and places it in the lower 64 bits +FORCE_INLINE __m128i _mm_shuffle_epi_0101(__m128i a) +{ + int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); + return vreinterpretq_m128i_s32(vcombine_s32(a01, a01)); +} + +FORCE_INLINE __m128i _mm_shuffle_epi_2211(__m128i a) +{ + int32x2_t a11 = vdup_lane_s32(vget_low_s32(vreinterpretq_s32_m128i(a)), 1); + int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); + return vreinterpretq_m128i_s32(vcombine_s32(a11, a22)); +} + +FORCE_INLINE __m128i _mm_shuffle_epi_0122(__m128i a) +{ + int32x2_t a22 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 0); + int32x2_t a01 = vrev64_s32(vget_low_s32(vreinterpretq_s32_m128i(a))); + return vreinterpretq_m128i_s32(vcombine_s32(a22, a01)); +} + +FORCE_INLINE __m128i _mm_shuffle_epi_3332(__m128i a) +{ + int32x2_t a32 = vget_high_s32(vreinterpretq_s32_m128i(a)); + int32x2_t a33 = vdup_lane_s32(vget_high_s32(vreinterpretq_s32_m128i(a)), 1); + return vreinterpretq_m128i_s32(vcombine_s32(a32, a33)); +} + +//FORCE_INLINE __m128i _mm_shuffle_epi32_default(__m128i a, __constrange(0,255) int imm) +#if ENABLE_CPP_VERSION +FORCE_INLINE __m128i _mm_shuffle_epi32_default(__m128i a, __constrange(0,255) int imm) +{ + __m128i ret; + ret[0] = a[imm & 0x3]; + ret[1] = a[(imm >> 2) & 0x3]; + ret[2] = a[(imm >> 4) & 0x03]; + ret[3] = a[(imm >> 6) & 0x03]; + return ret; +} +#else +#define _mm_shuffle_epi32_default(a, imm) \ +({ \ + int32x4_t ret; \ + ret = vmovq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm) & 0x3)); \ + ret = vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 2) & 0x3), ret, 1); \ + ret = vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 4) & 0x3), ret, 2); \ + ret = vsetq_lane_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), ((imm) >> 6) & 0x3), ret, 3); \ + vreinterpretq_m128i_s32(ret); \ +}) +#endif + +//FORCE_INLINE __m128i _mm_shuffle_epi32_splat(__m128i a, __constrange(0,255) int imm) +#if defined(__aarch64__) +#define _mm_shuffle_epi32_splat(a, imm) \ +({ \ + vreinterpretq_m128i_s32(vdupq_laneq_s32(vreinterpretq_s32_m128i(a), (imm))); \ +}) +#else +#define _mm_shuffle_epi32_splat(a, imm) \ +({ \ + vreinterpretq_m128i_s32(vdupq_n_s32(vgetq_lane_s32(vreinterpretq_s32_m128i(a), (imm)))); \ +}) +#endif + +// Shuffles the 4 signed or unsigned 32-bit integers in a as specified by imm. https://msdn.microsoft.com/en-us/library/56f67xbk%28v=vs.90%29.aspx +//FORCE_INLINE __m128i _mm_shuffle_epi32(__m128i a, __constrange(0,255) int imm) +#define _mm_shuffle_epi32(a, imm) \ +({ \ + __m128i ret; \ + switch (imm) \ + { \ + case _MM_SHUFFLE(1, 0, 3, 2): ret = _mm_shuffle_epi_1032((a)); break; \ + case _MM_SHUFFLE(2, 3, 0, 1): ret = _mm_shuffle_epi_2301((a)); break; \ + case _MM_SHUFFLE(0, 3, 2, 1): ret = _mm_shuffle_epi_0321((a)); break; \ + case _MM_SHUFFLE(2, 1, 0, 3): ret = _mm_shuffle_epi_2103((a)); break; \ + case _MM_SHUFFLE(1, 0, 1, 0): ret = _mm_shuffle_epi_1010((a)); break; \ + case _MM_SHUFFLE(1, 0, 0, 1): ret = _mm_shuffle_epi_1001((a)); break; \ + case _MM_SHUFFLE(0, 1, 0, 1): ret = _mm_shuffle_epi_0101((a)); break; \ + case _MM_SHUFFLE(2, 2, 1, 1): ret = _mm_shuffle_epi_2211((a)); break; \ + case _MM_SHUFFLE(0, 1, 2, 2): ret = _mm_shuffle_epi_0122((a)); break; \ + case _MM_SHUFFLE(3, 3, 3, 2): ret = _mm_shuffle_epi_3332((a)); break; \ + case _MM_SHUFFLE(0, 0, 0, 0): ret = _mm_shuffle_epi32_splat((a),0); break; \ + case _MM_SHUFFLE(1, 1, 1, 1): ret = _mm_shuffle_epi32_splat((a),1); break; \ + case _MM_SHUFFLE(2, 2, 2, 2): ret = _mm_shuffle_epi32_splat((a),2); break; \ + case _MM_SHUFFLE(3, 3, 3, 3): ret = _mm_shuffle_epi32_splat((a),3); break; \ + default: ret = _mm_shuffle_epi32_default((a), (imm)); break; \ + } \ + ret; \ +}) + +// Shuffles the upper 4 signed or unsigned 16 - bit integers in a as specified by imm. https://msdn.microsoft.com/en-us/library/13ywktbs(v=vs.100).aspx +//FORCE_INLINE __m128i _mm_shufflehi_epi16_function(__m128i a, __constrange(0,255) int imm) +#define _mm_shufflehi_epi16_function(a, imm) \ +({ \ + int16x8_t ret = vreinterpretq_s16_s32(a); \ + int16x4_t highBits = vget_high_s16(ret); \ + ret = vsetq_lane_s16(vget_lane_s16(highBits, (imm) & 0x3), ret, 4); \ + ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 2) & 0x3), ret, 5); \ + ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 4) & 0x3), ret, 6); \ + ret = vsetq_lane_s16(vget_lane_s16(highBits, ((imm) >> 6) & 0x3), ret, 7); \ + vreinterpretq_s32_s16(ret); \ +}) + +//FORCE_INLINE __m128i _mm_shufflehi_epi16(__m128i a, __constrange(0,255) int imm) +#define _mm_shufflehi_epi16(a, imm) \ + _mm_shufflehi_epi16_function((a), (imm)) + + +// Shifts the 4 signed or unsigned 32-bit integers in a left by count bits while shifting in zeros. : https://msdn.microsoft.com/en-us/library/z2k3bbtb%28v=vs.90%29.aspx +//FORCE_INLINE __m128i _mm_slli_epi32(__m128i a, __constrange(0,255) int imm) +#define _mm_slli_epi32(a, imm) \ +({ \ + __m128i ret; \ + if ((imm) <= 0) {\ + ret = a; \ + } \ + else if ((imm) > 31) { \ + ret = _mm_setzero_si128(); \ + } \ + else { \ + ret = vreinterpretq_m128i_s32(vshlq_n_s32(vreinterpretq_s32_m128i(a), (imm))); \ + } \ + ret; \ +}) + +//Shifts the 4 signed or unsigned 32-bit integers in a right by count bits while shifting in zeros. https://msdn.microsoft.com/en-us/library/w486zcfa(v=vs.100).aspx +//FORCE_INLINE __m128i _mm_srli_epi32(__m128i a, __constrange(0,255) int imm) +#define _mm_srli_epi32(a, imm) \ +({ \ + __m128i ret; \ + if ((imm) <= 0) { \ + ret = a; \ + } \ + else if ((imm)> 31) { \ + ret = _mm_setzero_si128(); \ + } \ + else { \ + ret = vreinterpretq_m128i_u32(vshrq_n_u32(vreinterpretq_u32_m128i(a), (imm))); \ + } \ + ret; \ +}) + +// Shifts the 4 signed 32 - bit integers in a right by count bits while shifting in the sign bit. https://msdn.microsoft.com/en-us/library/z1939387(v=vs.100).aspx +//FORCE_INLINE __m128i _mm_srai_epi32(__m128i a, __constrange(0,255) int imm) +#define _mm_srai_epi32(a, imm) \ +({ \ + __m128i ret; \ + if ((imm) <= 0) { \ + ret = a; \ + } \ + else if ((imm) > 31) { \ + ret = vreinterpretq_m128i_s32(vshrq_n_s32(vreinterpretq_s32_m128i(a), 16)); \ + ret = vreinterpretq_m128i_s32(vshrq_n_s32(vreinterpretq_s32_m128i(ret), 16)); \ + } \ + else { \ + ret = vreinterpretq_m128i_s32(vshrq_n_s32(vreinterpretq_s32_m128i(a), (imm))); \ + } \ + ret; \ +}) + +// Shifts the 128 - bit value in a right by imm bytes while shifting in zeros.imm must be an immediate. https://msdn.microsoft.com/en-us/library/305w28yz(v=vs.100).aspx +//FORCE_INLINE _mm_srli_si128(__m128i a, __constrange(0,255) int imm) +#define _mm_srli_si128(a, imm) \ +({ \ + __m128i ret; \ + if ((imm) <= 0) { \ + ret = a; \ + } \ + else if ((imm) > 15) { \ + ret = _mm_setzero_si128(); \ + } \ + else { \ + ret = vreinterpretq_m128i_s8(vextq_s8(vreinterpretq_s8_m128i(a), vdupq_n_s8(0), (imm))); \ + } \ + ret; \ +}) + +// Shifts the 128-bit value in a left by imm bytes while shifting in zeros. imm must be an immediate. https://msdn.microsoft.com/en-us/library/34d3k2kt(v=vs.100).aspx +//FORCE_INLINE __m128i _mm_slli_si128(__m128i a, __constrange(0,255) int imm) +#define _mm_slli_si128(a, imm) \ +({ \ + __m128i ret; \ + if ((imm) <= 0) { \ + ret = a; \ + } \ + else if ((imm) > 15) { \ + ret = _mm_setzero_si128(); \ + } \ + else { \ + ret = vreinterpretq_m128i_s8(vextq_s8(vdupq_n_s8(0), vreinterpretq_s8_m128i(a), 16 - (imm))); \ + } \ + ret; \ +}) + +// NEON does not provide a version of this function, here is an article about some ways to repro the results. +// http://stackoverflow.com/questions/11870910/sse-mm-movemask-epi8-equivalent-method-for-arm-neon +// Creates a 16-bit mask from the most significant bits of the 16 signed or unsigned 8-bit integers in a and zero extends the upper bits. https://msdn.microsoft.com/en-us/library/vstudio/s090c8fk(v=vs.100).aspx +FORCE_INLINE int _mm_movemask_epi8(__m128i _a) +{ + uint8x16_t input = vreinterpretq_u8_m128i(_a); + static const int8_t __attribute__((aligned(16))) xr[8] = { -7, -6, -5, -4, -3, -2, -1, 0 }; + uint8x8_t mask_and = vdup_n_u8(0x80); + int8x8_t mask_shift = vld1_s8(xr); + + uint8x8_t lo = vget_low_u8(input); + uint8x8_t hi = vget_high_u8(input); + + lo = vand_u8(lo, mask_and); + lo = vshl_u8(lo, mask_shift); + + hi = vand_u8(hi, mask_and); + hi = vshl_u8(hi, mask_shift); + + lo = vpadd_u8(lo, lo); + lo = vpadd_u8(lo, lo); + lo = vpadd_u8(lo, lo); + + hi = vpadd_u8(hi, hi); + hi = vpadd_u8(hi, hi); + hi = vpadd_u8(hi, hi); + + return ((hi[0] << 8) | (lo[0] & 0xFF)); +} + + +// ****************************************** +// Math operations +// ****************************************** + +// Subtracts the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/1zad2k61(v=vs.100).aspx +FORCE_INLINE __m128 _mm_sub_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_f32(vsubq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Subtracts the 4 signed or unsigned 32-bit integers of b from the 4 signed or unsigned 32-bit integers of a. https://msdn.microsoft.com/en-us/library/vstudio/fhh866h0(v=vs.100).aspx +FORCE_INLINE __m128i _mm_sub_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128_f32(vsubq_s32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +FORCE_INLINE __m128i _mm_sub_epi16(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s16(vsubq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); +} + +// Adds the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/c9848chc(v=vs.100).aspx +FORCE_INLINE __m128 _mm_add_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_f32(vaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// adds the scalar single-precision floating point values of a and b. https://msdn.microsoft.com/en-us/library/be94x2y6(v=vs.100).aspx +FORCE_INLINE __m128 _mm_add_ss(__m128 a, __m128 b) +{ + float32_t b0 = vgetq_lane_f32(vreinterpretq_f32_m128(b), 0); + float32x4_t value = vsetq_lane_f32(b0, vdupq_n_f32(0), 0); + //the upper values in the result must be the remnants of . + return vreinterpretq_m128_f32(vaddq_f32(a, value)); +} + +// Adds the 4 signed or unsigned 32-bit integers in a to the 4 signed or unsigned 32-bit integers in b. https://msdn.microsoft.com/en-us/library/vstudio/09xs4fkk(v=vs.100).aspx +FORCE_INLINE __m128i _mm_add_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32(vaddq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); +} + +// Adds the 8 signed or unsigned 16-bit integers in a to the 8 signed or unsigned 16-bit integers in b. https://msdn.microsoft.com/en-us/library/fceha5k4(v=vs.100).aspx +FORCE_INLINE __m128i _mm_add_epi16(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s16(vaddq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); +} + +// Multiplies the 8 signed or unsigned 16-bit integers from a by the 8 signed or unsigned 16-bit integers from b. https://msdn.microsoft.com/en-us/library/vstudio/9ks1472s(v=vs.100).aspx +FORCE_INLINE __m128i _mm_mullo_epi16(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s16(vmulq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); +} + +// Multiplies the 4 signed or unsigned 32-bit integers from a by the 4 signed or unsigned 32-bit integers from b. https://msdn.microsoft.com/en-us/library/vstudio/bb531409(v=vs.100).aspx +FORCE_INLINE __m128i _mm_mullo_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32(vmulq_s32(vreinterpretq_s32_m128i(a),vreinterpretq_s32_m128i(b))); +} + +// Multiplies the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/22kbk6t9(v=vs.100).aspx +FORCE_INLINE __m128 _mm_mul_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Divides the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/edaw8147(v=vs.100).aspx +FORCE_INLINE __m128 _mm_div_ps(__m128 a, __m128 b) +{ + float32x4_t recip0 = vrecpeq_f32(vreinterpretq_f32_m128(b)); + float32x4_t recip1 = vmulq_f32(recip0, vrecpsq_f32(recip0, vreinterpretq_f32_m128(b))); + return vreinterpretq_m128_f32(vmulq_f32(vreinterpretq_f32_m128(a), recip1)); +} + +// Divides the scalar single-precision floating point value of a by b. https://msdn.microsoft.com/en-us/library/4y73xa49(v=vs.100).aspx +FORCE_INLINE __m128 _mm_div_ss(__m128 a, __m128 b) +{ + float32_t value = vgetq_lane_f32(vreinterpretq_f32_m128(_mm_div_ps(a, b)), 0); + return vreinterpretq_m128_f32(vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); +} + +// This version does additional iterations to improve accuracy. Between 1 and 4 recommended. +// Computes the approximations of reciprocals of the four single-precision, floating-point values of a. https://msdn.microsoft.com/en-us/library/vstudio/796k1tty(v=vs.100).aspx +FORCE_INLINE __m128 recipq_newton(__m128 in, int n) +{ + int i; + float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); + for (i = 0; i < n; ++i) + { + recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); + } + return vreinterpretq_m128_f32(recip); +} + +// Computes the approximations of reciprocals of the four single-precision, floating-point values of a. https://msdn.microsoft.com/en-us/library/vstudio/796k1tty(v=vs.100).aspx +FORCE_INLINE __m128 _mm_rcp_ps(__m128 in) +{ + float32x4_t recip = vrecpeq_f32(vreinterpretq_f32_m128(in)); + recip = vmulq_f32(recip, vrecpsq_f32(recip, vreinterpretq_f32_m128(in))); + return vreinterpretq_m128_f32(recip); +} + +// Computes the approximations of square roots of the four single-precision, floating-point values of a. First computes reciprocal square roots and then reciprocals of the four values. https://msdn.microsoft.com/en-us/library/vstudio/8z67bwwk(v=vs.100).aspx +FORCE_INLINE __m128 _mm_sqrt_ps(__m128 in) +{ + float32x4_t recipsq = vrsqrteq_f32(vreinterpretq_f32_m128(in)); + float32x4_t sq = vrecpeq_f32(recipsq); + // ??? use step versions of both sqrt and recip for better accuracy? + return vreinterpretq_m128_f32(sq); +} + +// Computes the approximation of the square root of the scalar single-precision floating point value of in. https://msdn.microsoft.com/en-us/library/ahfsc22d(v=vs.100).aspx +FORCE_INLINE __m128 _mm_sqrt_ss(__m128 in) +{ + float32_t value = vgetq_lane_f32(vreinterpretq_f32_m128(_mm_sqrt_ps(in)), 0); + return vreinterpretq_m128_f32(vsetq_lane_f32(value, vreinterpretq_f32_m128(in), 0)); +} + +// Computes the approximations of the reciprocal square roots of the four single-precision floating point values of in. https://msdn.microsoft.com/en-us/library/22hfsh53(v=vs.100).aspx +FORCE_INLINE __m128 _mm_rsqrt_ps(__m128 in) +{ + return vreinterpretq_m128_f32(vrsqrteq_f32(vreinterpretq_f32_m128(in))); +} + +// Computes the maximums of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/ff5d607a(v=vs.100).aspx +FORCE_INLINE __m128 _mm_max_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_f32(vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Computes the minima of the four single-precision, floating-point values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/wh13kadz(v=vs.100).aspx +FORCE_INLINE __m128 _mm_min_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_f32(vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Computes the maximum of the two lower scalar single-precision floating point values of a and b. https://msdn.microsoft.com/en-us/library/s6db5esz(v=vs.100).aspx +FORCE_INLINE __m128 _mm_max_ss(__m128 a, __m128 b) +{ + float32_t value = vgetq_lane_f32(vmaxq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + return vreinterpretq_m128_f32(vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); +} + +// Computes the minimum of the two lower scalar single-precision floating point values of a and b. https://msdn.microsoft.com/en-us/library/0a9y7xaa(v=vs.100).aspx +FORCE_INLINE __m128 _mm_min_ss(__m128 a, __m128 b) +{ + float32_t value = vgetq_lane_f32(vminq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + return vreinterpretq_m128_f32(vsetq_lane_f32(value, vreinterpretq_f32_m128(a), 0)); +} + +// Computes the pairwise minima of the 8 signed 16-bit integers from a and the 8 signed 16-bit integers from b. https://msdn.microsoft.com/en-us/library/vstudio/6te997ew(v=vs.100).aspx +FORCE_INLINE __m128i _mm_min_epi16(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s16(vminq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b))); +} + +// epi versions of min/max +// Computes the pariwise maximums of the four signed 32-bit integer values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/bb514055(v=vs.100).aspx +FORCE_INLINE __m128i _mm_max_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32(vmaxq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); +} + +// Computes the pariwise minima of the four signed 32-bit integer values of a and b. https://msdn.microsoft.com/en-us/library/vstudio/bb531476(v=vs.100).aspx +FORCE_INLINE __m128i _mm_min_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s32(vminq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); +} + +// Multiplies the 8 signed 16-bit integers from a by the 8 signed 16-bit integers from b. https://msdn.microsoft.com/en-us/library/vstudio/59hddw1d(v=vs.100).aspx +FORCE_INLINE __m128i _mm_mulhi_epi16(__m128i a, __m128i b) +{ + /* apoty: issue with large values because of result saturation */ + //int16x8_t ret = vqdmulhq_s16(vreinterpretq_s16_m128i(a), vreinterpretq_s16_m128i(b)); /* =2*a*b */ + //return vreinterpretq_m128i_s16(vshrq_n_s16(ret, 1)); + int16x4_t a3210 = vget_low_s16(vreinterpretq_s16_m128i(a)); + int16x4_t b3210 = vget_low_s16(vreinterpretq_s16_m128i(b)); + int32x4_t ab3210 = vmull_s16(a3210, b3210); /* 3333222211110000 */ + int16x4_t a7654 = vget_high_s16(vreinterpretq_s16_m128i(a)); + int16x4_t b7654 = vget_high_s16(vreinterpretq_s16_m128i(b)); + int32x4_t ab7654 = vmull_s16(a7654, b7654); /* 7777666655554444 */ + uint16x8x2_t r = vuzpq_u16(vreinterpretq_u16_s32(ab3210), vreinterpretq_u16_s32(ab7654)); + return vreinterpretq_m128i_u16(r.val[1]); +} + +// Computes pairwise add of each argument as single-precision, floating-point values a and b. +//https://msdn.microsoft.com/en-us/library/yd9wecaa.aspx +FORCE_INLINE __m128 _mm_hadd_ps(__m128 a, __m128 b ) +{ +#if defined(__aarch64__) + return vreinterpretq_m128_f32(vpaddq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); //AArch64 +#else + float32x2_t a10 = vget_low_f32(vreinterpretq_f32_m128(a)); + float32x2_t a32 = vget_high_f32(vreinterpretq_f32_m128(a)); + float32x2_t b10 = vget_low_f32(vreinterpretq_f32_m128(b)); + float32x2_t b32 = vget_high_f32(vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_f32(vcombine_f32(vpadd_f32(a10, a32), vpadd_f32(b10, b32))); +#endif +} + +// ****************************************** +// Compare operations +// ****************************************** + +// Compares for less than https://msdn.microsoft.com/en-us/library/vstudio/f330yhc8(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmplt_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32(vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Compares for greater than. https://msdn.microsoft.com/en-us/library/vstudio/11dy102s(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmpgt_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32(vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Compares for greater than or equal. https://msdn.microsoft.com/en-us/library/vstudio/fs813y2t(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmpge_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32(vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Compares for less than or equal. https://msdn.microsoft.com/en-us/library/vstudio/1s75w83z(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmple_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32(vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Compares for equality. https://msdn.microsoft.com/en-us/library/vstudio/36aectz5(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cmpeq_ps(__m128 a, __m128 b) +{ + return vreinterpretq_m128_u32(vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); +} + +// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers in b for less than. https://msdn.microsoft.com/en-us/library/vstudio/4ak0bf5d(v=vs.100).aspx +FORCE_INLINE __m128i _mm_cmplt_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_u32(vcltq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); +} + +// Compares the 4 signed 32-bit integers in a and the 4 signed 32-bit integers in b for greater than. https://msdn.microsoft.com/en-us/library/vstudio/1s9f2z0y(v=vs.100).aspx +FORCE_INLINE __m128i _mm_cmpgt_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_u32(vcgtq_s32(vreinterpretq_s32_m128i(a), vreinterpretq_s32_m128i(b))); +} + +// Compares the four 32-bit floats in a and b to check if any values are NaN. Ordered compare between each value returns true for "orderable" and false for "not orderable" (NaN). https://msdn.microsoft.com/en-us/library/vstudio/0h9w00fx(v=vs.100).aspx +// see also: +// http://stackoverflow.com/questions/8627331/what-does-ordered-unordered-comparison-mean +// http://stackoverflow.com/questions/29349621/neon-isnanval-intrinsics +FORCE_INLINE __m128 _mm_cmpord_ps(__m128 a, __m128 b ) +{ + // Note: NEON does not have ordered compare builtin + // Need to compare a eq a and b eq b to check for NaN + // Do AND of results to get final + uint32x4_t ceqaa = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t ceqbb = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + return vreinterpretq_m128_u32(vandq_u32(ceqaa, ceqbb)); +} + +// Compares the lower single-precision floating point scalar values of a and b using a less than operation. : https://msdn.microsoft.com/en-us/library/2kwe606b(v=vs.90).aspx +// Important note!! The documentation on MSDN is incorrect! If either of the values is a NAN the docs say you will get a one, but in fact, it will return a zero!! +FORCE_INLINE int _mm_comilt_ss(__m128 a, __m128 b) +{ + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_or_b_nan = vmvnq_u32(vandq_u32(a_not_nan, b_not_nan)); + uint32x4_t a_lt_b = vcltq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); + return (vgetq_lane_u32(vorrq_u32(a_or_b_nan, a_lt_b), 0) != 0) ? 1 : 0; +} + +// Compares the lower single-precision floating point scalar values of a and b using a greater than operation. : https://msdn.microsoft.com/en-us/library/b0738e0t(v=vs.100).aspx +FORCE_INLINE int _mm_comigt_ss(__m128 a, __m128 b) +{ + //return vgetq_lane_u32(vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); + uint32x4_t a_gt_b = vcgtq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); + return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_gt_b), 0) != 0) ? 1 : 0; +} + +// Compares the lower single-precision floating point scalar values of a and b using a less than or equal operation. : https://msdn.microsoft.com/en-us/library/1w4t7c57(v=vs.90).aspx +FORCE_INLINE int _mm_comile_ss(__m128 a, __m128 b) +{ + //return vgetq_lane_u32(vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_or_b_nan = vmvnq_u32(vandq_u32(a_not_nan, b_not_nan)); + uint32x4_t a_le_b = vcleq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); + return (vgetq_lane_u32(vorrq_u32(a_or_b_nan, a_le_b), 0) != 0) ? 1 : 0; +} + +// Compares the lower single-precision floating point scalar values of a and b using a greater than or equal operation. : https://msdn.microsoft.com/en-us/library/8t80des6(v=vs.100).aspx +FORCE_INLINE int _mm_comige_ss(__m128 a, __m128 b) +{ + //return vgetq_lane_u32(vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); + uint32x4_t a_ge_b = vcgeq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); + return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_ge_b), 0) != 0) ? 1 : 0; +} + +// Compares the lower single-precision floating point scalar values of a and b using an equality operation. : https://msdn.microsoft.com/en-us/library/93yx2h2b(v=vs.100).aspx +FORCE_INLINE int _mm_comieq_ss(__m128 a, __m128 b) +{ + //return vgetq_lane_u32(vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_or_b_nan = vmvnq_u32(vandq_u32(a_not_nan, b_not_nan)); + uint32x4_t a_eq_b = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)); + return (vgetq_lane_u32(vorrq_u32(a_or_b_nan, a_eq_b), 0) != 0) ? 1 : 0; +} + +// Compares the lower single-precision floating point scalar values of a and b using an inequality operation. : https://msdn.microsoft.com/en-us/library/bafh5e0a(v=vs.90).aspx +FORCE_INLINE int _mm_comineq_ss(__m128 a, __m128 b) +{ + //return !vgetq_lane_u32(vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b)), 0); + uint32x4_t a_not_nan = vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(a)); + uint32x4_t b_not_nan = vceqq_f32(vreinterpretq_f32_m128(b), vreinterpretq_f32_m128(b)); + uint32x4_t a_and_b_not_nan = vandq_u32(a_not_nan, b_not_nan); + uint32x4_t a_neq_b = vmvnq_u32(vceqq_f32(vreinterpretq_f32_m128(a), vreinterpretq_f32_m128(b))); + return (vgetq_lane_u32(vandq_u32(a_and_b_not_nan, a_neq_b), 0) != 0) ? 1 : 0; +} + +// according to the documentation, these intrinsics behave the same as the non-'u' versions. We'll just alias them here. +#define _mm_ucomilt_ss _mm_comilt_ss +#define _mm_ucomile_ss _mm_comile_ss +#define _mm_ucomigt_ss _mm_comigt_ss +#define _mm_ucomige_ss _mm_comige_ss +#define _mm_ucomieq_ss _mm_comieq_ss +#define _mm_ucomineq_ss _mm_comineq_ss + +// ****************************************** +// Conversions +// ****************************************** + +// Converts the four single-precision, floating-point values of a to signed 32-bit integer values using truncate. https://msdn.microsoft.com/en-us/library/vstudio/1h005y6x(v=vs.100).aspx +FORCE_INLINE __m128i _mm_cvttps_epi32(__m128 a) +{ + return vreinterpretq_m128i_s32(vcvtq_s32_f32(vreinterpretq_f32_m128(a))); +} + +// Converts the four signed 32-bit integer values of a to single-precision, floating-point values https://msdn.microsoft.com/en-us/library/vstudio/36bwxcx5(v=vs.100).aspx +FORCE_INLINE __m128 _mm_cvtepi32_ps(__m128i a) +{ + return vreinterpretq_m128_f32(vcvtq_f32_s32(vreinterpretq_s32_m128i(a))); +} + +// Converts the four unsigned 8-bit integers in the lower 32 bits to four unsigned 32-bit integers. https://msdn.microsoft.com/en-us/library/bb531467%28v=vs.100%29.aspx +FORCE_INLINE __m128i _mm_cvtepu8_epi32(__m128i a) +{ + uint8x16_t u8x16 = vreinterpretq_u8_s32(a); /* xxxx xxxx xxxx DCBA */ + uint16x8_t u16x8 = vmovl_u8(vget_low_u8(u8x16)); /* 0x0x 0x0x 0D0C 0B0A */ + uint32x4_t u32x4 = vmovl_u16(vget_low_u16(u16x8)); /* 000D 000C 000B 000A */ + return vreinterpretq_s32_u32(u32x4); +} + +// Converts the four signed 16-bit integers in the lower 64 bits to four signed 32-bit integers. https://msdn.microsoft.com/en-us/library/bb514079%28v=vs.100%29.aspx +FORCE_INLINE __m128i _mm_cvtepi16_epi32(__m128i a) +{ + return vreinterpretq_m128i_s32(vmovl_s16(vget_low_s16(vreinterpretq_s16_m128i(a)))); +} + +// Converts the four single-precision, floating-point values of a to signed 32-bit integer values. https://msdn.microsoft.com/en-us/library/vstudio/xdc42k5e(v=vs.100).aspx +// *NOTE*. The default rounding mode on SSE is 'round to even', which ArmV7 does not support! +// It is supported on ARMv8 however. +FORCE_INLINE __m128i _mm_cvtps_epi32(__m128 a) +{ +#if defined(__aarch64__) + return vcvtnq_s32_f32(a); +#else + uint32x4_t signmask = vdupq_n_u32(0x80000000); + float32x4_t half = vbslq_f32(signmask, vreinterpretq_f32_m128(a), vdupq_n_f32(0.5f)); /* +/- 0.5 */ + int32x4_t r_normal = vcvtq_s32_f32(vaddq_f32(vreinterpretq_f32_m128(a), half)); /* round to integer: [a + 0.5]*/ + int32x4_t r_trunc = vcvtq_s32_f32(vreinterpretq_f32_m128(a)); /* truncate to integer: [a] */ + int32x4_t plusone = vreinterpretq_s32_u32(vshrq_n_u32(vreinterpretq_u32_s32(vnegq_s32(r_trunc)), 31)); /* 1 or 0 */ + int32x4_t r_even = vbicq_s32(vaddq_s32(r_trunc, plusone), vdupq_n_s32(1)); /* ([a] + {0,1}) & ~1 */ + float32x4_t delta = vsubq_f32(vreinterpretq_f32_m128(a), vcvtq_f32_s32(r_trunc)); /* compute delta: delta = (a - [a]) */ + uint32x4_t is_delta_half = vceqq_f32(delta, half); /* delta == +/- 0.5 */ + return vreinterpretq_m128i_s32(vbslq_s32(is_delta_half, r_even, r_normal)); +#endif +} + +// Moves the least significant 32 bits of a to a 32-bit integer. https://msdn.microsoft.com/en-us/library/5z7a9642%28v=vs.90%29.aspx +FORCE_INLINE int _mm_cvtsi128_si32(__m128i a) +{ + return vgetq_lane_s32(vreinterpretq_s32_m128i(a), 0); +} + +// Moves 32-bit integer a to the least significant 32 bits of an __m128 object, zero extending the upper bits. https://msdn.microsoft.com/en-us/library/ct3539ha%28v=vs.90%29.aspx +FORCE_INLINE __m128i _mm_cvtsi32_si128(int a) +{ + return vreinterpretq_m128i_s32(vsetq_lane_s32(a, vdupq_n_s32(0), 0)); +} + + +// Applies a type cast to reinterpret four 32-bit floating point values passed in as a 128-bit parameter as packed 32-bit integers. https://msdn.microsoft.com/en-us/library/bb514099.aspx +FORCE_INLINE __m128i _mm_castps_si128(__m128 a) +{ + return vreinterpretq_m128i_s32(vreinterpretq_s32_m128(a)); +} + +// Applies a type cast to reinterpret four 32-bit integers passed in as a 128-bit parameter as packed 32-bit floating point values. https://msdn.microsoft.com/en-us/library/bb514029.aspx +FORCE_INLINE __m128 _mm_castsi128_ps(__m128i a) +{ + return vreinterpretq_m128_s32(vreinterpretq_s32_m128i(a)); +} + +// Loads 128-bit value. : https://msdn.microsoft.com/en-us/library/atzzad1h(v=vs.80).aspx +FORCE_INLINE __m128i _mm_load_si128(const __m128i *p) +{ + return vreinterpretq_m128i_s32(vld1q_s32((int32_t *)p)); +} + +// ****************************************** +// Miscellaneous Operations +// ****************************************** + +// Packs the 16 signed 16-bit integers from a and b into 8-bit integers and saturates. https://msdn.microsoft.com/en-us/library/k4y4f7w5%28v=vs.90%29.aspx +FORCE_INLINE __m128i _mm_packs_epi16(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s8(vcombine_s8(vqmovn_s16(vreinterpretq_s16_m128i(a)), vqmovn_s16(vreinterpretq_s16_m128i(b)))); +} + +// Packs the 16 signed 16 - bit integers from a and b into 8 - bit unsigned integers and saturates. https://msdn.microsoft.com/en-us/library/07ad1wx4(v=vs.100).aspx +FORCE_INLINE __m128i _mm_packus_epi16(const __m128i a, const __m128i b) +{ + return vreinterpretq_m128i_u8(vcombine_u8(vqmovun_s16(vreinterpretq_s16_m128i(a)), vqmovun_s16(vreinterpretq_s16_m128i(b)))); +} + +// Packs the 8 signed 32-bit integers from a and b into signed 16-bit integers and saturates. https://msdn.microsoft.com/en-us/library/393t56f9%28v=vs.90%29.aspx +FORCE_INLINE __m128i _mm_packs_epi32(__m128i a, __m128i b) +{ + return vreinterpretq_m128i_s16(vcombine_s16(vqmovn_s32(vreinterpretq_s32_m128i(a)), vqmovn_s32(vreinterpretq_s32_m128i(b)))); +} + +// Interleaves the lower 8 signed or unsigned 8-bit integers in a with the lower 8 signed or unsigned 8-bit integers in b. https://msdn.microsoft.com/en-us/library/xf7k860c%28v=vs.90%29.aspx +FORCE_INLINE __m128i _mm_unpacklo_epi8(__m128i a, __m128i b) +{ + int8x8_t a1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(a))); + int8x8_t b1 = vreinterpret_s8_s16(vget_low_s16(vreinterpretq_s16_m128i(b))); + int8x8x2_t result = vzip_s8(a1, b1); + return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); +} + +// Interleaves the lower 4 signed or unsigned 16-bit integers in a with the lower 4 signed or unsigned 16-bit integers in b. https://msdn.microsoft.com/en-us/library/btxb17bw%28v=vs.90%29.aspx +FORCE_INLINE __m128i _mm_unpacklo_epi16(__m128i a, __m128i b) +{ + int16x4_t a1 = vget_low_s16(vreinterpretq_s16_m128i(a)); + int16x4_t b1 = vget_low_s16(vreinterpretq_s16_m128i(b)); + int16x4x2_t result = vzip_s16(a1, b1); + return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); +} + +// Interleaves the lower 2 signed or unsigned 32 - bit integers in a with the lower 2 signed or unsigned 32 - bit integers in b. https://msdn.microsoft.com/en-us/library/x8atst9d(v=vs.100).aspx +FORCE_INLINE __m128i _mm_unpacklo_epi32(__m128i a, __m128i b) +{ + int32x2_t a1 = vget_low_s32(vreinterpretq_s32_m128i(a)); + int32x2_t b1 = vget_low_s32(vreinterpretq_s32_m128i(b)); + int32x2x2_t result = vzip_s32(a1, b1); + return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); +} + +// Selects and interleaves the lower two single-precision, floating-point values from a and b. https://msdn.microsoft.com/en-us/library/25st103b%28v=vs.90%29.aspx +FORCE_INLINE __m128 _mm_unpacklo_ps(__m128 a, __m128 b) +{ + float32x2_t a1 = vget_low_f32(vreinterpretq_f32_m128(a)); + float32x2_t b1 = vget_low_f32(vreinterpretq_f32_m128(b)); + float32x2x2_t result = vzip_f32(a1, b1); + return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); +} + +// Selects and interleaves the upper two single-precision, floating-point values from a and b. https://msdn.microsoft.com/en-us/library/skccxx7d%28v=vs.90%29.aspx +FORCE_INLINE __m128 _mm_unpackhi_ps(__m128 a, __m128 b) +{ + float32x2_t a1 = vget_high_f32(vreinterpretq_f32_m128(a)); + float32x2_t b1 = vget_high_f32(vreinterpretq_f32_m128(b)); + float32x2x2_t result = vzip_f32(a1, b1); + return vreinterpretq_m128_f32(vcombine_f32(result.val[0], result.val[1])); +} + +// Interleaves the upper 8 signed or unsigned 8-bit integers in a with the upper 8 signed or unsigned 8-bit integers in b. https://msdn.microsoft.com/en-us/library/t5h7783k(v=vs.100).aspx +FORCE_INLINE __m128i _mm_unpackhi_epi8(__m128i a, __m128i b) +{ + int8x8_t a1 = vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(a))); + int8x8_t b1 = vreinterpret_s8_s16(vget_high_s16(vreinterpretq_s16_m128i(b))); + int8x8x2_t result = vzip_s8(a1, b1); + return vreinterpretq_m128i_s8(vcombine_s8(result.val[0], result.val[1])); +} + +// Interleaves the upper 4 signed or unsigned 16-bit integers in a with the upper 4 signed or unsigned 16-bit integers in b. https://msdn.microsoft.com/en-us/library/03196cz7(v=vs.100).aspx +FORCE_INLINE __m128i _mm_unpackhi_epi16(__m128i a, __m128i b) +{ + int16x4_t a1 = vget_high_s16(vreinterpretq_s16_m128i(a)); + int16x4_t b1 = vget_high_s16(vreinterpretq_s16_m128i(b)); + int16x4x2_t result = vzip_s16(a1, b1); + return vreinterpretq_m128i_s16(vcombine_s16(result.val[0], result.val[1])); +} + +// Interleaves the upper 2 signed or unsigned 32-bit integers in a with the upper 2 signed or unsigned 32-bit integers in b. https://msdn.microsoft.com/en-us/library/65sa7cbs(v=vs.100).aspx +FORCE_INLINE __m128i _mm_unpackhi_epi32(__m128i a, __m128i b) +{ + int32x2_t a1 = vget_high_s32(vreinterpretq_s32_m128i(a)); + int32x2_t b1 = vget_high_s32(vreinterpretq_s32_m128i(b)); + int32x2x2_t result = vzip_s32(a1, b1); + return vreinterpretq_m128i_s32(vcombine_s32(result.val[0], result.val[1])); +} + +// Extracts the selected signed or unsigned 16-bit integer from a and zero extends. https://msdn.microsoft.com/en-us/library/6dceta0c(v=vs.100).aspx +//FORCE_INLINE int _mm_extract_epi16(__m128i a, __constrange(0,8) int imm) +#define _mm_extract_epi16(a, imm) \ +({ \ + (vgetq_lane_s16(vreinterpretq_s16_m128i(a), (imm)) & 0x0000ffffUL); \ +}) + +// Inserts the least significant 16 bits of b into the selected 16-bit integer of a. https://msdn.microsoft.com/en-us/library/kaze8hz1%28v=vs.100%29.aspx +//FORCE_INLINE __m128i _mm_insert_epi16(__m128i a, const int b, __constrange(0,8) int imm) +#define _mm_insert_epi16(a, b, imm) \ +({ \ + vreinterpretq_m128i_s16(vsetq_lane_s16((b), vreinterpretq_s16_m128i(a), (imm))); \ +}) + +// ****************************************** +// Streaming Extensions +// ****************************************** + +// Guarantees that every preceding store is globally visible before any subsequent store. https://msdn.microsoft.com/en-us/library/5h2w73d1%28v=vs.90%29.aspx +FORCE_INLINE void _mm_sfence(void) +{ + __sync_synchronize(); +} + +// Stores the data in a to the address p without polluting the caches. If the cache line containing address p is already in the cache, the cache will be updated.Address p must be 16 - byte aligned. https://msdn.microsoft.com/en-us/library/ba08y07y%28v=vs.90%29.aspx +FORCE_INLINE void _mm_stream_si128(__m128i *p, __m128i a) +{ + *p = a; +} + +// Cache line containing p is flushed and invalidated from all caches in the coherency domain. : https://msdn.microsoft.com/en-us/library/ba08y07y(v=vs.100).aspx +FORCE_INLINE void _mm_clflush(void const*p) +{ + // no corollary for Neon? +} + +#if defined(__GNUC__) || defined(__clang__) +# pragma pop_macro("ALIGN_STRUCT") +# pragma pop_macro("FORCE_INLINE") +#endif + +#endif diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON.sln b/thirdparty/sse2neon/SSE2NEON/SSE2NEON.sln new file mode 100644 index 0000000..05c0c17 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON.sln @@ -0,0 +1,25 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSE2NEON", "SSE2NEON\SSE2NEON.vcxproj", "{82052143-B781-40EA-BFB0-491904834B89}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Tegra-Android = Debug|Tegra-Android + Release|Tegra-Android = Release|Tegra-Android + Shipping|Tegra-Android = Shipping|Tegra-Android + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {82052143-B781-40EA-BFB0-491904834B89}.Debug|Tegra-Android.ActiveCfg = Debug|Tegra-Android + {82052143-B781-40EA-BFB0-491904834B89}.Debug|Tegra-Android.Build.0 = Debug|Tegra-Android + {82052143-B781-40EA-BFB0-491904834B89}.Release|Tegra-Android.ActiveCfg = Release|Tegra-Android + {82052143-B781-40EA-BFB0-491904834B89}.Release|Tegra-Android.Build.0 = Release|Tegra-Android + {82052143-B781-40EA-BFB0-491904834B89}.Shipping|Tegra-Android.ActiveCfg = Shipping|Tegra-Android + {82052143-B781-40EA-BFB0-491904834B89}.Shipping|Tegra-Android.Build.0 = Shipping|Tegra-Android + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/.oracle_jre_usage/c8f967413d920efe.timestamp b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/.oracle_jre_usage/c8f967413d920efe.timestamp new file mode 100644 index 0000000..249a1d9 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/.oracle_jre_usage/c8f967413d920efe.timestamp @@ -0,0 +1,2 @@ +C:\NVPACK\jdk1.8.0_77\jre +1490807943647 diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/AndroidManifest.xml b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/AndroidManifest.xml new file mode 100644 index 0000000..324a353 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/AndroidManifest.xml @@ -0,0 +1,19 @@ + + + + + + + + + + + + + diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj new file mode 100644 index 0000000..89c3d9a --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj @@ -0,0 +1,78 @@ + + + + 11 + + + + Debug + Tegra-Android + + + Release + Tegra-Android + + + Shipping + Tegra-Android + + + + {82052143-B781-40EA-BFB0-491904834B89} + SSE2NEON + + + + android-15 + + + android-15 + + + android-15 + + + + + + + + + + gnu++11 + %(AdditionalIncludeDirectories) + + + + + gnu++11 + %(AdditionalIncludeDirectories) + + + + + gnu++11 + %(AdditionalIncludeDirectories) + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj.filters b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj.filters new file mode 100644 index 0000000..2702053 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/SSE2NEON.vcxproj.filters @@ -0,0 +1,56 @@ + + + + + 1809a5b3-0e48-4552-907e-2b1b920e5948 + + + f663d0da-a8fc-4457-bf5e-aab7f1904d2e + + + {32a44a3b-1ece-48ec-a181-de7a49d1c972} + + + {d64092f0-bd97-42f3-8e5a-e3dbc448ef62} + + + {dfa22a06-6da7-446e-a1dd-8bd921238984} + + + {cd15bd6d-0b7f-4bc8-83bc-ff8b30f022ca} + + + + + + res\values + + + + + src\sse2neon\test + + + + + jni + + + jni + + + jni + + + + + jni + + + jni + + + jni + + + \ No newline at end of file diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/jni/SSE2NEON_TEST.cpp b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/jni/SSE2NEON_TEST.cpp new file mode 100644 index 0000000..d31453a --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/jni/SSE2NEON_TEST.cpp @@ -0,0 +1,46 @@ +/********************************** + Java Native Interface library +**********************************/ +#include +#include +#include "../../../SSE2NEONTEST.h" +#include + +/** This is the C++ implementation of the Java native method. +@param env Pointer to JVM environment +@param thiz Reference to Java this object +*/ +extern "C" +JNIEXPORT void JNICALL +Java_sse2neon_test_SSE2NEON_sse2neonNative( JNIEnv* env, jobject thiz ) +{ + // Enter code here + __android_log_print(ANDROID_LOG_INFO, "SSE2NEON", "%s\n", "SSE2NEON"); + + + SSE2NEON::SSE2NEONTest *test = SSE2NEON::SSE2NEONTest::create(); + uint32_t passCount = 0; + uint32_t failedCount = 0; + for (uint32_t i = 0; i < SSE2NEON::IT_LAST; i++) + { + SSE2NEON::InstructionTest it = SSE2NEON::InstructionTest(i); + __android_log_print(ANDROID_LOG_INFO, "SSE2NEON", "Running Test %s\n", SSE2NEON::SSE2NEONTest::getInstructionTestString(it)); + bool ok = test->runTest(it); + // If the test fails, we will run it again so we can step into the debugger and figure out why! + if (!ok) + { + __android_log_print(ANDROID_LOG_INFO, "SSE2NEON", "**FAILURE** SSE2NEONTest %s", SSE2NEON::SSE2NEONTest::getInstructionTestString(it)); + // test->runTest(it); // Uncomment this to step through the code to find the failure case + } + if (ok) + { + passCount++; + } + else + { + failedCount++; + } + } + test->release(); + __android_log_print(ANDROID_LOG_INFO, "SSE2NEON", "SSE2NEONTest Complete: Passed %d tests : Failed %d\n", passCount, failedCount); +} diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/res/values/strings.xml b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/res/values/strings.xml new file mode 100644 index 0000000..5ef10d9 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/res/values/strings.xml @@ -0,0 +1,4 @@ + + + SSE2NEON + diff --git a/thirdparty/sse2neon/SSE2NEON/SSE2NEON/src/sse2neon/test/SSE2NEON.java b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/src/sse2neon/test/SSE2NEON.java new file mode 100644 index 0000000..b143757 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEON/SSE2NEON/src/sse2neon/test/SSE2NEON.java @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2009 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package sse2neon.test; + +import android.app.Activity; +import android.widget.TextView; +import android.os.Bundle; + +/** + * This class loads the Java Native Interface (JNI) + * library, 'libSSE2NEON.so', and provides access to the + * exposed C functions. + * The library is packaged and installed with the application. + * See the C file, /jni/SSE2NEON.c file for the + * implementations of the native methods. + * + * For more information on JNI, see: http://java.sun.com/docs/books/jni/ + */ + +public class SSE2NEON extends Activity +{ + /** Called when the activity is first created. */ + @Override + public void onCreate(Bundle savedInstanceState) + { + super.onCreate(savedInstanceState); + + // Enter code here + sse2neonNative(); + } + + /** + * An example native method. See the library function, + * Java_sse2neon_test_SSE2NEON_sse2neonNative + * for the implementation. + */ + public native void sse2neonNative(); + + /* This is the static constructor used to load the + * 'SSE2NEON' library when the class is + * loaded. + */ + static { + System.loadLibrary("SSE2NEON"); + } +} diff --git a/thirdparty/sse2neon/SSE2NEONBinding.cpp b/thirdparty/sse2neon/SSE2NEONBinding.cpp new file mode 100644 index 0000000..54e88dc --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEONBinding.cpp @@ -0,0 +1,47 @@ +#include "SSE2NEONBinding.h" + + +#ifdef WIN32 +#include +#include + +#include +#include + + + +#else + +#include + +#endif + +namespace SSE2NEON +{ + +#ifdef WIN32 + void* platformAlignedAlloc(size_t size) + { + return _aligned_malloc(size, 16); + } + + void platformAlignedFree(void* ptr) + { + _aligned_free(ptr); + } + +#else + + void* platformAlignedAlloc(size_t size) + { + return ::memalign(16, size); + } + + void platformAlignedFree(void* ptr) + { + ::free(ptr); + } + +#endif + +} // end of SSE2NEON namespace \ No newline at end of file diff --git a/thirdparty/sse2neon/SSE2NEONBinding.h b/thirdparty/sse2neon/SSE2NEONBinding.h new file mode 100644 index 0000000..1a4e059 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEONBinding.h @@ -0,0 +1,20 @@ +#ifndef SSE2NEONBINDING_H +#define SSE2NEONBINDING_H + +#include + +// The SSE2NEON unit tests run both within our own internal project +// as well as within the open source framework. +// This header file is used to abstract any distinctions between +// those two build environments. +// +// Initially, this is for how 16 byte aligned memory is allocated +namespace SSE2NEON +{ + +void* platformAlignedAlloc(size_t size); +void platformAlignedFree(void* ptr); + +} + +#endif diff --git a/thirdparty/sse2neon/SSE2NEONTEST.cpp b/thirdparty/sse2neon/SSE2NEONTEST.cpp new file mode 100644 index 0000000..b170177 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEONTEST.cpp @@ -0,0 +1,1850 @@ +#include +#include +#include +#include +#include +#include + +#include "SSE2NEONBinding.h" +#include "SSE2NEONTEST.h" + +// SSE2NEONTEST performs a set of 'unit tests' making sure that each SSE call +// provides the output we expect. If this fires an assert, then something didn't match up. + + +#ifdef WIN32 + +#pragma warning(disable:4211) + +#include +#include + +#else + +#include "SSE2NEON.h" + +#endif + +namespace SSE2NEON +{ + +// hex representation of an IEEE NAN +const uint32_t inan = 0xffffffff; + +static inline float getNAN(void) +{ + const float *fn = (const float *)&inan; + return *fn; +} + +static inline bool isNAN(float a) +{ + const uint32_t *ia = (const uint32_t *)&a; + return (*ia) == inan ? true : false; +} + +// Do a round operation that produces results the same as SSE instructions +static inline float bankersRounding(float val) +{ + if (val < 0) + { + return -bankersRounding(-val); + } + float ret; + int32_t truncateInteger = int32_t(val); + int32_t roundInteger = int32_t(val + 0.5f); + float diff1 = val - float(truncateInteger); // Truncate value + float diff2 = val - float(roundInteger); // Round up value + if (diff2 < 0) diff2 *= -1; // get the positive difference from the round up value + // If it's closest to the truncate integer; then use it + if (diff1 < diff2) + { + ret = float(truncateInteger); + } + else if (diff2 < diff1) // if it's closest to the round-up integer; use it + { + ret = float(roundInteger); + } + else + { + // If it's equidistant between rounding up and rounding down, pick the one which is an even number + if (truncateInteger & 1) // If truncate is odd, then return the rounded integer + { + ret = float(roundInteger); + } + else + { + // If the rounded up value is odd, use return the truncated integer + ret = float(truncateInteger); + } + } + return ret; +} + + + const char *SSE2NEONTest::getInstructionTestString(InstructionTest test) + { + const char *ret = "UNKNOWN!"; + + switch (test) + { + case IT_MM_SETZERO_SI128: + ret = "MM_SETZERO_SI128"; + break; + case IT_MM_SETZERO_PS: + ret = "MM_SETZERO_PS"; + break; + case IT_MM_SET1_PS: + ret = "MM_SET1_PS"; + break; + case IT_MM_SET_PS1: + ret = "MM_SET_PS1"; + break; + case IT_MM_SET_PS: + ret = "MM_SET_PS"; + break; + case IT_MM_SETR_PS: + ret = "MM_SETR_PS"; + break; + case IT_MM_SET1_EPI32: + ret = "MM_SET1_EPI32"; + break; + case IT_MM_SET_EPI32: + ret = "MM_SET_EPI32"; + break; + case IT_MM_STORE_PS: + ret = "MM_STORE_PS"; + break; + case IT_MM_STOREU_PS: + ret = "MM_STOREU_PS"; + break; + case IT_MM_STORE_SI128: + ret = "MM_STORE_SI128"; + break; + case IT_MM_STORE_SS: + ret = "MM_STORE_SS"; + break; + case IT_MM_STOREL_EPI64: + ret = "MM_STOREL_EPI64"; + break; + case IT_MM_LOAD1_PS: + ret = "MM_LOAD1_PS"; + break; + case IT_MM_LOAD_PS: + ret = "MM_LOAD_PS"; + break; + case IT_MM_LOADU_PS: + ret = "MM_LOADU_PS"; + break; + case IT_MM_LOAD_SS: + ret = "MM_LOAD_SS"; + break; + case IT_MM_CMPNEQ_PS: + ret = "MM_CMPNEQ_PS"; + break; + case IT_MM_ANDNOT_PS: + ret = "MM_ANDNOT_PS"; + break; + case IT_MM_ANDNOT_SI128: + ret = "MM_ANDNOT_SI128"; + break; + case IT_MM_AND_SI128: + ret = "MM_AND_SI128"; + break; + case IT_MM_AND_PS: + ret = "MM_AND_PS"; + break; + case IT_MM_OR_PS: + ret = "MM_OR_PS"; + break; + case IT_MM_XOR_PS: + ret = "MM_XOR_PS"; + break; + case IT_MM_OR_SI128: + ret = "MM_OR_SI128"; + break; + case IT_MM_XOR_SI128: + ret = "MM_XOR_SI128"; + break; + case IT_MM_MOVEMASK_PS: + ret = "MM_MOVEMASK_PS"; + break; + case IT_MM_SHUFFLE_EPI32_DEFAULT: + ret = "MM_SHUFFLE_EPI32_DEFAULT"; + break; + case IT_MM_SHUFFLE_EPI32_FUNCTION: + ret = "MM_SHUFFLE_EPI32_FUNCTION"; + break; + case IT_MM_SHUFFLE_EPI32_SPLAT: + ret = "MM_SHUFFLE_EPI32_SPLAT"; + break; + case IT_MM_SHUFFLE_EPI32_SINGLE: + ret = "MM_SHUFFLE_EPI32_SINGLE"; + break; + case IT_MM_SHUFFLEHI_EPI16_FUNCTION: + ret = "MM_SHUFFLEHI_EPI16_FUNCTION"; + break; + case IT_MM_MOVEMASK_EPI8: + ret = "MM_MOVEMASK_EPI8"; + break; + case IT_MM_SUB_PS: + ret = "MM_SUB_PS"; + break; + case IT_MM_SUB_EPI32: + ret = "MM_SUB_EPI32"; + break; + case IT_MM_ADD_PS: + ret = "MM_ADD_PS"; + break; + case IT_MM_ADD_SS: + ret = "MM_ADD_SS"; + break; + case IT_MM_ADD_EPI32: + ret = "MM_ADD_EPI32"; + break; + case IT_MM_ADD_EPI16: + ret = "MM_ADD_EPI16"; + break; + case IT_MM_MULLO_EPI16: + ret = "MM_MULLO_EPI16"; + break; + case IT_MM_MULLO_EPI32: + ret = "MM_MULLO_EPI32"; + break; + case IT_MM_MUL_PS: + ret = "MM_MUL_PS"; + break; + case IT_MM_DIV_PS: + ret = "MM_DIV_PS"; + break; + case IT_MM_DIV_SS: + ret = "MM_DIV_SS"; + break; + case IT_MM_RCP_PS: + ret = "MM_RCP_PS"; + break; + case IT_MM_SQRT_PS: + ret = "MM_SQRT_PS"; + break; + case IT_MM_SQRT_SS: + ret = "MM_SQRT_SS"; + break; + case IT_MM_RSQRT_PS: + ret = "MM_RSQRT_PS"; + break; + case IT_MM_MAX_PS: + ret = "MM_MAX_PS"; + break; + case IT_MM_MIN_PS: + ret = "MM_MIN_PS"; + break; + case IT_MM_MAX_SS: + ret = "MM_MAX_SS"; + break; + case IT_MM_MIN_SS: + ret = "MM_MIN_SS"; + break; + case IT_MM_MIN_EPI16: + ret = "MM_MIN_EPI16"; + break; + case IT_MM_MAX_EPI32: + ret = "MM_MAX_EPI32"; + break; + case IT_MM_MIN_EPI32: + ret = "MM_MIN_EPI32"; + break; + case IT_MM_MULHI_EPI16: + ret = "MM_MULHI_EPI16"; + break; + case IT_MM_HADD_PS: + ret = "MM_HADD_PS"; + break; + case IT_MM_CMPLT_PS: + ret = "MM_CMPLT_PS"; + break; + case IT_MM_CMPGT_PS: + ret = "MM_CMPGT_PS"; + break; + case IT_MM_CMPGE_PS: + ret = "MM_CMPGE_PS"; + break; + case IT_MM_CMPLE_PS: + ret = "MM_CMPLE_PS"; + break; + case IT_MM_CMPEQ_PS: + ret = "MM_CMPEQ_PS"; + break; + case IT_MM_CMPLT_EPI32: + ret = "MM_CMPLT_EPI32"; + break; + case IT_MM_CMPGT_EPI32: + ret = "MM_CMPGT_EPI32"; + break; + case IT_MM_CMPORD_PS: + ret = "MM_CMPORD_PS"; + break; + case IT_MM_COMILT_SS: + ret = "MM_COMILT_SS"; + break; + case IT_MM_COMIGT_SS: + ret = "MM_COMIGT_SS"; + break; + case IT_MM_COMILE_SS: + ret = "MM_COMILE_SS"; + break; + case IT_MM_COMIGE_SS: + ret = "MM_COMIGE_SS"; + break; + case IT_MM_COMIEQ_SS: + ret = "MM_COMIEQ_SS"; + break; + case IT_MM_COMINEQ_SS: + ret = "MM_COMINEQ_SS"; + break; + case IT_MM_CVTTPS_EPI32: + ret = "MM_CVTTPS_EPI32"; + break; + case IT_MM_CVTEPI32_PS: + ret = "MM_CVTEPI32_PS"; + break; + case IT_MM_CVTPS_EPI32: + ret = "MM_CVTPS_EPI32"; + break; + case IT_MM_CVTSI128_SI32: + ret = "MM_CVTSI128_SI32"; + break; + case IT_MM_CVTSI32_SI128: + ret = "MM_CVTSI32_SI128"; + break; + case IT_MM_CASTPS_SI128: + ret = "MM_CASTPS_SI128"; + break; + case IT_MM_CASTSI128_PS: + ret = "MM_CASTSI128_PS"; + break; + case IT_MM_LOAD_SI128: + ret = "MM_LOAD_SI128"; + break; + case IT_MM_PACKS_EPI16: + ret = "MM_PACKS_EPI16"; + break; + case IT_MM_PACKUS_EPI16: + ret = "MM_PACKUS_EPI16"; + break; + case IT_MM_PACKS_EPI32: + ret = "MM_PACKS_EPI32"; + break; + case IT_MM_UNPACKLO_EPI8: + ret = "MM_UNPACKLO_EPI8"; + break; + case IT_MM_UNPACKLO_EPI16: + ret = "MM_UNPACKLO_EPI16"; + break; + case IT_MM_UNPACKLO_EPI32: + ret = "MM_UNPACKLO_EPI32"; + break; + case IT_MM_UNPACKLO_PS: + ret = "MM_UNPACKLO_PS"; + break; + case IT_MM_UNPACKHI_PS: + ret = "MM_UNPACKHI_PS"; + break; + case IT_MM_UNPACKHI_EPI8: + ret = "MM_UNPACKHI_EPI8"; + break; + case IT_MM_UNPACKHI_EPI16: + ret = "MM_UNPACKHI_EPI16"; + break; + case IT_MM_UNPACKHI_EPI32: + ret = "MM_UNPACKHI_EPI32"; + break; + case IT_MM_SFENCE: + ret = "MM_SFENCE"; + break; + case IT_MM_STREAM_SI128: + ret = "MM_STREAM_SI128"; + break; + case IT_MM_CLFLUSH: + ret = "MM_CLFLUSH"; + break; + case IT_MM_SHUFFLE_PS: + ret = "MM_SHUFFLE_PS"; + break; + } + + + return ret; + } + + +#define ASSERT_RETURN(x) if ( !(x) ) return false; + + static float ranf(void) + { + uint32_t ir = rand() & 0x7FFF; + return (float)ir*(1.0f / 32768.0f); + } + + static float ranf(float low, float high) + { + return ranf()*(high - low) + low; + } + + bool validateInt(__m128i a, int32_t x, int32_t y, int32_t z, int32_t w) + { + const int32_t *t = (const int32_t *)&a; + ASSERT_RETURN(t[3] == x); + ASSERT_RETURN(t[2] == y); + ASSERT_RETURN(t[1] == z); + ASSERT_RETURN(t[0] == w); + return true; + } + + bool validateInt16(__m128i a, int16_t d0, int16_t d1, int16_t d2, int16_t d3, int16_t d4, int16_t d5, int16_t d6, int16_t d7) + { + const int16_t *t = (const int16_t *)&a; + ASSERT_RETURN(t[0] == d0); + ASSERT_RETURN(t[1] == d1); + ASSERT_RETURN(t[2] == d2); + ASSERT_RETURN(t[3] == d3); + ASSERT_RETURN(t[4] == d4); + ASSERT_RETURN(t[5] == d5); + ASSERT_RETURN(t[6] == d6); + ASSERT_RETURN(t[7] == d7); + return true; + } + + bool validateSingleFloatPair(float a, float b) + { + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + return (*ia) == (*ib) ? true : false; // We do an integer (binary) compare rather than a floating point compare to take nands and infinities into account as well. + } + + bool validateFloat(__m128 a, float x, float y, float z, float w) + { + const float *t = (const float *)&a; + ASSERT_RETURN(validateSingleFloatPair(t[3],x)); + ASSERT_RETURN(validateSingleFloatPair(t[2],y)); + ASSERT_RETURN(validateSingleFloatPair(t[1],z)); + ASSERT_RETURN(validateSingleFloatPair(t[0],w)); + return true; + } + + bool validateFloatEpsilon(__m128 a, float x, float y, float z, float w, float epsilon) + { + const float *t = (const float *)&a; + float dx = fabsf(t[3] - x); + float dy = fabsf(t[2] - y); + float dz = fabsf(t[1] - z); + float dw = fabsf(t[0] - w); + ASSERT_RETURN(dx < epsilon); + ASSERT_RETURN(dy < epsilon); + ASSERT_RETURN(dz < epsilon); + ASSERT_RETURN(dw < epsilon); + return true; + } + + + bool test_mm_setzero_si128(void) + { + __m128i a = _mm_setzero_si128(); + return validateInt(a, 0, 0, 0, 0); + } + + bool test_mm_setzero_ps(void) + { + __m128 a = _mm_setzero_ps(); + return validateFloat(a, 0, 0, 0, 0); + } + + bool test_mm_set1_ps(float w) + { + __m128 a = _mm_set1_ps(w); + return validateFloat(a, w, w, w, w); + } + + bool test_mm_set_ps(float x, float y, float z, float w) + { + __m128 a = _mm_set_ps(x, y, z, w); + return validateFloat(a, x, y, z, w); + } + + bool test_mm_set1_epi32(int32_t i) + { + __m128i a = _mm_set1_epi32(i); + return validateInt(a, i, i, i, i); + } + + bool testret_mm_set_epi32(int32_t x, int32_t y, int32_t z, int32_t w) + { + __m128i a = _mm_set_epi32(x, y, z, w); + return validateInt(a, x, y, z, w); + } + + __m128i test_mm_set_epi32(int32_t x, int32_t y, int32_t z, int32_t w) + { + __m128i a = _mm_set_epi32(x, y, z, w); + validateInt(a, x, y, z, w); + return a; + } + + bool test_mm_store_ps(float *p, float x, float y, float z, float w) + { + __m128 a = _mm_set_ps(x, y, z, w); + _mm_store_ps(p, a); + ASSERT_RETURN(p[0] == w); + ASSERT_RETURN(p[1] == z); + ASSERT_RETURN(p[2] == y); + ASSERT_RETURN(p[3] == x); + return true; + } + + bool test_mm_store_ps(int32_t *p, int32_t x, int32_t y, int32_t z, int32_t w) + { + __m128i a = _mm_set_epi32(x, y, z, w); + _mm_store_ps((float *)p, *(const __m128 *)&a); + ASSERT_RETURN(p[0] == w); + ASSERT_RETURN(p[1] == z); + ASSERT_RETURN(p[2] == y); + ASSERT_RETURN(p[3] == x); + return true; + } + + bool test_mm_load1_ps(const float *p) + { + __m128 a = _mm_load1_ps(p); + return validateFloat(a, p[0], p[0], p[0], p[0]); + } + + __m128 test_mm_load_ps(const float *p) + { + __m128 a = _mm_load_ps(p); + validateFloat(a, p[3], p[2], p[1], p[0]); + return a; + } + + __m128i test_mm_load_ps(const int32_t *p) + { + __m128 a = _mm_load_ps((const float *)p); + __m128i ia = *(const __m128i *)&a; + validateInt(ia, p[3], p[2], p[1], p[0]); + return ia; + } + + + //r0 := ~a0 & b0 + //r1 := ~a1 & b1 + //r2 := ~a2 & b2 + //r3 := ~a3 & b3 + bool test_mm_andnot_ps(const float *_a, const float *_b) + { + bool r = false; + + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + __m128 c = _mm_andnot_ps(a, b); + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ~ia[0] & ib[0]; + uint32_t r1 = ~ia[1] & ib[1]; + uint32_t r2 = ~ia[2] & ib[2]; + uint32_t r3 = ~ia[3] & ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + r = validateInt(*(const __m128i *)&c, r3, r2, r1, r0); + if (r) + { + r = validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + bool test_mm_and_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + __m128 c = _mm_and_ps(a, b); + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ia[0] & ib[0]; + uint32_t r1 = ia[1] & ib[1]; + uint32_t r2 = ia[2] & ib[2]; + uint32_t r3 = ia[3] & ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + bool r = validateInt(*(const __m128i *)&c, r3, r2, r1, r0); + if (r) + { + r = validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + bool test_mm_or_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + __m128 c = _mm_or_ps(a, b); + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ia[0] | ib[0]; + uint32_t r1 = ia[1] | ib[1]; + uint32_t r2 = ia[2] | ib[2]; + uint32_t r3 = ia[3] | ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + bool r = validateInt(*(const __m128i *)&c, r3, r2, r1, r0); + if (r) + { + r = validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + + bool test_mm_andnot_si128(const int32_t *_a, const int32_t *_b) + { + bool r = true; + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + __m128 fc = _mm_andnot_ps(*(const __m128 *)&a, *(const __m128 *)&b); + __m128i c = *(const __m128i *)&fc; + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ~ia[0] & ib[0]; + uint32_t r1 = ~ia[1] & ib[1]; + uint32_t r2 = ~ia[2] & ib[2]; + uint32_t r3 = ~ia[3] & ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + r = validateInt(c, r3, r2, r1, r0); + if (r) + { + validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + bool test_mm_and_si128(const int32_t *_a, const int32_t *_b) + { + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + __m128 fc = _mm_and_ps(*(const __m128 *)&a, *(const __m128 *)&b); + __m128i c = *(const __m128i *)&fc; + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ia[0] & ib[0]; + uint32_t r1 = ia[1] & ib[1]; + uint32_t r2 = ia[2] & ib[2]; + uint32_t r3 = ia[3] & ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + bool r = validateInt(c, r3, r2, r1, r0); + if (r) + { + r = validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + bool test_mm_or_si128(const int32_t *_a, const int32_t *_b) + { + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + __m128 fc = _mm_or_ps(*(const __m128 *)&a, *(const __m128 *)&b); + __m128i c = *(const __m128i *)&fc; + // now for the assertion... + const uint32_t *ia = (const uint32_t *)&a; + const uint32_t *ib = (const uint32_t *)&b; + uint32_t r0 = ia[0] | ib[0]; + uint32_t r1 = ia[1] | ib[1]; + uint32_t r2 = ia[2] | ib[2]; + uint32_t r3 = ia[3] | ib[3]; + __m128i ret = test_mm_set_epi32(r3, r2, r1, r0); + bool r = validateInt(c, r3, r2, r1, r0); + if (r) + { + r = validateInt(ret, r3, r2, r1, r0); + } + return r; + } + + bool test_mm_movemask_ps(const float *p) + { + int ret = 0; + + const uint32_t *ip = (const uint32_t *)p; + if (ip[0] & 0x80000000) + { + ret |= 1; + } + if (ip[1] & 0x80000000) + { + ret |= 2; + } + if (ip[2] & 0x80000000) + { + ret |= 4; + } + if (ip[3] & 0x80000000) + { + ret |= 8; + } + __m128 a = test_mm_load_ps(p); + int val = _mm_movemask_ps(a); + return val == ret ? true : false; + } + + // Note, NEON does not have a general purpose shuffled command like SSE. + // When invoking this method, there is special code for a number of the most + // common shuffle permutations + bool test_mm_shuffle_ps(const float *_a, const float *_b) + { + bool isValid = true; + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + // Test many permutations of the shuffle operation, including all permutations which have an optmized/custom implementation + __m128 ret; + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(0, 1, 2, 3)); + if (!validateFloat(ret, _b[0], _b[1], _a[2], _a[3])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(3, 2, 1, 0)); + if (!validateFloat(ret, _b[3], _b[2], _a[1], _a[0])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(0, 0, 1, 1)); + if (!validateFloat(ret, _b[0], _b[0], _a[1], _a[1])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(3, 1, 0, 2)); + if (!validateFloat(ret, _b[3], _b[1], _a[0], _a[2])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(1, 0, 3, 2)); + if (!validateFloat(ret, _b[1], _b[0], _a[3], _a[2])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(2, 3, 0, 1)); + if (!validateFloat(ret, _b[2], _b[3], _a[0], _a[1])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(0, 0, 2, 2)); + if (!validateFloat(ret, _b[0], _b[0], _a[2], _a[2])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(2, 2, 0, 0)); + if (!validateFloat(ret, _b[2], _b[2], _a[0], _a[0])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(3, 2, 0, 2)); + if (!validateFloat(ret, _b[3], _b[2], _a[0], _a[2])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(1, 1, 3, 3)); + if (!validateFloat(ret, _b[1], _b[1], _a[3], _a[3])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(2, 0, 1, 0)); + if (!validateFloat(ret, _b[2], _b[0], _a[1], _a[0])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(2, 0, 0, 1)); + if (!validateFloat(ret, _b[2], _b[0], _a[0], _a[1])) + { + isValid = false; + } + ret = _mm_shuffle_ps(a, b, _MM_SHUFFLE(2, 0, 3, 2)); + if (!validateFloat(ret, _b[2], _b[0], _a[3], _a[2])) + { + isValid = false; + } + + return isValid; + } + + bool test_mm_movemask_epi8(const int32_t *_a) + { + __m128i a = test_mm_load_ps(_a); + + const uint8_t *ip = (const uint8_t *)_a; + int ret = 0; + uint32_t mask = 1; + for (uint32_t i = 0; i < 16; i++) + { + if (ip[i] & 0x80) + { + ret |= mask; + } + mask = mask << 1; + } + int test = _mm_movemask_epi8(a); + ASSERT_RETURN(test == ret); + return true; + } + + bool test_mm_sub_ps(const float *_a, const float *_b) + { + float dx = _a[0] - _b[0]; + float dy = _a[1] - _b[1]; + float dz = _a[2] - _b[2]; + float dw = _a[3] - _b[3]; + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + __m128 c = _mm_sub_ps(a, b); + return validateFloat(c, dw, dz, dy, dx); + } + + bool test_mm_sub_epi32(const int32_t *_a, const int32_t *_b) + { + int32_t dx = _a[0] - _b[0]; + int32_t dy = _a[1] - _b[1]; + int32_t dz = _a[2] - _b[2]; + int32_t dw = _a[3] - _b[3]; + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + + __m128i c = _mm_sub_epi32(a, b); + return validateInt(c, dw, dz, dy, dx); + } + + bool test_mm_add_ps(const float *_a, const float *_b) + { + float dx = _a[0] + _b[0]; + float dy = _a[1] + _b[1]; + float dz = _a[2] + _b[2]; + float dw = _a[3] + _b[3]; + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + __m128 c = _mm_add_ps(a, b); + return validateFloat(c, dw, dz, dy, dx); + } + + bool test_mm_add_epi32(const int32_t *_a, const int32_t *_b) + { + int32_t dx = _a[0] + _b[0]; + int32_t dy = _a[1] + _b[1]; + int32_t dz = _a[2] + _b[2]; + int32_t dw = _a[3] + _b[3]; + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + + __m128i c = _mm_add_epi32(a, b); + return validateInt(c, dw, dz, dy, dx); + } + + bool test_mm_mullo_epi16(const int16_t *_a, const int16_t *_b) + { + int16_t d0 = _a[0] * _b[0]; + int16_t d1 = _a[1] * _b[1]; + int16_t d2 = _a[2] * _b[2]; + int16_t d3 = _a[3] * _b[3]; + int16_t d4 = _a[4] * _b[4]; + int16_t d5 = _a[5] * _b[5]; + int16_t d6 = _a[6] * _b[6]; + int16_t d7 = _a[7] * _b[7]; + + __m128i a = test_mm_load_ps((const int32_t *)_a); + __m128i b = test_mm_load_ps((const int32_t *)_b); + + __m128i c = _mm_mullo_epi16(a, b); + return validateInt16(c, d0, d1, d2, d3, d4, d5, d6, d7); + } + + bool test_mm_mul_ps(const float *_a, const float *_b) + { + float dx = _a[0] * _b[0]; + float dy = _a[1] * _b[1]; + float dz = _a[2] * _b[2]; + float dw = _a[3] * _b[3]; + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + __m128 c = _mm_mul_ps(a, b); + return validateFloat(c, dw, dz, dy, dx); + } + + bool test_mm_rcp_ps(const float *_a) + { + float dx = 1.0f / _a[0]; + float dy = 1.0f / _a[1]; + float dz = 1.0f / _a[2]; + float dw = 1.0f / _a[3]; + __m128 a = test_mm_load_ps(_a); + __m128 c = _mm_rcp_ps(a); + return validateFloatEpsilon(c, dw, dz, dy, dx, 300.0f); + } + + bool test_mm_max_ps(const float *_a, const float *_b) + { + float c[4]; + + c[0] = _a[0] > _b[0] ? _a[0] : _b[0]; + c[1] = _a[1] > _b[1] ? _a[1] : _b[1]; + c[2] = _a[2] > _b[2] ? _a[2] : _b[2]; + c[3] = _a[3] > _b[3] ? _a[3] : _b[3]; + + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + __m128 ret = _mm_max_ps(a, b); + return validateFloat(ret, c[3], c[2], c[1], c[0]); + + } + + bool test_mm_min_ps(const float *_a, const float *_b) + { + float c[4]; + + c[0] = _a[0] < _b[0] ? _a[0] : _b[0]; + c[1] = _a[1] < _b[1] ? _a[1] : _b[1]; + c[2] = _a[2] < _b[2] ? _a[2] : _b[2]; + c[3] = _a[3] < _b[3] ? _a[3] : _b[3]; + + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + __m128 ret = _mm_min_ps(a, b); + return validateFloat(ret, c[3], c[2], c[1], c[0]); + } + + bool test_mm_min_epi16(const int16_t *_a, const int16_t *_b) + { + int16_t d0 = _a[0] < _b[0] ? _a[0] : _b[0]; + int16_t d1 = _a[1] < _b[1] ? _a[1] : _b[1]; + int16_t d2 = _a[2] < _b[2] ? _a[2] : _b[2]; + int16_t d3 = _a[3] < _b[3] ? _a[3] : _b[3]; + int16_t d4 = _a[4] < _b[4] ? _a[4] : _b[4]; + int16_t d5 = _a[5] < _b[5] ? _a[5] : _b[5]; + int16_t d6 = _a[6] < _b[6] ? _a[6] : _b[6]; + int16_t d7 = _a[7] < _b[7] ? _a[7] : _b[7]; + + __m128i a = test_mm_load_ps((const int32_t *)_a); + __m128i b = test_mm_load_ps((const int32_t *)_b); + + __m128i c = _mm_min_epi16(a, b); + return validateInt16(c, d0, d1, d2, d3, d4, d5, d6, d7); + } + + bool test_mm_mulhi_epi16(const int16_t *_a, const int16_t *_b) + { + int16_t d[8]; + for (uint32_t i = 0; i < 8; i++) + { + int32_t m = (int32_t)_a[i] * (int32_t)_b[i]; + d[i] = (int16_t)(m >> 16); + } + + __m128i a = test_mm_load_ps((const int32_t *)_a); + __m128i b = test_mm_load_ps((const int32_t *)_b); + + __m128i c = _mm_mulhi_epi16(a, b); + return validateInt16(c, d[0], d[1], d[2], d[3], d[4], d[5], d[6], d[7]); + } + + bool test_mm_cmplt_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] < _b[0] ? -1 : 0; + result[1] = _a[1] < _b[1] ? -1 : 0; + result[2] = _a[2] < _b[2] ? -1 : 0; + result[3] = _a[3] < _b[3] ? -1 : 0; + + __m128 ret = _mm_cmplt_ps(a, b); + __m128i iret = *(const __m128i *)&ret; + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + bool test_mm_cmpgt_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] > _b[0] ? -1 : 0; + result[1] = _a[1] > _b[1] ? -1 : 0; + result[2] = _a[2] > _b[2] ? -1 : 0; + result[3] = _a[3] > _b[3] ? -1 : 0; + + __m128 ret = _mm_cmpgt_ps(a, b); + __m128i iret = *(const __m128i *)&ret; + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + bool test_mm_cmpge_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] >= _b[0] ? -1 : 0; + result[1] = _a[1] >= _b[1] ? -1 : 0; + result[2] = _a[2] >= _b[2] ? -1 : 0; + result[3] = _a[3] >= _b[3] ? -1 : 0; + + __m128 ret = _mm_cmpge_ps(a, b); + __m128i iret = *(const __m128i *)&ret; + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + bool test_mm_cmple_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] <= _b[0] ? -1 : 0; + result[1] = _a[1] <= _b[1] ? -1 : 0; + result[2] = _a[2] <= _b[2] ? -1 : 0; + result[3] = _a[3] <= _b[3] ? -1 : 0; + + __m128 ret = _mm_cmple_ps(a, b); + __m128i iret = *(const __m128i *)&ret; + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + bool test_mm_cmpeq_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] == _b[0] ? -1 : 0; + result[1] = _a[1] == _b[1] ? -1 : 0; + result[2] = _a[2] == _b[2] ? -1 : 0; + result[3] = _a[3] == _b[3] ? -1 : 0; + + __m128 ret = _mm_cmpeq_ps(a, b); + __m128i iret = *(const __m128i *)&ret; + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + + bool test_mm_cmplt_epi32(const int32_t *_a, const int32_t *_b) + { + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + + int32_t result[4]; + result[0] = _a[0] < _b[0] ? -1 : 0; + result[1] = _a[1] < _b[1] ? -1 : 0; + result[2] = _a[2] < _b[2] ? -1 : 0; + result[3] = _a[3] < _b[3] ? -1 : 0; + + __m128i iret = _mm_cmplt_epi32(a, b); + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + bool test_mm_cmpgt_epi32(const int32_t *_a, const int32_t *_b) + { + __m128i a = test_mm_load_ps(_a); + __m128i b = test_mm_load_ps(_b); + + int32_t result[4]; + + result[0] = _a[0] > _b[0] ? -1 : 0; + result[1] = _a[1] > _b[1] ? -1 : 0; + result[2] = _a[2] > _b[2] ? -1 : 0; + result[3] = _a[3] > _b[3] ? -1 : 0; + + __m128i iret = _mm_cmpgt_epi32(a, b); + return validateInt(iret, result[3], result[2], result[1], result[0]); + } + + + + float compord(float a, float b) + { + float ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if ( !isNANA && !isNANB) + { + ret = getNAN(); + } + else + { + ret = 0.0f; + } + return ret; + } + + bool test_mm_cmpord_ps(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + float result[4]; + + for (uint32_t i = 0; i < 4; i++) + { + result[i] = compord(_a[i], _b[i]); + } + + __m128 ret = _mm_cmpord_ps(a, b); + + return validateFloat(ret, result[3], result[2], result[1], result[0]); + } +//******************************************** + int32_t comilt_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a < b ? 1 : 0; + } + else + { + ret = 0; // **NOTE** The documentation on MSDN is in error! The actual hardware returns a 0, not a 1 if either of the values is a NAN! + } + return ret; + } + + + bool test_mm_comilt_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + + int32_t result = comilt_ss(_a[0], _b[0]); + + int32_t ret = _mm_comilt_ss(a, b); + + return result == ret ? true : false; + } +//******************************************** + +//******************************************** + int32_t comigt_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a > b ? 1 : 0; + } + else + { + ret = 0; // **NOTE** The documentation on MSDN is in error! The actual hardware returns a 0, not a 1 if either of the values is a NAN! + } + return ret; + } + + bool test_mm_comigt_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + + int32_t result = comigt_ss(_a[0], _b[0]); + + int32_t ret = _mm_comigt_ss(a, b); + + return result == ret ? true : false; + } +//******************************************** + +//******************************************** + int32_t comile_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a <= b ? 1 : 0; + } + else + { + ret = 0; // **NOTE** The documentation on MSDN is in error! The actual hardware returns a 0, not a 1 if either of the values is a NAN! + } + return ret; + } + + bool test_mm_comile_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + + int32_t result = comile_ss(_a[0], _b[0]); + + int32_t ret = _mm_comile_ss(a, b); + + return result == ret ? true : false; + } +//******************************************** + +//******************************************** + int32_t comige_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a >= b ? 1 : 0; + } + else + { + ret = 0; // **NOTE** The documentation on MSDN is in error! The actual hardware returns a 0, not a 1 if either of the values is a NAN! + } + return ret; + } + + bool test_mm_comige_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + + int32_t result = comige_ss(_a[0], _b[0]); + + int32_t ret = _mm_comige_ss(a, b); + + return result == ret ? true : false; + } + //******************************************** + + //******************************************** + int32_t comieq_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a == b ? 1 : 0; + } + else + { + ret = 0; // **NOTE** The documentation on MSDN is in error! The actual hardware returns a 0, not a 1 if either of the values is a NAN! + } + return ret; + } + + bool test_mm_comieq_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + int32_t result = comieq_ss(_a[0], _b[0]); + + int32_t ret = _mm_comieq_ss(a, b); + + return result == ret ? true : false; + } + //******************************************** + + + //******************************************** + int32_t comineq_ss(float a, float b) + { + int32_t ret; + + bool isNANA = isNAN(a); + bool isNANB = isNAN(b); + if (!isNANA && !isNANB) + { + ret = a != b ? 1 : 0; + } + else + { + ret = 1; + } + return ret; + } + + bool test_mm_comineq_ss(const float *_a, const float *_b) + { + __m128 a = test_mm_load_ps(_a); + __m128 b = test_mm_load_ps(_b); + + + int32_t result = comineq_ss(_a[0], _b[0]); + + int32_t ret = _mm_comineq_ss(a, b); + + return result == ret ? true : false; + } + //******************************************** + + + + + bool test_mm_cvttps_epi32(const float *_a) + { + __m128 a = test_mm_load_ps(_a); + int32_t trun[4]; + for (uint32_t i = 0; i < 4; i++) + { + trun[i] = (int32_t)_a[i]; + } + + __m128i ret = _mm_cvttps_epi32(a); + return validateInt(ret, trun[3], trun[2], trun[1], trun[0]); + } + + bool test_mm_cvtepi32_ps(const int32_t *_a) + { + __m128i a = test_mm_load_ps(_a); + float trun[4]; + for (uint32_t i = 0; i < 4; i++) + { + trun[i] = (float)_a[i]; + } + + __m128 ret = _mm_cvtepi32_ps(a); + return validateFloat(ret, trun[3], trun[2], trun[1], trun[0]); + } + + // https://msdn.microsoft.com/en-us/library/xdc42k5e%28v=vs.90%29.aspx?f=255&MSPPError=-2147217396 + bool test_mm_cvtps_epi32(const float _a[4]) + { + __m128 a = test_mm_load_ps(_a); + int32_t trun[4]; + for (uint32_t i = 0; i < 4; i++) + { + trun[i] = (int32_t)(bankersRounding(_a[i])); + } + + __m128i ret = _mm_cvtps_epi32(a); + return validateInt(ret, trun[3], trun[2], trun[1], trun[0]); + } + + +// Try 10,000 random floating point values for each test we run +#define MAX_TEST_VALUE 10000 + + +class SSE2NEONTestImpl : public SSE2NEONTest +{ +public: + SSE2NEONTestImpl(void) + { + mTestFloatPointer1 = (float *)platformAlignedAlloc(sizeof(__m128)); + mTestFloatPointer2 = (float *)platformAlignedAlloc(sizeof(__m128)); + mTestIntPointer1 = (int32_t *)platformAlignedAlloc(sizeof(__m128i)); + mTestIntPointer2 = (int32_t *)platformAlignedAlloc(sizeof(__m128i)); + srand(0); + for (uint32_t i = 0; i < MAX_TEST_VALUE; i++) + { + mTestFloats[i] = ranf(-100000, 100000); + mTestInts[i] = (int32_t)ranf(-100000, 100000); + } + } + + virtual ~SSE2NEONTestImpl(void) + { + platformAlignedFree(mTestFloatPointer1); + platformAlignedFree(mTestFloatPointer2); + platformAlignedFree(mTestIntPointer1); + platformAlignedFree(mTestIntPointer2); + } + + bool loadTestFloatPointers(uint32_t i) + { + bool ret = test_mm_store_ps(mTestFloatPointer1, mTestFloats[i], mTestFloats[i + 1], mTestFloats[i + 2], mTestFloats[i + 3]); + if (ret) + { + ret = test_mm_store_ps(mTestFloatPointer2, mTestFloats[i + 4], mTestFloats[i + 5], mTestFloats[i + 6], mTestFloats[i + 7]); + } + return ret; + } + + bool loadTestIntPointers(uint32_t i) + { + bool ret = test_mm_store_ps(mTestIntPointer1, mTestInts[i], mTestInts[i + 1], mTestInts[i + 2], mTestInts[i + 3]); + if (ret) + { + ret = test_mm_store_ps(mTestIntPointer2, mTestInts[i + 4], mTestInts[i + 5], mTestInts[i + 6], mTestInts[i + 7]); + } + + return ret; + } + + bool runSingleTest(InstructionTest test,uint32_t i) + { + bool ret = true; + + switch ( test ) + { + case IT_MM_SETZERO_SI128: + ret = test_mm_setzero_si128(); + break; + case IT_MM_SETZERO_PS: + ret = test_mm_setzero_ps(); + break; + case IT_MM_SET1_PS: + ret = test_mm_set1_ps(mTestFloats[i]); + break; + case IT_MM_SET_PS1: + ret = test_mm_set1_ps(mTestFloats[i]); + break; + case IT_MM_SET_PS: + ret = test_mm_set_ps(mTestFloats[i], mTestFloats[i + 1], mTestFloats[i + 2], mTestFloats[i + 3]); + break; + case IT_MM_SET1_EPI32: + ret = test_mm_set1_epi32(mTestInts[i]); + break; + case IT_MM_SET_EPI32: + ret = testret_mm_set_epi32(mTestInts[i], mTestInts[i + 1], mTestInts[i + 2], mTestInts[i + 3]); + break; + case IT_MM_STORE_PS: + ret = test_mm_store_ps(mTestIntPointer1, mTestInts[i], mTestInts[i + 1], mTestInts[i + 2], mTestInts[i + 3]); + break; + case IT_MM_LOAD1_PS: + ret = test_mm_load1_ps(mTestFloatPointer1); + break; + case IT_MM_ANDNOT_PS: + ret = test_mm_andnot_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_ANDNOT_SI128: + ret = test_mm_andnot_si128(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_AND_SI128: + ret = test_mm_and_si128(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_AND_PS: + ret = test_mm_and_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_OR_PS: + ret = test_mm_or_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_OR_SI128: + ret = test_mm_or_si128(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_MOVEMASK_PS: + ret = test_mm_movemask_ps(mTestFloatPointer1); + break; + case IT_MM_SHUFFLE_PS: + ret = test_mm_shuffle_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_MOVEMASK_EPI8: + ret = test_mm_movemask_epi8(mTestIntPointer1); + break; + case IT_MM_SUB_PS: + ret = test_mm_sub_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_SUB_EPI32: + ret = test_mm_sub_epi32(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_ADD_PS: + ret = test_mm_add_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_ADD_EPI32: + ret = test_mm_add_epi32(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_MULLO_EPI16: + ret = test_mm_mullo_epi16((const int16_t *)mTestIntPointer1, (const int16_t *)mTestIntPointer2); + break; + case IT_MM_MUL_PS: + ret = test_mm_mul_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_RCP_PS: + ret = test_mm_rcp_ps(mTestFloatPointer1); + break; + case IT_MM_MAX_PS: + ret = test_mm_max_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_MIN_PS: + ret = test_mm_min_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_MIN_EPI16: + ret = test_mm_min_epi16((const int16_t *)mTestIntPointer1, (const int16_t *)mTestIntPointer2); + break; + case IT_MM_MULHI_EPI16: + ret = test_mm_mulhi_epi16((const int16_t *)mTestIntPointer1, (const int16_t *)mTestIntPointer2); + break; + case IT_MM_CMPLT_PS: + ret = test_mm_cmplt_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_CMPGT_PS: + ret = test_mm_cmpgt_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_CMPGE_PS: + ret = test_mm_cmpge_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_CMPLE_PS: + ret = test_mm_cmple_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_CMPEQ_PS: + ret = test_mm_cmpeq_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_CMPLT_EPI32: + ret = test_mm_cmplt_epi32(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_CMPGT_EPI32: + ret = test_mm_cmpgt_epi32(mTestIntPointer1, mTestIntPointer2); + break; + case IT_MM_CVTTPS_EPI32: + ret = test_mm_cvttps_epi32(mTestFloatPointer1); + break; + case IT_MM_CVTEPI32_PS: + ret = test_mm_cvtepi32_ps(mTestIntPointer1); + break; + case IT_MM_CVTPS_EPI32: + ret = test_mm_cvtps_epi32(mTestFloatPointer1); + break; + case IT_MM_CMPORD_PS: + ret = test_mm_cmpord_ps(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_COMILT_SS: + ret = test_mm_comilt_ss(mTestFloatPointer1, mTestFloatPointer2); + if (!ret) + { + // Note to Alexander, you need to fix this. + ret = test_mm_comilt_ss(mTestFloatPointer1, mTestFloatPointer2); + } + break; + case IT_MM_COMIGT_SS: + ret = test_mm_comigt_ss(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_COMILE_SS: + ret = test_mm_comile_ss(mTestFloatPointer1, mTestFloatPointer2); + if (!ret) + { + // Note to Alexander, you need to fix this. + ret = test_mm_comile_ss(mTestFloatPointer1, mTestFloatPointer2); + } + break; + case IT_MM_COMIGE_SS: + ret = test_mm_comige_ss(mTestFloatPointer1, mTestFloatPointer2); + break; + case IT_MM_COMIEQ_SS: + ret = test_mm_comieq_ss(mTestFloatPointer1, mTestFloatPointer2); + if (!ret) + { + // Note to Alexander, you need to fix this. + ret = test_mm_comieq_ss(mTestFloatPointer1, mTestFloatPointer2); + } + break; + case IT_MM_COMINEQ_SS: + ret = test_mm_comineq_ss(mTestFloatPointer1, mTestFloatPointer2); + if (!ret) + { + // Note to Alexander, you need to fix this. + ret = test_mm_comineq_ss(mTestFloatPointer1, mTestFloatPointer2); + } + break; + case IT_MM_HADD_PS: + ret = true; + break; + case IT_MM_MAX_EPI32: + ret = true; + break; + case IT_MM_MIN_EPI32: + ret = true; + break; + case IT_MM_MAX_SS: + ret = true; + break; + case IT_MM_MIN_SS: + ret = true; + break; + case IT_MM_SQRT_PS: + ret = true; + break; + case IT_MM_SQRT_SS: + ret = true; + break; + case IT_MM_RSQRT_PS: + ret = true; + break; + case IT_MM_DIV_PS: + ret = true; + break; + case IT_MM_DIV_SS: + ret = true; + break; + case IT_MM_MULLO_EPI32: + ret = true; + break; + case IT_MM_ADD_EPI16: + ret = true; + break; + case IT_MM_ADD_SS: + ret = true; + break; + case IT_MM_SHUFFLE_EPI32_DEFAULT: + ret = true; + break; + case IT_MM_SHUFFLE_EPI32_FUNCTION: + ret = true; + break; + case IT_MM_SHUFFLE_EPI32_SPLAT: + ret = true; + break; + case IT_MM_SHUFFLE_EPI32_SINGLE: + ret = true; + break; + case IT_MM_SHUFFLEHI_EPI16_FUNCTION: + ret = true; + break; + case IT_MM_XOR_SI128: + ret = true; + break; + case IT_MM_XOR_PS: + ret = true; + break; + case IT_MM_LOAD_PS: + ret = true; + break; + case IT_MM_LOADU_PS: + ret = true; + break; + case IT_MM_LOAD_SS: + ret = true; + break; + case IT_MM_CMPNEQ_PS: + ret = true; + break; + case IT_MM_STOREU_PS: + ret = true; + break; + case IT_MM_STORE_SI128: + ret = true; + break; + case IT_MM_STORE_SS: + ret = true; + break; + case IT_MM_STOREL_EPI64: + ret = true; + break; + case IT_MM_SETR_PS: + ret = true; + break; + case IT_MM_CVTSI128_SI32: + ret = true; + break; + case IT_MM_CVTSI32_SI128: + ret = true; + break; + case IT_MM_CASTPS_SI128: + ret = true; + break; + case IT_MM_CASTSI128_PS: + ret = true; + break; + case IT_MM_LOAD_SI128: + ret = true; + break; + case IT_MM_PACKS_EPI16: + ret = true; + break; + case IT_MM_PACKUS_EPI16: + ret = true; + break; + case IT_MM_PACKS_EPI32: + ret = true; + break; + case IT_MM_UNPACKLO_EPI8: + ret = true; + break; + case IT_MM_UNPACKLO_EPI16: + ret = true; + break; + case IT_MM_UNPACKLO_EPI32: + ret = true; + break; + case IT_MM_UNPACKLO_PS: + ret = true; + break; + case IT_MM_UNPACKHI_PS: + ret = true; + break; + case IT_MM_UNPACKHI_EPI8: + ret = true; + break; + case IT_MM_UNPACKHI_EPI16: + ret = true; + break; + case IT_MM_UNPACKHI_EPI32: + ret = true; + break; + case IT_MM_SFENCE: + ret = true; + break; + case IT_MM_STREAM_SI128: + ret = true; + break; + case IT_MM_CLFLUSH: + ret = true; + break; + } + + + return ret; + } + + + virtual bool runTest(InstructionTest test) + { + bool ret = true; + + + // Test a whole bunch of values + for (uint32_t i = 0; i < (MAX_TEST_VALUE - 8); i++) + { + ret = loadTestFloatPointers(i); // Load some random float values + if ( !ret ) break; // load test float failed?? + ret = loadTestIntPointers(i); // load some random int values + if ( !ret ) break; // load test float failed?? + // If we are testing the reciprocal, then invert the input data (easier for debugging) + if ( test == IT_MM_RCP_PS ) + { + + mTestFloatPointer1[0] = 1.0f / mTestFloatPointer1[0]; + mTestFloatPointer1[1] = 1.0f / mTestFloatPointer1[1]; + mTestFloatPointer1[2] = 1.0f / mTestFloatPointer1[2]; + mTestFloatPointer1[3] = 1.0f / mTestFloatPointer1[3]; + } + if ( test == IT_MM_CMPGE_PS || test == IT_MM_CMPLE_PS || test == IT_MM_CMPEQ_PS ) + { + // Make sure at least one value is the same. + mTestFloatPointer1[3] = mTestFloatPointer2[3]; + } + + if (test == IT_MM_CMPORD_PS || + test == IT_MM_COMILT_SS || + test == IT_MM_COMILE_SS || + test == IT_MM_COMIGE_SS || + test == IT_MM_COMIEQ_SS || + test == IT_MM_COMINEQ_SS || + test == IT_MM_COMIGT_SS) // if testing for NAN's make sure we have some nans + { + // One out of four times + // Make sure a couple of values have NANs for testing purposes + if ((rand() & 3) == 0) + { + uint32_t r1 = rand() & 3; + uint32_t r2 = rand() & 3; + mTestFloatPointer1[r1] = getNAN(); + mTestFloatPointer2[r2] = getNAN(); + } + } + + // one out of every random 64 times or so, mix up the test floats to contain some integer values + if ((rand() & 63) == 0) + { + uint32_t option = rand() & 3; + switch (option) + { + // All integers.. + case 0: + mTestFloatPointer1[0] = float(mTestIntPointer1[0]); + mTestFloatPointer1[1] = float(mTestIntPointer1[1]); + mTestFloatPointer1[2] = float(mTestIntPointer1[2]); + mTestFloatPointer1[3] = float(mTestIntPointer1[3]); + + mTestFloatPointer2[0] = float(mTestIntPointer2[0]); + mTestFloatPointer2[1] = float(mTestIntPointer2[1]); + mTestFloatPointer2[2] = float(mTestIntPointer2[2]); + mTestFloatPointer2[3] = float(mTestIntPointer2[3]); + + break; + case 1: + { + uint32_t index = rand() & 3; + mTestFloatPointer1[index] = float(mTestIntPointer1[index]); + index = rand() & 3; + mTestFloatPointer2[index] = float(mTestIntPointer2[index]); + } + break; + case 2: + { + uint32_t index1 = rand() & 3; + uint32_t index2 = rand() & 3; + mTestFloatPointer1[index1] = float(mTestIntPointer1[index1]); + mTestFloatPointer1[index2] = float(mTestIntPointer1[index2]); + index1 = rand() & 3; + index2 = rand() & 3; + mTestFloatPointer1[index1] = float(mTestIntPointer1[index1]); + mTestFloatPointer1[index2] = float(mTestIntPointer1[index2]); + } + break; + case 3: + mTestFloatPointer1[0] = float(mTestIntPointer1[0]); + mTestFloatPointer1[1] = float(mTestIntPointer1[1]); + mTestFloatPointer1[2] = float(mTestIntPointer1[2]); + mTestFloatPointer1[3] = float(mTestIntPointer1[3]); + break; + } + if ((rand() & 3) == 0) // one out of 4 times, make halves + { + for (uint32_t j = 0; j < 4; j++) + { + mTestFloatPointer1[j] *= 0.5f; + mTestFloatPointer2[j] *= 0.5f; + } + } + } +#if 0 + { + mTestFloatPointer1[0] = getNAN(); + mTestFloatPointer2[0] = getNAN(); + bool ok = test_mm_comilt_ss(mTestFloatPointer1, mTestFloatPointer1); + if (!ok) + { + printf("Debug me"); + } + } +#endif + ret = runSingleTest(test,i); + if ( !ret ) // the test failed... + { + // Set a breakpoint here if you want to step through the failure case in the debugger + ret = runSingleTest(test,i); + break; + } + } + return ret; + } + + virtual void release(void) + { + delete this; + } + + float *mTestFloatPointer1; + float *mTestFloatPointer2; + int32_t *mTestIntPointer1; + int32_t *mTestIntPointer2; + float mTestFloats[MAX_TEST_VALUE]; + int32_t mTestInts[MAX_TEST_VALUE]; +}; + +SSE2NEONTest *SSE2NEONTest::create(void) +{ + SSE2NEONTestImpl *st = new SSE2NEONTestImpl; + return static_cast(st); +} + +} // end of SSE2NEON namespace diff --git a/thirdparty/sse2neon/SSE2NEONTEST.h b/thirdparty/sse2neon/SSE2NEONTEST.h new file mode 100644 index 0000000..b80e415 --- /dev/null +++ b/thirdparty/sse2neon/SSE2NEONTEST.h @@ -0,0 +1,133 @@ +#ifndef SSE2NEONTEST_H +#define SSE2NEONTEST_H + +// SSE2NEONTEST performs a set of 'unit tests' making sure that each SSE call +// provides the output we expect. If this fires an assert, then something didn't match up. +namespace SSE2NEON +{ + +// Currently 39 SSE intrinsics have unit tests fully implemented and verified. +// There are an additional 56 intrinsics which do not yet have a unit +// test implementation and, therefore, should not be considered fully +// verified at this time. These will be implemented as soon as possible. +// Note: The way unit tests are implemented is that 10,000 random floating point +// and integer vec4 numbers are generated as sample data. +// +// A short C implementation of every intrinsic is implemented and compared to the +// actual expected results from the corresponding SSE intrinsic against all of the +// 10,000 randomized input vectors. +// When running on ARM, then the results are compared to the NEON approximate version. +enum InstructionTest +{ + IT_MM_SETZERO_SI128, // Unit test implemented and verified as fully working + IT_MM_SETZERO_PS, // Unit test implemented and verified as fully working + IT_MM_SET1_PS, // Unit test implemented and verified as fully working + IT_MM_SET_PS1, // Unit test implemented and verified as fully working + IT_MM_SET_PS, // Unit test implemented and verified as fully working + IT_MM_SET1_EPI32, // Unit test implemented and verified as fully working + IT_MM_SET_EPI32, // Unit test implemented and verified as fully working + IT_MM_STORE_PS, // Unit test implemented and verified as fully working + IT_MM_SHUFFLE_PS, // Unit test implemented and verified as fully working + IT_MM_LOAD1_PS, // Unit test implemented and verified as fully working + IT_MM_ANDNOT_PS, // Unit test implemented and verified as fully working + IT_MM_ANDNOT_SI128, // Unit test implemented and verified as fully working + IT_MM_AND_SI128, // Unit test implemented and verified as fully working + IT_MM_AND_PS, // Unit test implemented and verified as fully working + IT_MM_OR_PS, // Unit test implemented and verified as fully working + IT_MM_OR_SI128, // Unit test implemented and verified as fully working + IT_MM_MOVEMASK_PS, // Unit test implemented and verified as fully working + IT_MM_MOVEMASK_EPI8, // Unit test implemented and verified as fully working + IT_MM_SUB_PS, // Unit test implemented and verified as fully working + IT_MM_SUB_EPI32, // Unit test implemented and verified as fully working + IT_MM_ADD_PS, // Unit test implemented and verified as fully working + IT_MM_ADD_EPI32, // Unit test implemented and verified as fully working + IT_MM_MULLO_EPI16, // Unit test implemented and verified as fully working + IT_MM_MUL_PS, // Unit test implemented and verified as fully working + IT_MM_RCP_PS, // Unit test implemented and verified as fully working + IT_MM_MAX_PS, // Unit test implemented and verified as fully working + IT_MM_MIN_PS, // Unit test implemented and verified as fully working + IT_MM_MIN_EPI16, // Unit test implemented and verified as fully working + IT_MM_MULHI_EPI16, // Unit test implemented and verified as fully working + IT_MM_CMPLT_PS, // Unit test implemented and verified as fully working + IT_MM_CMPGT_PS, // Unit test implemented and verified as fully working + IT_MM_CMPGE_PS, // Unit test implemented and verified as fully working + IT_MM_CMPLE_PS, // Unit test implemented and verified as fully working + IT_MM_CMPEQ_PS, // Unit test implemented and verified as fully working + IT_MM_CMPLT_EPI32, // Unit test implemented and verified as fully working + IT_MM_CMPGT_EPI32, // Unit test implemented and verified as fully working + IT_MM_CVTTPS_EPI32, // Unit test implemented and verified as fully working + IT_MM_CVTEPI32_PS, // Unit test implemented and verified as fully working + IT_MM_CVTPS_EPI32, // Unit test implemented and verified as fully working + IT_MM_CVTSS_F32, // Unit test *not yet implemented* + IT_MM_SETR_PS, // Unit test *not yet implemented* + IT_MM_STOREU_PS, // Unit test *not yet implemented* + IT_MM_STORE_SI128, // Unit test *not yet implemented* + IT_MM_STORE_SS, // Unit test *not yet implemented* + IT_MM_STOREL_EPI64, // Unit test *not yet implemented* + IT_MM_LOAD_PS, // Unit test *not yet implemented* + IT_MM_LOADU_PS, // Unit test *not yet implemented* + IT_MM_LOAD_SS, // Unit test *not yet implemented* + IT_MM_CMPNEQ_PS, // Unit test *not yet implemented* + IT_MM_XOR_PS, // Unit test *not yet implemented* + IT_MM_XOR_SI128, // Unit test *not yet implemented* + IT_MM_SHUFFLE_EPI32_DEFAULT, // Unit test *not yet implemented* + IT_MM_SHUFFLE_EPI32_FUNCTION, // Unit test *not yet implemented* + IT_MM_SHUFFLE_EPI32_SPLAT, // Unit test *not yet implemented* + IT_MM_SHUFFLE_EPI32_SINGLE, // Unit test *not yet implemented* + IT_MM_SHUFFLEHI_EPI16_FUNCTION, // Unit test *not yet implemented* + IT_MM_ADD_SS, // Unit test *not yet implemented* + IT_MM_ADD_EPI16, // Unit test *not yet implemented* + IT_MM_MULLO_EPI32, // Unit test *not yet implemented* + IT_MM_DIV_PS, // Unit test *not yet implemented* + IT_MM_DIV_SS, // Unit test *not yet implemented* + IT_MM_SQRT_PS, // Unit test *not yet implemented* + IT_MM_SQRT_SS, // Unit test *not yet implemented* + IT_MM_RSQRT_PS, // Unit test *not yet implemented* + IT_MM_MAX_SS, // Unit test *not yet implemented* + IT_MM_MIN_SS, // Unit test *not yet implemented* + IT_MM_MAX_EPI32, // Unit test *not yet implemented* + IT_MM_MIN_EPI32, // Unit test *not yet implemented* + IT_MM_HADD_PS, // Unit test *not yet implemented* + IT_MM_CMPORD_PS, // Unit test *not yet implemented* + IT_MM_COMILT_SS, // Unit test *not yet implemented* + IT_MM_COMIGT_SS, // Unit test *not yet implemented* + IT_MM_COMILE_SS, // Unit test *not yet implemented* + IT_MM_COMIGE_SS, // Unit test *not yet implemented* + IT_MM_COMIEQ_SS, // Unit test *not yet implemented* + IT_MM_COMINEQ_SS, // Unit test *not yet implemented* + IT_MM_CVTSI128_SI32, // Unit test *not yet implemented* + IT_MM_CVTSI32_SI128, // Unit test *not yet implemented* + IT_MM_CASTPS_SI128, // Unit test *not yet implemented* + IT_MM_CASTSI128_PS, // Unit test *not yet implemented* + IT_MM_LOAD_SI128, // Unit test *not yet implemented* + IT_MM_PACKS_EPI16, // Unit test *not yet implemented* + IT_MM_PACKUS_EPI16, // Unit test *not yet implemented* + IT_MM_PACKS_EPI32, // Unit test *not yet implemented* + IT_MM_UNPACKLO_EPI8, // Unit test *not yet implemented* + IT_MM_UNPACKLO_EPI16, // Unit test *not yet implemented* + IT_MM_UNPACKLO_EPI32, // Unit test *not yet implemented* + IT_MM_UNPACKLO_PS, // Unit test *not yet implemented* + IT_MM_UNPACKHI_PS, // Unit test *not yet implemented* + IT_MM_UNPACKHI_EPI8, // Unit test *not yet implemented* + IT_MM_UNPACKHI_EPI16, // Unit test *not yet implemented* + IT_MM_UNPACKHI_EPI32, // Unit test *not yet implemented* + IT_MM_SFENCE, // Unit test *not yet implemented* + IT_MM_STREAM_SI128, // Unit test *not yet implemented* + IT_MM_CLFLUSH, // Unit test *not yet implemented* + IT_LAST +}; + +class SSE2NEONTest +{ +public: + static SSE2NEONTest* create(void); // create the test. + static const char *getInstructionTestString(InstructionTest test); + + // Run test of this instruction; return true if it passed, false if it failed + virtual bool runTest(InstructionTest test) = 0; + virtual void release(void) = 0; +}; + +} + +#endif diff --git a/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.sln b/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.sln new file mode 100644 index 0000000..654f78d --- /dev/null +++ b/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.sln @@ -0,0 +1,22 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 11 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSE2NEON", "SSE2NEON.vcxproj", "{4D22D468-6380-1EC4-4643-53D05B3CA4C5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug|Win32 = debug|Win32 + release|Win32 = release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|Win32.ActiveCfg = debug|Win32 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|Win32.Build.0 = debug|Win32 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|Win32.ActiveCfg = release|Win32 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|Win32.Build.0 = release|Win32 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddins) = postSolution + EndGlobalSection +EndGlobal diff --git a/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.vcxproj b/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.vcxproj new file mode 100644 index 0000000..1f0d58d --- /dev/null +++ b/thirdparty/sse2neon/compiler/VC11WIN32/SSE2NEON.vcxproj @@ -0,0 +1,141 @@ + + + + + debug + Win32 + + + release + Win32 + + + + title + + v110 + 11.0 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5} + + + + Application + false + MultiByte + v140 + + + Application + false + MultiByte + v140 + + + + + + + + + + + + ./../..\ + ./Win32/SSE2NEON/debug\ + .exe + SSE2NEON32DEBUG + AllRules.ruleset + + + + + + true + Fast + /W4 + Disabled + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;_DEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreadedDebug + NotUsing + + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON32DEBUG.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON32DEBUG.exe.pdb + true + $(OutDir)/SSE2NEON32DEBUG.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX86 + + + + + + + + ./../..\ + ./Win32/SSE2NEON/release\ + .exe + SSE2NEON32 + AllRules.ruleset + + + + + + true + Fast + /W4 + MaxSpeed + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;NDEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreaded + NotUsing + + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON32.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON32.exe.pdb + true + $(OutDir)/SSE2NEON32.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX86 + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.sln b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.sln new file mode 100644 index 0000000..0577352 --- /dev/null +++ b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.sln @@ -0,0 +1,22 @@ +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 11 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSE2NEON", "SSE2NEON.vcxproj", "{4D22D468-6380-1EC4-4643-53D05B3CA4C5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug|x64 = debug|x64 + release|x64 = release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|x64.ActiveCfg = debug|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|x64.Build.0 = debug|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|x64.ActiveCfg = release|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|x64.Build.0 = release|x64 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddins) = postSolution + EndGlobalSection +EndGlobal diff --git a/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj new file mode 100644 index 0000000..a58bc05 --- /dev/null +++ b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj @@ -0,0 +1,137 @@ + + + + + debug + x64 + + + release + x64 + + + + title + + v110 + 11.0 + + + + Application + false + MultiByte + v110 + + + Application + false + MultiByte + v110 + + + + + + + + + + + + ./../..\ + ./x64/SSE2NEON/debug\ + .exe + SSE2NEON64DEBUG + AllRules.ruleset + + + + + + true + Fast + /W4 + Disabled + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;_DEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreadedDebug + NotUsing + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON64DEBUG.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON64DEBUG.exe.pdb + true + $(OutDir)/SSE2NEON64DEBUG.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX64 + + + + + + + + ./../..\ + ./x64/SSE2NEON/release\ + .exe + SSE2NEON64 + AllRules.ruleset + + + + + + true + Fast + /W4 + MaxSpeed + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;NDEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreaded + NotUsing + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON64.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON64.exe.pdb + true + $(OutDir)/SSE2NEON64.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj.filters b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj.filters new file mode 100644 index 0000000..1941786 --- /dev/null +++ b/thirdparty/sse2neon/compiler/VC11WIN64/SSE2NEON.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + + + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + \ No newline at end of file diff --git a/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.sln b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.sln new file mode 100644 index 0000000..e7d25fe --- /dev/null +++ b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.sln @@ -0,0 +1,22 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SSE2NEON", "SSE2NEON.vcxproj", "{4D22D468-6380-1EC4-4643-53D05B3CA4C5}" + ProjectSection(ProjectDependencies) = postProject + EndProjectSection +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + debug|x64 = debug|x64 + release|x64 = release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|x64.ActiveCfg = debug|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.debug|x64.Build.0 = debug|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|x64.ActiveCfg = release|x64 + {4D22D468-6380-1EC4-4643-53D05B3CA4C5}.release|x64.Build.0 = release|x64 + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + EndGlobalSection + GlobalSection(ExtensibilityAddins) = postSolution + EndGlobalSection +EndGlobal diff --git a/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj new file mode 100644 index 0000000..cc9f023 --- /dev/null +++ b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj @@ -0,0 +1,131 @@ + + + + + debug + x64 + + + release + x64 + + + + + + + Application + false + MultiByte + + + Application + false + MultiByte + + + + + + + + + + + + ./../..\ + ./x64/SSE2NEON/debug\ + .exe + SSE2NEON64DEBUG + AllRules.ruleset + + + + + + true + Fast + /W4 + Disabled + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;_DEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreadedDebug + NotUsing + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON64DEBUG.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON64DEBUG.exe.pdb + true + $(OutDir)/SSE2NEON64DEBUG.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX64 + + + + + + + + ./../..\ + ./x64/SSE2NEON/release\ + .exe + SSE2NEON64 + AllRules.ruleset + + + + + + true + Fast + /W4 + MaxSpeed + ./../../config;%(AdditionalIncludeDirectories) + WIN32;_WINDOWS;UNICODE=1;_CRT_SECURE_NO_DEPRECATE;OPEN_SOURCE=1;NDEBUG;%(PreprocessorDefinitions) + Level3 + MultiThreaded + NotUsing + + ProgramDatabase + + + /DEBUG + %(AdditionalDependencies) + $(OutDir)SSE2NEON64.exe + %(AdditionalLibraryDirectories) + $(OutDir)/SSE2NEON64.exe.pdb + true + $(OutDir)/SSE2NEON64.exe.map + Console + $(OutDir)$(TargetName).lib + MachineX64 + + + + + + + + + + + + + + + + + + + + + + + diff --git a/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj.filters b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj.filters new file mode 100644 index 0000000..1941786 --- /dev/null +++ b/thirdparty/sse2neon/compiler/vc10win64/SSE2NEON.vcxproj.filters @@ -0,0 +1,27 @@ + + + + + + + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + SSE2NEON + + + \ No newline at end of file diff --git a/thirdparty/sse2neon/compiler/xpj/SSE2NEON.xpj b/thirdparty/sse2neon/compiler/xpj/SSE2NEON.xpj new file mode 100644 index 0000000..39f7e1a --- /dev/null +++ b/thirdparty/sse2neon/compiler/xpj/SSE2NEON.xpj @@ -0,0 +1,94 @@ + + + + + ../vc9win32 + ../vc10win32 + + ../vc9win64 + ../vc10win64 + + + + ../vc9win32 + ../vc10win32 + + ../vc9win64 + ../vc10win64 + + + *.h + *.cpp + *.c + + + + WIN32 + _WINDOWS + UNICODE=1 + _CRT_SECURE_NO_DEPRECATE + OPEN_SOURCE=1 + + /wd4996 + /NODEFAULTLIB:libcp.lib + + "../../config" + + + + + + + + + ../../ + SSE2NEON32DEBUG.exe + /fp:fast /W4 /WX /MTd /Zi + /DEBUG + + _DEBUG + + + + + + + ../../ + SSE2NEON32.exe + /fp:fast /WX /W4 /MT /Zi /O2 + /DEBUG + NDEBUG + + + + + + ../../ + SSE2NEON64DEBUG.exe + /fp:fast /W4 /WX /MTd /Zi + /DEBUG + + _DEBUG + + + + + + + ../../ + SSE2NEON64.exe + /fp:fast /WX /W4 /MT /Zi /O2 + /DEBUG + NDEBUG + + + + + + + + + + + + diff --git a/thirdparty/sse2neon/compiler/xpj/create_projects.cmd b/thirdparty/sse2neon/compiler/xpj/create_projects.cmd new file mode 100644 index 0000000..f7d0077 --- /dev/null +++ b/thirdparty/sse2neon/compiler/xpj/create_projects.cmd @@ -0,0 +1,17 @@ +@echo off + +set XPJ="xpj4.exe" + +%XPJ% -v 1 -t VC11 -p WIN32 -x SSE2NEON.xpj +%XPJ% -v 1 -t VC11 -p WIN64 -x SSE2NEON.xpj + +cd .. +cd vc11win64 + +goto cleanExit + +:pauseExit +pause + +:cleanExit + diff --git a/thirdparty/sse2neon/compiler/xpj/xpj4.exe b/thirdparty/sse2neon/compiler/xpj/xpj4.exe new file mode 100644 index 0000000..53e37c8 Binary files /dev/null and b/thirdparty/sse2neon/compiler/xpj/xpj4.exe differ diff --git a/thirdparty/sse2neon/main.cpp b/thirdparty/sse2neon/main.cpp new file mode 100644 index 0000000..94e5ac5 --- /dev/null +++ b/thirdparty/sse2neon/main.cpp @@ -0,0 +1,34 @@ +#include "SSE2NEONTEST.h" +#include +#include + +int main(int /*argc*/,const char ** /*argv*/) +{ + SSE2NEON::SSE2NEONTest *test = SSE2NEON::SSE2NEONTest::create(); + uint32_t passCount = 0; + uint32_t failedCount = 0; + for (uint32_t i = 0; i < SSE2NEON::IT_LAST; i++) + { + SSE2NEON::InstructionTest it = SSE2NEON::InstructionTest(i); + printf("Running Test %s\n", SSE2NEON::SSE2NEONTest::getInstructionTestString(it)); + bool ok = test->runTest(it); + // If the test fails, we will run it again so we can step into the debugger and figure out why! + if (!ok) + { + printf("**FAILURE** SSE2NEONTest %s", SSE2NEON::SSE2NEONTest::getInstructionTestString(it)); + // test->runTest(it); // Uncomment this to step through the code to find the failure case + } + if (ok) + { + passCount++; + } + else + { + failedCount++; + } + } + test->release(); + printf("SSE2NEONTest Complete: Passed %d tests : Failed %d\n", passCount, failedCount); + + return 0; +}