Adding as static rather than submodule
This commit is contained in:
parent
cc0ae6cc52
commit
f0c75e7416
@ -1 +0,0 @@
|
||||
Subproject commit d02ab0d290d000355d479903a20a82721f67d432
|
||||
53
Code/Duality_Technologies/GWAS/CMakeLists.txt
Normal file
53
Code/Duality_Technologies/GWAS/CMakeLists.txt
Normal file
@ -0,0 +1,53 @@
|
||||
cmake_minimum_required (VERSION 3.5.1)
|
||||
|
||||
project(demo CXX)
|
||||
# Common compiler options among built types
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20")
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -Wl,--allow-multiple-definition")
|
||||
set(CMAKE_CXX_STANDARD 20)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
set(CMAKE_CXX_EXTENSIONS OFF)
|
||||
|
||||
# Specific compiler options for Debug or Release builds
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -g -O0 -ggdb -Wall -fopenmp -pedantic")
|
||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO "${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -g -Wall -fopenmp -pedantic -O1")
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O1 -fopenmp")
|
||||
|
||||
find_package(Palisade REQUIRED PATHS ${CMAKE_CURRENT_SOURCE_DIR}/../PALISADE/)
|
||||
|
||||
set( CMAKE_CXX_FLAGS ${PALISADE_CXX_FLAGS} )
|
||||
set( CMAKE_EXE_LINKER_FLAGS ${PALISADE_EXE_LINKER_FLAGS} )
|
||||
|
||||
include_directories( ${OPENMP_INCLUDES} )
|
||||
|
||||
include_directories( ${PALISADE_INCLUDE} )
|
||||
include_directories( ${PALISADE_INCLUDE}/core )
|
||||
include_directories( ${PALISADE_INCLUDE}/pke )
|
||||
|
||||
#add_library(libplinkio SHARED IMPORTED)
|
||||
#set_target_properties(libplinkio PROPERTIES
|
||||
# IMPORTED_LOCATION "${CMAKE_SOURCE_DIR}/../../PLINK/libplinkio/install/lib/libplinkio.so"
|
||||
# INTERFACE_INCLUDE_DIRECTORIES "${CMAKE_SOURCE_DIR}/../../PLINK/libplinkio/install/include")
|
||||
|
||||
link_directories( ${PALISADE_LIBDIR} )
|
||||
link_directories( ${OPENMP_LIBRARIES} )
|
||||
link_directories( ${LIBPLINKIO_LIBDIR} )
|
||||
|
||||
link_libraries( ${PALISADE_LIBRARIES} )
|
||||
|
||||
find_package(MPI REQUIRED)
|
||||
include_directories(${MPI_CXX_INCLUDE_PATH})
|
||||
|
||||
find_package(Boost REQUIRED mpi serialization)
|
||||
include_directories(${Boost_INCLUDE_DIR})
|
||||
|
||||
file(GLOB mem_src "${CMAKE_SOURCE_DIR}/avail_mem.cpp")
|
||||
|
||||
### ADD YOUR EXECUTABLE(s) HERE
|
||||
### add_executable( EXECUTABLE-NAME SOURCES )
|
||||
###
|
||||
### EXAMPLE:
|
||||
#add_executable( demo-logistic demo-logistic.cpp )
|
||||
add_executable( demo-chi2 demo-chi2.cpp ${mem_src})
|
||||
target_link_libraries(demo-chi2 Boost::serialization Boost::mpi ${MPI_CXX_LIBRARIES}) #libplinkio)
|
||||
108
Code/Duality_Technologies/GWAS/LICENSE.md
Normal file
108
Code/Duality_Technologies/GWAS/LICENSE.md
Normal file
@ -0,0 +1,108 @@
|
||||
Copyright (c) 2020 Duality Technologies, Inc.
|
||||
Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License <https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode>
|
||||
See the LICENSE file for the full text of the license.
|
||||
If you share the Licensed Material (including in modified form) you must include the above attribution in the copy you share.
|
||||
|
||||
|
||||
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License
|
||||
By exercising the Licensed Rights (defined below), You accept and agree to be bound by the terms and conditions of this Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License ("Public License"). To the extent this Public License may be interpreted as a contract, You are granted the Licensed Rights in consideration of Your acceptance of these terms and conditions, and the Licensor grants You such rights in consideration of benefits the Licensor receives from making the Licensed Material available under these terms and conditions.
|
||||
|
||||
Section 1 – Definitions.
|
||||
|
||||
Adapted Material means material subject to Copyright and Similar Rights that is derived from or based upon the Licensed Material and in which the Licensed Material is translated, altered, arranged, transformed, or otherwise modified in a manner requiring permission under the Copyright and Similar Rights held by the Licensor. For purposes of this Public License, where the Licensed Material is a musical work, performance, or sound recording, Adapted Material is always produced where the Licensed Material is synched in timed relation with a moving image.
|
||||
Adapter's License means the license You apply to Your Copyright and Similar Rights in Your contributions to Adapted Material in accordance with the terms and conditions of this Public License.
|
||||
BY-NC-SA Compatible License means a license listed at creativecommons.org/compatiblelicenses, approved by Creative Commons as essentially the equivalent of this Public License.
|
||||
Copyright and Similar Rights means copyright and/or similar rights closely related to copyright including, without limitation, performance, broadcast, sound recording, and Sui Generis Database Rights, without regard to how the rights are labeled or categorized. For purposes of this Public License, the rights specified in Section 2(b)(1)-(2) are not Copyright and Similar Rights.
|
||||
Effective Technological Measures means those measures that, in the absence of proper authority, may not be circumvented under laws fulfilling obligations under Article 11 of the WIPO Copyright Treaty adopted on December 20, 1996, and/or similar international agreements.
|
||||
Exceptions and Limitations means fair use, fair dealing, and/or any other exception or limitation to Copyright and Similar Rights that applies to Your use of the Licensed Material.
|
||||
License Elements means the license attributes listed in the name of a Creative Commons Public License. The License Elements of this Public License are Attribution, NonCommercial, and ShareAlike.
|
||||
Licensed Material means the artistic or literary work, database, or other material to which the Licensor applied this Public License.
|
||||
Licensed Rights means the rights granted to You subject to the terms and conditions of this Public License, which are limited to all Copyright and Similar Rights that apply to Your use of the Licensed Material and that the Licensor has authority to license.
|
||||
Licensor means the individual(s) or entity(ies) granting rights under this Public License.
|
||||
NonCommercial means not primarily intended for or directed towards commercial advantage or monetary compensation. For purposes of this Public License, the exchange of the Licensed Material for other material subject to Copyright and Similar Rights by digital file-sharing or similar means is NonCommercial provided there is no payment of monetary compensation in connection with the exchange.
|
||||
Share means to provide material to the public by any means or process that requires permission under the Licensed Rights, such as reproduction, public display, public performance, distribution, dissemination, communication, or importation, and to make material available to the public including in ways that members of the public may access the material from a place and at a time individually chosen by them.
|
||||
Sui Generis Database Rights means rights other than copyright resulting from Directive 96/9/EC of the European Parliament and of the Council of 11 March 1996 on the legal protection of databases, as amended and/or succeeded, as well as other essentially equivalent rights anywhere in the world.
|
||||
You means the individual or entity exercising the Licensed Rights under this Public License. Your has a corresponding meaning.
|
||||
|
||||
Section 2 – Scope.
|
||||
|
||||
License grant.
|
||||
Subject to the terms and conditions of this Public License, the Licensor hereby grants You a worldwide, royalty-free, non-sublicensable, non-exclusive, irrevocable license to exercise the Licensed Rights in the Licensed Material to:
|
||||
reproduce and Share the Licensed Material, in whole or in part, for NonCommercial purposes only; and
|
||||
produce, reproduce, and Share Adapted Material for NonCommercial purposes only.
|
||||
Exceptions and Limitations. For the avoidance of doubt, where Exceptions and Limitations apply to Your use, this Public License does not apply, and You do not need to comply with its terms and conditions.
|
||||
Term. The term of this Public License is specified in Section 6(a).
|
||||
Media and formats; technical modifications allowed. The Licensor authorizes You to exercise the Licensed Rights in all media and formats whether now known or hereafter created, and to make technical modifications necessary to do so. The Licensor waives and/or agrees not to assert any right or authority to forbid You from making technical modifications necessary to exercise the Licensed Rights, including technical modifications necessary to circumvent Effective Technological Measures. For purposes of this Public License, simply making modifications authorized by this Section 2(a)(4) never produces Adapted Material.
|
||||
Downstream recipients.
|
||||
Offer from the Licensor – Licensed Material. Every recipient of the Licensed Material automatically receives an offer from the Licensor to exercise the Licensed Rights under the terms and conditions of this Public License.
|
||||
Additional offer from the Licensor – Adapted Material. Every recipient of Adapted Material from You automatically receives an offer from the Licensor to exercise the Licensed Rights in the Adapted Material under the conditions of the Adapter’s License You apply.
|
||||
No downstream restrictions. You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, the Licensed Material if doing so restricts exercise of the Licensed Rights by any recipient of the Licensed Material.
|
||||
No endorsement. Nothing in this Public License constitutes or may be construed as permission to assert or imply that You are, or that Your use of the Licensed Material is, connected with, or sponsored, endorsed, or granted official status by, the Licensor or others designated to receive attribution as provided in Section 3(a)(1)(A)(i).
|
||||
Other rights.
|
||||
|
||||
Moral rights, such as the right of integrity, are not licensed under this Public License, nor are publicity, privacy, and/or other similar personality rights; however, to the extent possible, the Licensor waives and/or agrees not to assert any such rights held by the Licensor to the limited extent necessary to allow You to exercise the Licensed Rights, but not otherwise.
|
||||
Patent and trademark rights are not licensed under this Public License.
|
||||
To the extent possible, the Licensor waives any right to collect royalties from You for the exercise of the Licensed Rights, whether directly or through a collecting society under any voluntary or waivable statutory or compulsory licensing scheme. In all other cases the Licensor expressly reserves any right to collect such royalties, including when the Licensed Material is used other than for NonCommercial purposes.
|
||||
|
||||
Section 3 – License Conditions.
|
||||
|
||||
Your exercise of the Licensed Rights is expressly made subject to the following conditions.
|
||||
|
||||
Attribution.
|
||||
|
||||
If You Share the Licensed Material (including in modified form), You must:
|
||||
|
||||
retain the following if it is supplied by the Licensor with the Licensed Material:
|
||||
identification of the creator(s) of the Licensed Material and any others designated to receive attribution, in any reasonable manner requested by the Licensor (including by pseudonym if designated);
|
||||
a copyright notice;
|
||||
a notice that refers to this Public License;
|
||||
a notice that refers to the disclaimer of warranties;
|
||||
a URI or hyperlink to the Licensed Material to the extent reasonably practicable;
|
||||
indicate if You modified the Licensed Material and retain an indication of any previous modifications; and
|
||||
indicate the Licensed Material is licensed under this Public License, and include the text of, or the URI or hyperlink to, this Public License.
|
||||
You may satisfy the conditions in Section 3(a)(1) in any reasonable manner based on the medium, means, and context in which You Share the Licensed Material. For example, it may be reasonable to satisfy the conditions by providing a URI or hyperlink to a resource that includes the required information.
|
||||
If requested by the Licensor, You must remove any of the information required by Section 3(a)(1)(A) to the extent reasonably practicable.
|
||||
ShareAlike.
|
||||
In addition to the conditions in Section 3(a), if You Share Adapted Material You produce, the following conditions also apply.
|
||||
|
||||
The Adapter’s License You apply must be a Creative Commons license with the same License Elements, this version or later, or a BY-NC-SA Compatible License.
|
||||
You must include the text of, or the URI or hyperlink to, the Adapter's License You apply. You may satisfy this condition in any reasonable manner based on the medium, means, and context in which You Share Adapted Material.
|
||||
You may not offer or impose any additional or different terms or conditions on, or apply any Effective Technological Measures to, Adapted Material that restrict exercise of the rights granted under the Adapter's License You apply.
|
||||
|
||||
Section 4 – Sui Generis Database Rights.
|
||||
|
||||
Where the Licensed Rights include Sui Generis Database Rights that apply to Your use of the Licensed Material:
|
||||
|
||||
for the avoidance of doubt, Section 2(a)(1) grants You the right to extract, reuse, reproduce, and Share all or a substantial portion of the contents of the database for NonCommercial purposes only;
|
||||
if You include all or a substantial portion of the database contents in a database in which You have Sui Generis Database Rights, then the database in which You have Sui Generis Database Rights (but not its individual contents) is Adapted Material, including for purposes of Section 3(b); and
|
||||
You must comply with the conditions in Section 3(a) if You Share all or a substantial portion of the contents of the database.
|
||||
For the avoidance of doubt, this Section 4 supplements and does not replace Your obligations under this Public License where the Licensed Rights include other Copyright and Similar Rights.
|
||||
|
||||
Section 5 – Disclaimer of Warranties and Limitation of Liability.
|
||||
|
||||
Unless otherwise separately undertaken by the Licensor, to the extent possible, the Licensor offers the Licensed Material as-is and as-available, and makes no representations or warranties of any kind concerning the Licensed Material, whether express, implied, statutory, or other. This includes, without limitation, warranties of title, merchantability, fitness for a particular purpose, non-infringement, absence of latent or other defects, accuracy, or the presence or absence of errors, whether or not known or discoverable. Where disclaimers of warranties are not allowed in full or in part, this disclaimer may not apply to You.
|
||||
To the extent possible, in no event will the Licensor be liable to You on any legal theory (including, without limitation, negligence) or otherwise for any direct, special, indirect, incidental, consequential, punitive, exemplary, or other losses, costs, expenses, or damages arising out of this Public License or use of the Licensed Material, even if the Licensor has been advised of the possibility of such losses, costs, expenses, or damages. Where a limitation of liability is not allowed in full or in part, this limitation may not apply to You.
|
||||
The disclaimer of warranties and limitation of liability provided above shall be interpreted in a manner that, to the extent possible, most closely approximates an absolute disclaimer and waiver of all liability.
|
||||
|
||||
Section 6 – Term and Termination.
|
||||
|
||||
This Public License applies for the term of the Copyright and Similar Rights licensed here. However, if You fail to comply with this Public License, then Your rights under this Public License terminate automatically.
|
||||
Where Your right to use the Licensed Material has terminated under Section 6(a), it reinstates:
|
||||
|
||||
automatically as of the date the violation is cured, provided it is cured within 30 days of Your discovery of the violation; or
|
||||
upon express reinstatement by the Licensor.
|
||||
For the avoidance of doubt, this Section 6(b) does not affect any right the Licensor may have to seek remedies for Your violations of this Public License.
|
||||
For the avoidance of doubt, the Licensor may also offer the Licensed Material under separate terms or conditions or stop distributing the Licensed Material at any time; however, doing so will not terminate this Public License.
|
||||
Sections 1, 5, 6, 7, and 8 survive termination of this Public License.
|
||||
|
||||
Section 7 – Other Terms and Conditions.
|
||||
|
||||
The Licensor shall not be bound by any additional or different terms or conditions communicated by You unless expressly agreed.
|
||||
Any arrangements, understandings, or agreements regarding the Licensed Material not stated herein are separate from and independent of the terms and conditions of this Public License.
|
||||
|
||||
Section 8 – Interpretation.
|
||||
|
||||
For the avoidance of doubt, this Public License does not, and shall not be interpreted to, reduce, limit, restrict, or impose conditions on any use of the Licensed Material that could lawfully be made without permission under this Public License.
|
||||
To the extent possible, if any provision of this Public License is deemed unenforceable, it shall be automatically reformed to the minimum extent necessary to make it enforceable. If the provision cannot be reformed, it shall be severed from this Public License without affecting the enforceability of the remaining terms and conditions.
|
||||
No term or condition of this Public License will be waived and no failure to comply consented to unless expressly agreed to by the Licensor.
|
||||
Nothing in this Public License constitutes or may be interpreted as a limitation upon, or waiver of, any privileges and immunities that apply to the Licensor or You, including from the legal processes of any jurisdiction or authority.
|
||||
1
Code/Duality_Technologies/GWAS/PreLoad.cmake
Normal file
1
Code/Duality_Technologies/GWAS/PreLoad.cmake
Normal file
@ -0,0 +1 @@
|
||||
set (CMAKE_GENERATOR "Unix Makefiles" CACHE INTERNAL "" FORCE)
|
||||
49
Code/Duality_Technologies/GWAS/README.md
Normal file
49
Code/Duality_Technologies/GWAS/README.md
Normal file
@ -0,0 +1,49 @@
|
||||
GWAS Research Prototypes using Homomorphic Encryption
|
||||
=====================================
|
||||
|
||||
This gitlab repository includes the implementation of Logistic Regression Approximation (LRA) and Chi-Square GWAS protocols described in
|
||||
"Secure large-scale genome-wide association studies using homomorphic encryption"
|
||||
by Marcelo Blatt, Alexander Gusev, Yuriy Polyakov, and Shafi Goldwasser.
|
||||
|
||||
The repo includes the following files:
|
||||
* demo-logistic.cpp - research prototype for the LRA protocol.
|
||||
* demo-chi2.cpp - research prototype for the Chi-Square protocol.
|
||||
* data/random_sample.csv - an artificial random data set including 3 features, 200 individuals, and 16,384 SNPs (provided solely for demonstration purposes).
|
||||
|
||||
Notes on Compatibility with Different Versions of PALISADE
|
||||
=====================================
|
||||
The code in the master branch works in PALISADE v1.7 - 1.9. If you need to run this code in v1.10 and later, please use the branch called `updated-to-v1.10`.
|
||||
|
||||
How to Build and Run the Prototypes
|
||||
=====================================
|
||||
|
||||
1. Install PALISADE v1.7 - 1.9, e.g., v1.9.1 from [PALISADE Development Repository](https://gitlab.com/palisade/palisade-development/-/tree/release-v1.9.1). Follow the instructions provided in [README.md](https://gitlab.com/palisade/palisade-development/-/blob/release-v1.9.1/README.md).
|
||||
|
||||
2. Clone this repository to a local directory and switch to this directory.
|
||||
|
||||
3. Create a directory where the binaries will be built. The typical choice is a subfolder "build". In this case, run the following commands:
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
make
|
||||
```
|
||||
4. Run the following command to execute the LRA prototype (change sample size and number of SNPs as needed):
|
||||
```
|
||||
./demo-logistic --SNPdir "../data" --SNPfilename "random_sample" --pvalue "pvalue.txt" --runtime "result.txt" --samplesize="200" --snps="16384"
|
||||
```
|
||||
|
||||
or
|
||||
|
||||
Run the following command to execute the Chi-Square prototype (change sample size and number of SNPs as needed):
|
||||
```
|
||||
./demo-chi2 --SNPdir "../data" --SNPfilename "random_sample" --pvalue "pvalue.txt" --runtime "result.txt" --samplesize="200" --snps="16384"
|
||||
```
|
||||
|
||||
5. The results will be written to the "data" folder. The following output files will be created for both prototypes:
|
||||
|
||||
* pvalue.txt - p-values for each SNP
|
||||
* result.txt - runtime metrics
|
||||
|
||||
Additional files with outputs of protocol-specific statistics will also be created.
|
||||
|
||||
75
Code/Duality_Technologies/GWAS/avail_mem.cpp
Normal file
75
Code/Duality_Technologies/GWAS/avail_mem.cpp
Normal file
@ -0,0 +1,75 @@
|
||||
#include <unistd.h>
|
||||
#include <ios>
|
||||
#include <iostream>
|
||||
#include <fstream>
|
||||
#include <string>
|
||||
|
||||
#include "avail_mem.h"
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//
|
||||
// process_mem_usage(double &, double &) - takes two doubles by reference,
|
||||
// attempts to read the system-dependent data for a process' virtual memory
|
||||
// size and resident set size, and return the results in KB.
|
||||
//
|
||||
// On failure, returns 0.0, 0.0
|
||||
|
||||
void process_mem_usage(double& vm_usage, double& resident_set)
|
||||
{
|
||||
using std::ios_base;
|
||||
using std::ifstream;
|
||||
using std::string;
|
||||
|
||||
vm_usage = 0.0;
|
||||
resident_set = 0.0;
|
||||
|
||||
// 'file' stat seems to give the most reliable results
|
||||
//
|
||||
ifstream stat_stream("/proc/self/stat",ios_base::in);
|
||||
|
||||
// dummy vars for leading entries in stat that we don't care about
|
||||
//
|
||||
string pid, comm, state, ppid, pgrp, session, tty_nr;
|
||||
string tpgid, flags, minflt, cminflt, majflt, cmajflt;
|
||||
string utime, stime, cutime, cstime, priority, nice;
|
||||
string O, itrealvalue, starttime;
|
||||
|
||||
// the two fields we want
|
||||
//
|
||||
unsigned long vsize;
|
||||
long rss;
|
||||
|
||||
stat_stream >> pid >> comm >> state >> ppid >> pgrp >> session >> tty_nr
|
||||
>> tpgid >> flags >> minflt >> cminflt >> majflt >> cmajflt
|
||||
>> utime >> stime >> cutime >> cstime >> priority >> nice
|
||||
>> O >> itrealvalue >> starttime >> vsize >> rss; // don't care about the rest
|
||||
|
||||
stat_stream.close();
|
||||
|
||||
long page_size_kb = sysconf(_SC_PAGE_SIZE) / 1024; // in case x86-64 is configured to use 2MB pages
|
||||
vm_usage = vsize / 1024.0;
|
||||
resident_set = rss * page_size_kb;
|
||||
}
|
||||
|
||||
unsigned long long getTotalSystemMemory()
|
||||
{
|
||||
long pages = sysconf(_SC_PHYS_PAGES);
|
||||
long page_size = sysconf(_SC_PAGE_SIZE);
|
||||
return pages * page_size;
|
||||
}
|
||||
|
||||
double get_alpha()
|
||||
{
|
||||
using std::cout;
|
||||
using std::endl;
|
||||
|
||||
double vm, rss, alpha;
|
||||
//vm and rss are KB
|
||||
process_mem_usage(vm, rss);
|
||||
//tot_mem is B
|
||||
unsigned long long tot_mem = getTotalSystemMemory();
|
||||
auto percent = (rss*1024)/tot_mem;
|
||||
//cout << "Percent: " << percent << endl;
|
||||
//cout << "VM: " << vm << "; RSS: " << rss << endl;
|
||||
alpha = percent;
|
||||
return alpha;
|
||||
}
|
||||
8
Code/Duality_Technologies/GWAS/avail_mem.h
Normal file
8
Code/Duality_Technologies/GWAS/avail_mem.h
Normal file
@ -0,0 +1,8 @@
|
||||
#ifndef _AVAIL_MEM_H
|
||||
#define _AVAIL_MEM_H
|
||||
|
||||
void process_mem_usage(double& vm_usage, double& resident_set);
|
||||
unsigned long long getTotalSystemMemory();
|
||||
double get_alpha();
|
||||
|
||||
#endif
|
||||
466
Code/Duality_Technologies/GWAS/build/CMakeCache.txt
Normal file
466
Code/Duality_Technologies/GWAS/build/CMakeCache.txt
Normal file
@ -0,0 +1,466 @@
|
||||
# This is the CMakeCache file.
|
||||
# For build in directory: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
# It was generated by CMake: /usr/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
|
||||
########################
|
||||
|
||||
//The directory containing a CMake configuration file for Boost.
|
||||
Boost_DIR:PATH=/usr/lib/cmake/Boost-1.80.0
|
||||
|
||||
//Path to a file.
|
||||
Boost_INCLUDE_DIR:PATH=/usr/include
|
||||
|
||||
Boost_MPI_LIBRARY_RELEASE:STRING=/usr/lib/libboost_mpi.so.1.80.0
|
||||
|
||||
Boost_SERIALIZATION_LIBRARY_RELEASE:STRING=/usr/lib/libboost_serialization.so.1.80.0
|
||||
|
||||
//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=
|
||||
|
||||
//Enable/Disable color output during build.
|
||||
CMAKE_COLOR_MAKEFILE:BOOL=ON
|
||||
|
||||
//CXX compiler
|
||||
CMAKE_CXX_COMPILER:STRING=/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
|
||||
|
||||
//A wrapper around 'ranlib' adding the appropriate '--plugin' option
|
||||
// for the GCC compiler
|
||||
CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib
|
||||
|
||||
//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
|
||||
|
||||
//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=
|
||||
|
||||
//Value Computed by CMake.
|
||||
CMAKE_FIND_PACKAGE_REDIRECTS_DIR:STATIC=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/pkgRedirects
|
||||
|
||||
//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=demo
|
||||
|
||||
//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
|
||||
|
||||
//Executable for running MPI programs.
|
||||
MPIEXEC_EXECUTABLE:FILEPATH=/usr/bin/mpiexec
|
||||
|
||||
//Maximum number of processors available to run MPI applications.
|
||||
MPIEXEC_MAX_NUMPROCS:STRING=2
|
||||
|
||||
//Flag used by MPI to specify the number of processes for mpiexec;
|
||||
// the next option will be the number of processes.
|
||||
MPIEXEC_NUMPROC_FLAG:STRING=-n
|
||||
|
||||
//These flags will be placed after all flags passed to mpiexec.
|
||||
MPIEXEC_POSTFLAGS:STRING=
|
||||
|
||||
//These flags will be directly before the executable that is being
|
||||
// run by mpiexec.
|
||||
MPIEXEC_PREFLAGS:STRING=
|
||||
|
||||
//MPI CXX additional include directories
|
||||
MPI_CXX_ADDITIONAL_INCLUDE_DIRS:STRING=
|
||||
|
||||
//MPI compiler for CXX
|
||||
MPI_CXX_COMPILER:FILEPATH=/usr/bin/mpicxx
|
||||
|
||||
//MPI CXX compiler wrapper include directories
|
||||
MPI_CXX_COMPILER_INCLUDE_DIRS:STRING=
|
||||
|
||||
//MPI CXX compilation definitions
|
||||
MPI_CXX_COMPILE_DEFINITIONS:STRING=
|
||||
|
||||
//MPI CXX compilation options
|
||||
MPI_CXX_COMPILE_OPTIONS:STRING=
|
||||
|
||||
//Path to a file.
|
||||
MPI_CXX_HEADER_DIR:PATH=/usr/include
|
||||
|
||||
//MPI CXX libraries to link against
|
||||
MPI_CXX_LIB_NAMES:STRING=mpi_cxx;mpi
|
||||
|
||||
//MPI CXX linker flags
|
||||
MPI_CXX_LINK_FLAGS:STRING=-Wl,-rpath -Wl,/usr/lib -Wl,--enable-new-dtags
|
||||
|
||||
//If true, the MPI-2 C++ bindings are disabled using definitions.
|
||||
MPI_CXX_SKIP_MPICXX:BOOL=OFF
|
||||
|
||||
//Location of the mpi library for MPI
|
||||
MPI_mpi_LIBRARY:FILEPATH=/usr/lib/libmpi.so
|
||||
|
||||
//Location of the mpi_cxx library for MPI
|
||||
MPI_mpi_cxx_LIBRARY:FILEPATH=/usr/lib/libmpi_cxx.so
|
||||
|
||||
//Arguments to supply to pkg-config
|
||||
PKG_CONFIG_ARGN:STRING=
|
||||
|
||||
//pkg-config executable
|
||||
PKG_CONFIG_EXECUTABLE:FILEPATH=/usr/bin/pkg-config
|
||||
|
||||
//The directory containing a CMake configuration file for Palisade.
|
||||
Palisade_DIR:PATH=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build
|
||||
|
||||
//The directory containing a CMake configuration file for boost_headers.
|
||||
boost_headers_DIR:PATH=/usr/lib/cmake/boost_headers-1.80.0
|
||||
|
||||
//The directory containing a CMake configuration file for boost_mpi.
|
||||
boost_mpi_DIR:PATH=/usr/lib/cmake/boost_mpi-1.80.0
|
||||
|
||||
//The directory containing a CMake configuration file for boost_serialization.
|
||||
boost_serialization_DIR:PATH=/usr/lib/cmake/boost_serialization-1.80.0
|
||||
|
||||
//Value Computed by CMake
|
||||
demo_BINARY_DIR:STATIC=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
|
||||
//Value Computed by CMake
|
||||
demo_IS_TOP_LEVEL:STATIC=ON
|
||||
|
||||
//Value Computed by CMake
|
||||
demo_SOURCE_DIR:STATIC=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
//The directory containing a CMake configuration file for libplinkio.
|
||||
libplinkio_DIR:PATH=libplinkio_DIR-NOTFOUND
|
||||
|
||||
|
||||
########################
|
||||
# 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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
//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=25
|
||||
//Patch version of cmake used to create the current loaded cache
|
||||
CMAKE_CACHE_PATCH_VERSION:INTERNAL=1
|
||||
//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE
|
||||
CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1
|
||||
//Path to CMake executable.
|
||||
CMAKE_COMMAND:INTERNAL=/usr/bin/cmake
|
||||
//Path to cpack program executable.
|
||||
CMAKE_CPACK_COMMAND:INTERNAL=/usr/bin/cpack
|
||||
//Path to ctest program executable.
|
||||
CMAKE_CTEST_COMMAND:INTERNAL=/usr/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_DLLTOOL
|
||||
CMAKE_DLLTOOL-ADVANCED:INTERNAL=1
|
||||
//Path to cache edit program executable.
|
||||
CMAKE_EDIT_COMMAND:INTERNAL=/usr/bin/ccmake
|
||||
//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
|
||||
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=
|
||||
//Source directory with the top level CMakeLists.txt file for this
|
||||
// project
|
||||
CMAKE_HOME_DIRECTORY:INTERNAL=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
//Install .so files without execute permission.
|
||||
CMAKE_INSTALL_SO_NO_EXE:INTERNAL=0
|
||||
//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=/usr/share/cmake
|
||||
//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
|
||||
//Details about finding Boost
|
||||
FIND_PACKAGE_MESSAGE_DETAILS_Boost:INTERNAL=[/usr/lib/cmake/Boost-1.80.0/BoostConfig.cmake][cfound components: mpi serialization ][v1.80.0()]
|
||||
//Details about finding MPI
|
||||
FIND_PACKAGE_MESSAGE_DETAILS_MPI:INTERNAL=[TRUE][c ][v3.1()]
|
||||
//Details about finding MPI_CXX
|
||||
FIND_PACKAGE_MESSAGE_DETAILS_MPI_CXX:INTERNAL=[/usr/lib/libmpi_cxx.so][/usr/lib/libmpi.so][mpi_cxx;mpi][/usr/include][TRUE][v3.1()]
|
||||
//ADVANCED property for variable: MPIEXEC_EXECUTABLE
|
||||
MPIEXEC_EXECUTABLE-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPIEXEC_MAX_NUMPROCS
|
||||
MPIEXEC_MAX_NUMPROCS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPIEXEC_NUMPROC_FLAG
|
||||
MPIEXEC_NUMPROC_FLAG-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPIEXEC_POSTFLAGS
|
||||
MPIEXEC_POSTFLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPIEXEC_PREFLAGS
|
||||
MPIEXEC_PREFLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_ADDITIONAL_INCLUDE_DIRS
|
||||
MPI_CXX_ADDITIONAL_INCLUDE_DIRS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_COMPILER
|
||||
MPI_CXX_COMPILER-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_COMPILER_INCLUDE_DIRS
|
||||
MPI_CXX_COMPILER_INCLUDE_DIRS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_COMPILE_DEFINITIONS
|
||||
MPI_CXX_COMPILE_DEFINITIONS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_COMPILE_OPTIONS
|
||||
MPI_CXX_COMPILE_OPTIONS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_HEADER_DIR
|
||||
MPI_CXX_HEADER_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_LIB_NAMES
|
||||
MPI_CXX_LIB_NAMES-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_LINK_FLAGS
|
||||
MPI_CXX_LINK_FLAGS-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_CXX_SKIP_MPICXX
|
||||
MPI_CXX_SKIP_MPICXX-ADVANCED:INTERNAL=1
|
||||
//Result of TRY_COMPILE
|
||||
MPI_RESULT_CXX_test_mpi_MPICXX:INTERNAL=TRUE
|
||||
//Result of TRY_COMPILE
|
||||
MPI_RESULT_CXX_test_mpi_normal:INTERNAL=TRUE
|
||||
//ADVANCED property for variable: MPI_mpi_LIBRARY
|
||||
MPI_mpi_LIBRARY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: MPI_mpi_cxx_LIBRARY
|
||||
MPI_mpi_cxx_LIBRARY-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: PKG_CONFIG_ARGN
|
||||
PKG_CONFIG_ARGN-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: PKG_CONFIG_EXECUTABLE
|
||||
PKG_CONFIG_EXECUTABLE-ADVANCED:INTERNAL=1
|
||||
//linker supports push/pop state
|
||||
_CMAKE_LINKER_PUSHPOP_STATE_SUPPORTED:INTERNAL=TRUE
|
||||
//ADVANCED property for variable: boost_headers_DIR
|
||||
boost_headers_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: boost_mpi_DIR
|
||||
boost_mpi_DIR-ADVANCED:INTERNAL=1
|
||||
//ADVANCED property for variable: boost_serialization_DIR
|
||||
boost_serialization_DIR-ADVANCED:INTERNAL=1
|
||||
|
||||
@ -0,0 +1,83 @@
|
||||
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
|
||||
set(CMAKE_CXX_COMPILER_ARG1 "")
|
||||
set(CMAKE_CXX_COMPILER_ID "GNU")
|
||||
set(CMAKE_CXX_COMPILER_VERSION "12.2.0")
|
||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
|
||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
|
||||
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
||||
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;cxx_std_23")
|
||||
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 "cxx_std_23")
|
||||
|
||||
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")
|
||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
|
||||
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
|
||||
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_CXX_COMPILER_ENV_VAR "CXX")
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
|
||||
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 "")
|
||||
|
||||
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 "")
|
||||
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++/12.2.0;/usr/include/c++/12.2.0/x86_64-pc-linux-gnu;/usr/include/c++/12.2.0/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed;/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-pc-linux-gnu/12.2.0;/usr/lib;/lib")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
||||
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
set(CMAKE_HOST_SYSTEM "Linux-6.0.9-hardened1-1-hardened")
|
||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_HOST_SYSTEM_VERSION "6.0.9-hardened1-1-hardened")
|
||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_SYSTEM "Linux-6.0.9-hardened1-1-hardened")
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_SYSTEM_VERSION "6.0.9-hardened1-1-hardened")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
|
||||
set(CMAKE_SYSTEM_LOADED 1)
|
||||
@ -0,0 +1,857 @@
|
||||
/* 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
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#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 version 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(__open_xl__) && defined(__clang__)
|
||||
# define COMPILER_ID "IBMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
||||
|
||||
|
||||
#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(__CLANG_FUJITSU)
|
||||
# define COMPILER_ID "FujitsuClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__FUJITSU)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
# if defined(__FCC_version__)
|
||||
# define COMPILER_VERSION __FCC_version__
|
||||
# elif defined(__FCC_major__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# endif
|
||||
# if defined(__fcc_version)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
||||
# elif defined(__FCC_VERSION)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
||||
# endif
|
||||
|
||||
|
||||
#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(__TASKING__)
|
||||
# define COMPILER_ID "Tasking"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
||||
|
||||
#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(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
# define COMPILER_ID "LCC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(1)
|
||||
# if defined(__LCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__- 100)
|
||||
# endif
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
# 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(_ADI_COMPILER)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VERSIONNUM__)
|
||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 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(__MSYS__)
|
||||
# define PLATFORM_ID "MSYS"
|
||||
|
||||
#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
|
||||
|
||||
# elif defined(_ADI_COMPILER)
|
||||
# define PLATFORM_ID "ADSP"
|
||||
|
||||
#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
|
||||
|
||||
# elif defined(__ADSPSHARC__)
|
||||
# define ARCHITECTURE_ID "SHARC"
|
||||
|
||||
# elif defined(__ADSPBLACKFIN__)
|
||||
# define ARCHITECTURE_ID "Blackfin"
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
|
||||
# if defined(__CTC__) || defined(__CPTC__)
|
||||
# define ARCHITECTURE_ID "TriCore"
|
||||
|
||||
# elif defined(__CMCS__)
|
||||
# define ARCHITECTURE_ID "MCS"
|
||||
|
||||
# elif defined(__CARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__CARC__)
|
||||
# define ARCHITECTURE_ID "ARC"
|
||||
|
||||
# elif defined(__C51__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__CPCP__)
|
||||
# define ARCHITECTURE_ID "PCP"
|
||||
|
||||
# else
|
||||
# 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. */
|
||||
#ifdef COMPILER_VERSION
|
||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#elif defined(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'};
|
||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
||||
#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_standard_default = "INFO" ":" "standard_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
|
||||
"]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
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_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.0/CompilerIdCXX/a.out
Executable file
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.0/CompilerIdCXX/a.out
Executable file
Binary file not shown.
@ -0,0 +1,83 @@
|
||||
set(CMAKE_CXX_COMPILER "/usr/bin/c++")
|
||||
set(CMAKE_CXX_COMPILER_ARG1 "")
|
||||
set(CMAKE_CXX_COMPILER_ID "GNU")
|
||||
set(CMAKE_CXX_COMPILER_VERSION "12.2.0")
|
||||
set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "")
|
||||
set(CMAKE_CXX_COMPILER_WRAPPER "")
|
||||
set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "17")
|
||||
set(CMAKE_CXX_EXTENSIONS_COMPUTED_DEFAULT "ON")
|
||||
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;cxx_std_23")
|
||||
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 "cxx_std_23")
|
||||
|
||||
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")
|
||||
set(CMAKE_RANLIB "/usr/bin/ranlib")
|
||||
set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib")
|
||||
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_CXX_COMPILER_ENV_VAR "CXX")
|
||||
|
||||
set(CMAKE_CXX_COMPILER_ID_RUN 1)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;m;mm;mpp;CPP;ixx;cppm)
|
||||
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 "")
|
||||
|
||||
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 "")
|
||||
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++/12.2.0;/usr/include/c++/12.2.0/x86_64-pc-linux-gnu;/usr/include/c++/12.2.0/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed;/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-pc-linux-gnu/12.2.0;/usr/lib;/lib")
|
||||
set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "")
|
||||
Binary file not shown.
@ -0,0 +1,15 @@
|
||||
set(CMAKE_HOST_SYSTEM "Linux-6.0.10-hardened1-1-hardened")
|
||||
set(CMAKE_HOST_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_HOST_SYSTEM_VERSION "6.0.10-hardened1-1-hardened")
|
||||
set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
|
||||
|
||||
set(CMAKE_SYSTEM "Linux-6.0.10-hardened1-1-hardened")
|
||||
set(CMAKE_SYSTEM_NAME "Linux")
|
||||
set(CMAKE_SYSTEM_VERSION "6.0.10-hardened1-1-hardened")
|
||||
set(CMAKE_SYSTEM_PROCESSOR "x86_64")
|
||||
|
||||
set(CMAKE_CROSSCOMPILING "FALSE")
|
||||
|
||||
set(CMAKE_SYSTEM_LOADED 1)
|
||||
@ -0,0 +1,857 @@
|
||||
/* 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
|
||||
|
||||
#if !defined(__has_include)
|
||||
/* If the compiler does not have __has_include, pretend the answer is
|
||||
always no. */
|
||||
# define __has_include(x) 0
|
||||
#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 version 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(__open_xl__) && defined(__clang__)
|
||||
# define COMPILER_ID "IBMClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__open_xl_version__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__open_xl_release__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__open_xl_modification__)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__open_xl_ptf_fix_level__)
|
||||
|
||||
|
||||
#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(__CLANG_FUJITSU)
|
||||
# define COMPILER_ID "FujitsuClang"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# define COMPILER_VERSION_INTERNAL_STR __clang_version__
|
||||
|
||||
|
||||
#elif defined(__FUJITSU)
|
||||
# define COMPILER_ID "Fujitsu"
|
||||
# if defined(__FCC_version__)
|
||||
# define COMPILER_VERSION __FCC_version__
|
||||
# elif defined(__FCC_major__)
|
||||
# define COMPILER_VERSION_MAJOR DEC(__FCC_major__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__FCC_minor__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__FCC_patchlevel__)
|
||||
# endif
|
||||
# if defined(__fcc_version)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__fcc_version)
|
||||
# elif defined(__FCC_VERSION)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__FCC_VERSION)
|
||||
# endif
|
||||
|
||||
|
||||
#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(__TASKING__)
|
||||
# define COMPILER_ID "Tasking"
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSION__/1000)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSION__ % 100)
|
||||
# define COMPILER_VERSION_INTERNAL DEC(__VERSION__)
|
||||
|
||||
#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(__LCC__) && (defined(__GNUC__) || defined(__GNUG__) || defined(__MCST__))
|
||||
# define COMPILER_ID "LCC"
|
||||
# define COMPILER_VERSION_MAJOR DEC(1)
|
||||
# if defined(__LCC__)
|
||||
# define COMPILER_VERSION_MINOR DEC(__LCC__- 100)
|
||||
# endif
|
||||
# if defined(__LCC_MINOR__)
|
||||
# define COMPILER_VERSION_PATCH DEC(__LCC_MINOR__)
|
||||
# endif
|
||||
# if defined(__GNUC__) && defined(__GNUC_MINOR__)
|
||||
# define SIMULATE_ID "GNU"
|
||||
# define SIMULATE_VERSION_MAJOR DEC(__GNUC__)
|
||||
# define SIMULATE_VERSION_MINOR DEC(__GNUC_MINOR__)
|
||||
# if defined(__GNUC_PATCHLEVEL__)
|
||||
# define SIMULATE_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__)
|
||||
# endif
|
||||
# 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(_ADI_COMPILER)
|
||||
# define COMPILER_ID "ADSP"
|
||||
#if defined(__VERSIONNUM__)
|
||||
/* __VERSIONNUM__ = 0xVVRRPPTT */
|
||||
# define COMPILER_VERSION_MAJOR DEC(__VERSIONNUM__ >> 24 & 0xFF)
|
||||
# define COMPILER_VERSION_MINOR DEC(__VERSIONNUM__ >> 16 & 0xFF)
|
||||
# define COMPILER_VERSION_PATCH DEC(__VERSIONNUM__ >> 8 & 0xFF)
|
||||
# define COMPILER_VERSION_TWEAK DEC(__VERSIONNUM__ & 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(__MSYS__)
|
||||
# define PLATFORM_ID "MSYS"
|
||||
|
||||
#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
|
||||
|
||||
# elif defined(_ADI_COMPILER)
|
||||
# define PLATFORM_ID "ADSP"
|
||||
|
||||
#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
|
||||
|
||||
# elif defined(__ADSPSHARC__)
|
||||
# define ARCHITECTURE_ID "SHARC"
|
||||
|
||||
# elif defined(__ADSPBLACKFIN__)
|
||||
# define ARCHITECTURE_ID "Blackfin"
|
||||
|
||||
#elif defined(__TASKING__)
|
||||
|
||||
# if defined(__CTC__) || defined(__CPTC__)
|
||||
# define ARCHITECTURE_ID "TriCore"
|
||||
|
||||
# elif defined(__CMCS__)
|
||||
# define ARCHITECTURE_ID "MCS"
|
||||
|
||||
# elif defined(__CARM__)
|
||||
# define ARCHITECTURE_ID "ARM"
|
||||
|
||||
# elif defined(__CARC__)
|
||||
# define ARCHITECTURE_ID "ARC"
|
||||
|
||||
# elif defined(__C51__)
|
||||
# define ARCHITECTURE_ID "8051"
|
||||
|
||||
# elif defined(__CPCP__)
|
||||
# define ARCHITECTURE_ID "PCP"
|
||||
|
||||
# else
|
||||
# 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. */
|
||||
#ifdef COMPILER_VERSION
|
||||
char const* info_version = "INFO" ":" "compiler_version[" COMPILER_VERSION "]";
|
||||
|
||||
/* Construct a string literal encoding the version number components. */
|
||||
#elif defined(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'};
|
||||
#elif defined(COMPILER_VERSION_INTERNAL_STR)
|
||||
char const* info_version_internal = "INFO" ":" "compiler_version_internal[" COMPILER_VERSION_INTERNAL_STR "]";
|
||||
#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_standard_default = "INFO" ":" "standard_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
|
||||
"]";
|
||||
|
||||
const char* info_language_extensions_default = "INFO" ":" "extensions_default["
|
||||
#if (defined(__clang__) || defined(__GNUC__) || defined(__xlC__) || \
|
||||
defined(__TI_COMPILER_VERSION__)) && \
|
||||
!defined(__STRICT_ANSI__)
|
||||
"ON"
|
||||
#else
|
||||
"OFF"
|
||||
#endif
|
||||
"]";
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
||||
int main(int argc, char* argv[])
|
||||
{
|
||||
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_standard_default[argc];
|
||||
require += info_language_extensions_default[argc];
|
||||
(void)argv;
|
||||
return require;
|
||||
}
|
||||
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.1/CompilerIdCXX/a.out
Executable file
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.1/CompilerIdCXX/a.out
Executable file
Binary file not shown.
@ -0,0 +1,16 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# Relative path conversion top directories.
|
||||
set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS")
|
||||
set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build")
|
||||
|
||||
# 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})
|
||||
422
Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeOutput.log
Normal file
422
Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeOutput.log
Normal file
@ -0,0 +1,422 @@
|
||||
The system is: Linux - 6.0.9-hardened1-1-hardened - x86_64
|
||||
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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.0/CompilerIdCXX/a.out"
|
||||
|
||||
Detecting CXX compiler ABI info compiled with the following output:
|
||||
Change Dir: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-pQV6u3
|
||||
|
||||
Run Build Command(s):/usr/bin/make -f Makefile cmTC_a26ac/fast && /usr/bin/make -f CMakeFiles/cmTC_a26ac.dir/build.make CMakeFiles/cmTC_a26ac.dir/build
|
||||
make[1]: Entering directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-pQV6u3'
|
||||
Building CXX object CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o
|
||||
/usr/bin/c++ -v -o CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 12.2.0 (GCC)
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a26ac.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccNDhREi.s
|
||||
GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP
|
||||
|
||||
warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1.
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include"
|
||||
#include "..." search starts here:
|
||||
#include <...> search starts here:
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include
|
||||
/usr/local/include
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed
|
||||
/usr/include
|
||||
End of search list.
|
||||
GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP
|
||||
|
||||
warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1.
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
Compiler executable checksum: 402ce889a414e2a3abbbe3146fa0a6cb
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/'
|
||||
as -v --64 -o CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccNDhREi.s
|
||||
GNU assembler version 2.39.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.39.0
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.'
|
||||
Linking CXX executable cmTC_a26ac
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a26ac.dir/link.txt --verbose=1
|
||||
/usr/bin/c++ -v CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a26ac
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 12.2.0 (GCC)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a26ac' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a26ac.'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccubyOH1.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 --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_a26ac /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../.. CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a26ac' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a26ac.'
|
||||
make[1]: Leaving directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-pQV6u3'
|
||||
|
||||
|
||||
|
||||
Parsed CXX 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-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
add: [/usr/local/include]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
add: [/usr/include]
|
||||
end of search list found
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0] ==> [/usr/include/c++/12.2.0]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu] ==> [/usr/include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward] ==> [/usr/include/c++/12.2.0/backward]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
collapse include dir [/usr/local/include] ==> [/usr/local/include]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
collapse include dir [/usr/include] ==> [/usr/include]
|
||||
implicit include dirs: [/usr/include/c++/12.2.0;/usr/include/c++/12.2.0/x86_64-pc-linux-gnu;/usr/include/c++/12.2.0/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed;/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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-pQV6u3]
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command(s):/usr/bin/make -f Makefile cmTC_a26ac/fast && /usr/bin/make -f CMakeFiles/cmTC_a26ac.dir/build.make CMakeFiles/cmTC_a26ac.dir/build]
|
||||
ignore line: [make[1]: Entering directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-pQV6u3']
|
||||
ignore line: [Building CXX object CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o]
|
||||
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ ada fortran go lto objc obj-c++ d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 12.2.0 (GCC) ]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/']
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_a26ac.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccNDhREi.s]
|
||||
ignore line: [GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 12.2.0 GMP version 6.2.1 MPFR version 4.1.0-p13 MPC version 1.2.1 isl version isl-0.25-GMP]
|
||||
ignore line: []
|
||||
ignore line: [warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1.]
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include"]
|
||||
ignore line: [#include "..." search starts here:]
|
||||
ignore line: [#include <...> search starts here:]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
ignore line: [ /usr/local/include]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
ignore line: [ /usr/include]
|
||||
ignore line: [End of search list.]
|
||||
ignore line: [GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 12.2.0 GMP version 6.2.1 MPFR version 4.1.0-p13 MPC version 1.2.1 isl version isl-0.25-GMP]
|
||||
ignore line: []
|
||||
ignore line: [warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1.]
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [Compiler executable checksum: 402ce889a414e2a3abbbe3146fa0a6cb]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/']
|
||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccNDhREi.s]
|
||||
ignore line: [GNU assembler version 2.39.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.39.0]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.']
|
||||
ignore line: [Linking CXX executable cmTC_a26ac]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a26ac.dir/link.txt --verbose=1]
|
||||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_a26ac ]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ ada fortran go lto objc obj-c++ d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 12.2.0 (GCC) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_a26ac' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_a26ac.']
|
||||
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccubyOH1.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 --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_a26ac /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../.. CMakeFiles/cmTC_a26ac.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2] ==> ignore
|
||||
arg [-plugin] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so] ==> ignore
|
||||
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper] ==> ignore
|
||||
arg [-plugin-opt=-fresolution=/tmp/ccubyOH1.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 [--hash-style=gnu] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-pie] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTC_a26ac] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..]
|
||||
arg [CMakeFiles/cmTC_a26ac.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-pc-linux-gnu/12.2.0/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib] ==> [/usr/lib]
|
||||
collapse library dir [/lib/../lib] ==> [/lib]
|
||||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..] ==> [/usr/lib]
|
||||
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
|
||||
implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o;/usr/lib/crtn.o]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0;/usr/lib;/lib]
|
||||
implicit fwks: []
|
||||
|
||||
|
||||
The system is: Linux - 6.0.10-hardened1-1-hardened - x86_64
|
||||
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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/3.25.1/CompilerIdCXX/a.out"
|
||||
|
||||
Detecting CXX compiler ABI info compiled with the following output:
|
||||
Change Dir: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-GsgNaI
|
||||
|
||||
Run Build Command(s):/usr/bin/make -f Makefile cmTC_e1de9/fast && /usr/bin/make -f CMakeFiles/cmTC_e1de9.dir/build.make CMakeFiles/cmTC_e1de9.dir/build
|
||||
make[1]: Entering directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-GsgNaI'
|
||||
Building CXX object CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o
|
||||
/usr/bin/c++ -v -o CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 12.2.0 (GCC)
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_e1de9.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccLWzns8.s
|
||||
GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP
|
||||
|
||||
warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1-p1.
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include"
|
||||
#include "..." search starts here:
|
||||
#include <...> search starts here:
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include
|
||||
/usr/local/include
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed
|
||||
/usr/include
|
||||
End of search list.
|
||||
GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)
|
||||
compiled by GNU C version 12.2.0, GMP version 6.2.1, MPFR version 4.1.0-p13, MPC version 1.2.1, isl version isl-0.25-GMP
|
||||
|
||||
warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1-p1.
|
||||
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
|
||||
Compiler executable checksum: 402ce889a414e2a3abbbe3146fa0a6cb
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/'
|
||||
as -v --64 -o CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccLWzns8.s
|
||||
GNU assembler version 2.39.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.39.0
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.'
|
||||
Linking CXX executable cmTC_e1de9
|
||||
/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e1de9.dir/link.txt --verbose=1
|
||||
/usr/bin/c++ -v CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e1de9
|
||||
Using built-in specs.
|
||||
COLLECT_GCC=/usr/bin/c++
|
||||
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper
|
||||
Target: x86_64-pc-linux-gnu
|
||||
Configured with: /build/gcc/src/gcc/configure --enable-languages=c,c++,ada,fortran,go,lto,objc,obj-c++,d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror
|
||||
Thread model: posix
|
||||
Supported LTO compression algorithms: zlib zstd
|
||||
gcc version 12.2.0 (GCC)
|
||||
COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/
|
||||
LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e1de9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_e1de9.'
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccZcvyAt.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 --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_e1de9 /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../.. CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o
|
||||
COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e1de9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_e1de9.'
|
||||
make[1]: Leaving directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-GsgNaI'
|
||||
|
||||
|
||||
|
||||
Parsed CXX 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-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
add: [/usr/local/include]
|
||||
add: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
add: [/usr/include]
|
||||
end of search list found
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0] ==> [/usr/include/c++/12.2.0]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu] ==> [/usr/include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward] ==> [/usr/include/c++/12.2.0/backward]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
collapse include dir [/usr/local/include] ==> [/usr/local/include]
|
||||
collapse include dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
collapse include dir [/usr/include] ==> [/usr/include]
|
||||
implicit include dirs: [/usr/include/c++/12.2.0;/usr/include/c++/12.2.0/x86_64-pc-linux-gnu;/usr/include/c++/12.2.0/backward;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include;/usr/local/include;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed;/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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-GsgNaI]
|
||||
ignore line: []
|
||||
ignore line: [Run Build Command(s):/usr/bin/make -f Makefile cmTC_e1de9/fast && /usr/bin/make -f CMakeFiles/cmTC_e1de9.dir/build.make CMakeFiles/cmTC_e1de9.dir/build]
|
||||
ignore line: [make[1]: Entering directory '/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/CMakeScratch/TryCompile-GsgNaI']
|
||||
ignore line: [Building CXX object CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o]
|
||||
ignore line: [/usr/bin/c++ -v -o CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -c /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ ada fortran go lto objc obj-c++ d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 12.2.0 (GCC) ]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/']
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/cc1plus -quiet -v -D_GNU_SOURCE /usr/share/cmake/Modules/CMakeCXXCompilerABI.cpp -quiet -dumpdir CMakeFiles/cmTC_e1de9.dir/ -dumpbase CMakeCXXCompilerABI.cpp.cpp -dumpbase-ext .cpp -mtune=generic -march=x86-64 -version -o /tmp/ccLWzns8.s]
|
||||
ignore line: [GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 12.2.0 GMP version 6.2.1 MPFR version 4.1.0-p13 MPC version 1.2.1 isl version isl-0.25-GMP]
|
||||
ignore line: []
|
||||
ignore line: [warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1-p1.]
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [ignoring nonexistent directory "/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../x86_64-pc-linux-gnu/include"]
|
||||
ignore line: [#include "..." search starts here:]
|
||||
ignore line: [#include <...> search starts here:]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/x86_64-pc-linux-gnu]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../include/c++/12.2.0/backward]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include]
|
||||
ignore line: [ /usr/local/include]
|
||||
ignore line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed]
|
||||
ignore line: [ /usr/include]
|
||||
ignore line: [End of search list.]
|
||||
ignore line: [GNU C++17 (GCC) version 12.2.0 (x86_64-pc-linux-gnu)]
|
||||
ignore line: [ compiled by GNU C version 12.2.0 GMP version 6.2.1 MPFR version 4.1.0-p13 MPC version 1.2.1 isl version isl-0.25-GMP]
|
||||
ignore line: []
|
||||
ignore line: [warning: MPFR header version 4.1.0-p13 differs from library version 4.1.1-p1.]
|
||||
ignore line: [GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072]
|
||||
ignore line: [Compiler executable checksum: 402ce889a414e2a3abbbe3146fa0a6cb]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/']
|
||||
ignore line: [ as -v --64 -o CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o /tmp/ccLWzns8.s]
|
||||
ignore line: [GNU assembler version 2.39.0 (x86_64-pc-linux-gnu) using BFD version (GNU Binutils) 2.39.0]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o' '-c' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.']
|
||||
ignore line: [Linking CXX executable cmTC_e1de9]
|
||||
ignore line: [/usr/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e1de9.dir/link.txt --verbose=1]
|
||||
ignore line: [/usr/bin/c++ -v CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e1de9 ]
|
||||
ignore line: [Using built-in specs.]
|
||||
ignore line: [COLLECT_GCC=/usr/bin/c++]
|
||||
ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper]
|
||||
ignore line: [Target: x86_64-pc-linux-gnu]
|
||||
ignore line: [Configured with: /build/gcc/src/gcc/configure --enable-languages=c c++ ada fortran go lto objc obj-c++ d --enable-bootstrap --prefix=/usr --libdir=/usr/lib --libexecdir=/usr/lib --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=https://bugs.archlinux.org/ --with-build-config=bootstrap-lto --with-linker-hash-style=gnu --with-system-zlib --enable-__cxa_atexit --enable-cet=auto --enable-checking=release --enable-clocale=gnu --enable-default-pie --enable-default-ssp --enable-gnu-indirect-function --enable-gnu-unique-object --enable-libstdcxx-backtrace --enable-link-serialization=1 --enable-linker-build-id --enable-lto --enable-multilib --enable-plugin --enable-shared --enable-threads=posix --disable-libssp --disable-libstdcxx-pch --disable-werror]
|
||||
ignore line: [Thread model: posix]
|
||||
ignore line: [Supported LTO compression algorithms: zlib zstd]
|
||||
ignore line: [gcc version 12.2.0 (GCC) ]
|
||||
ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/]
|
||||
ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../:/lib/:/usr/lib/]
|
||||
ignore line: [COLLECT_GCC_OPTIONS='-v' '-o' 'cmTC_e1de9' '-shared-libgcc' '-mtune=generic' '-march=x86-64' '-dumpdir' 'cmTC_e1de9.']
|
||||
link line: [ /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2 -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper -plugin-opt=-fresolution=/tmp/ccZcvyAt.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 --hash-style=gnu -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -o cmTC_e1de9 /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../.. CMakeFiles/cmTC_e1de9.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/collect2] ==> ignore
|
||||
arg [-plugin] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/liblto_plugin.so] ==> ignore
|
||||
arg [-plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/lto-wrapper] ==> ignore
|
||||
arg [-plugin-opt=-fresolution=/tmp/ccZcvyAt.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 [--hash-style=gnu] ==> ignore
|
||||
arg [-m] ==> ignore
|
||||
arg [elf_x86_64] ==> ignore
|
||||
arg [-dynamic-linker] ==> ignore
|
||||
arg [/lib64/ld-linux-x86-64.so.2] ==> ignore
|
||||
arg [-pie] ==> ignore
|
||||
arg [-o] ==> ignore
|
||||
arg [cmTC_e1de9] ==> ignore
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib]
|
||||
arg [-L/lib/../lib] ==> dir [/lib/../lib]
|
||||
arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib]
|
||||
arg [-L/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..] ==> dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..]
|
||||
arg [CMakeFiles/cmTC_e1de9.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-pc-linux-gnu/12.2.0/crtendS.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o]
|
||||
arg [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o] ==> obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/Scrt1.o] ==> [/usr/lib/Scrt1.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crti.o] ==> [/usr/lib/crti.o]
|
||||
collapse obj [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib/crtn.o] ==> [/usr/lib/crtn.o]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0] ==> [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../../../lib] ==> [/usr/lib]
|
||||
collapse library dir [/lib/../lib] ==> [/lib]
|
||||
collapse library dir [/usr/lib/../lib] ==> [/usr/lib]
|
||||
collapse library dir [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/../../..] ==> [/usr/lib]
|
||||
implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc]
|
||||
implicit objs: [/usr/lib/Scrt1.o;/usr/lib/crti.o;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtbeginS.o;/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/crtendS.o;/usr/lib/crtn.o]
|
||||
implicit dirs: [/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0;/usr/lib;/lib]
|
||||
implicit fwks: []
|
||||
|
||||
|
||||
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/FindMPI/test_mpi_CXX.bin
Executable file
BIN
Code/Duality_Technologies/GWAS/build/CMakeFiles/FindMPI/test_mpi_CXX.bin
Executable file
Binary file not shown.
@ -0,0 +1,65 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# 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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/CMakeLists.txt"
|
||||
"CMakeFiles/3.25.1/CMakeCXXCompiler.cmake"
|
||||
"CMakeFiles/3.25.1/CMakeSystem.cmake"
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/PalisadeConfig.cmake"
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/PalisadeConfigVersion.cmake"
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/PalisadeTargets.cmake"
|
||||
"/usr/lib/cmake/Boost-1.80.0/BoostConfig.cmake"
|
||||
"/usr/lib/cmake/Boost-1.80.0/BoostConfigVersion.cmake"
|
||||
"/usr/lib/cmake/BoostDetectToolset-1.80.0.cmake"
|
||||
"/usr/lib/cmake/boost_headers-1.80.0/boost_headers-config-version.cmake"
|
||||
"/usr/lib/cmake/boost_headers-1.80.0/boost_headers-config.cmake"
|
||||
"/usr/lib/cmake/boost_mpi-1.80.0/boost_mpi-config-version.cmake"
|
||||
"/usr/lib/cmake/boost_mpi-1.80.0/boost_mpi-config.cmake"
|
||||
"/usr/lib/cmake/boost_mpi-1.80.0/libboost_mpi-variant-shared.cmake"
|
||||
"/usr/lib/cmake/boost_mpi-1.80.0/libboost_mpi-variant-static.cmake"
|
||||
"/usr/lib/cmake/boost_serialization-1.80.0/boost_serialization-config-version.cmake"
|
||||
"/usr/lib/cmake/boost_serialization-1.80.0/boost_serialization-config.cmake"
|
||||
"/usr/lib/cmake/boost_serialization-1.80.0/libboost_serialization-variant-shared.cmake"
|
||||
"/usr/lib/cmake/boost_serialization-1.80.0/libboost_serialization-variant-static.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCXXInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeCommonLanguageInclude.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeFindDependencyMacro.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeGenericSystem.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeInitializeConfigs.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeLanguageInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInformation.cmake"
|
||||
"/usr/share/cmake/Modules/CMakeSystemSpecificInitialize.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/CMakeCommonCompilerMacros.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Compiler/GNU.cmake"
|
||||
"/usr/share/cmake/Modules/FindBoost.cmake"
|
||||
"/usr/share/cmake/Modules/FindMPI.cmake"
|
||||
"/usr/share/cmake/Modules/FindPackageHandleStandardArgs.cmake"
|
||||
"/usr/share/cmake/Modules/FindPackageMessage.cmake"
|
||||
"/usr/share/cmake/Modules/FindPkgConfig.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU-CXX.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux-GNU.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/Linux.cmake"
|
||||
"/usr/share/cmake/Modules/Platform/UnixPaths.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/demo-chi2.dir/DependInfo.cmake"
|
||||
)
|
||||
112
Code/Duality_Technologies/GWAS/build/CMakeFiles/Makefile2
Normal file
112
Code/Duality_Technologies/GWAS/build/CMakeFiles/Makefile2
Normal file
@ -0,0 +1,112 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# 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 = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
|
||||
#=============================================================================
|
||||
# Directory level rules for the build root directory
|
||||
|
||||
# The main recursive "all" target.
|
||||
all: CMakeFiles/demo-chi2.dir/all
|
||||
.PHONY : all
|
||||
|
||||
# The main recursive "preinstall" target.
|
||||
preinstall:
|
||||
.PHONY : preinstall
|
||||
|
||||
# The main recursive "clean" target.
|
||||
clean: CMakeFiles/demo-chi2.dir/clean
|
||||
.PHONY : clean
|
||||
|
||||
#=============================================================================
|
||||
# Target rules for target CMakeFiles/demo-chi2.dir
|
||||
|
||||
# All Build rule for target.
|
||||
CMakeFiles/demo-chi2.dir/all:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/depend
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/build
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=1,2,3 "Built target demo-chi2"
|
||||
.PHONY : CMakeFiles/demo-chi2.dir/all
|
||||
|
||||
# Build rule for subdir invocation for target.
|
||||
CMakeFiles/demo-chi2.dir/rule: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles 3
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 CMakeFiles/demo-chi2.dir/all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles 0
|
||||
.PHONY : CMakeFiles/demo-chi2.dir/rule
|
||||
|
||||
# Convenience name for target.
|
||||
demo-chi2: CMakeFiles/demo-chi2.dir/rule
|
||||
.PHONY : demo-chi2
|
||||
|
||||
# clean rule for target.
|
||||
CMakeFiles/demo-chi2.dir/clean:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/clean
|
||||
.PHONY : CMakeFiles/demo-chi2.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
|
||||
|
||||
@ -0,0 +1,3 @@
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/demo-chi2.dir
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/edit_cache.dir
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/rebuild_cache.dir
|
||||
@ -0,0 +1 @@
|
||||
# This file is generated by cmake for dependency checking of the CMakeCache.txt file
|
||||
@ -0,0 +1,20 @@
|
||||
|
||||
# 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
|
||||
)
|
||||
|
||||
# The set of dependency files which are needed:
|
||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp" "CMakeFiles/demo-chi2.dir/avail_mem.cpp.o" "gcc" "CMakeFiles/demo-chi2.dir/avail_mem.cpp.o.d"
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-chi2.cpp" "CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o" "gcc" "CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o.d"
|
||||
)
|
||||
|
||||
# Targets to which this target links.
|
||||
set(CMAKE_TARGET_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Fortran module output directory.
|
||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||
Binary file not shown.
@ -0,0 +1,151 @@
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.o: \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp \
|
||||
/usr/include/stdc-predef.h /usr/include/unistd.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h /usr/include/bits/posix_opt.h \
|
||||
/usr/include/bits/environments.h /usr/include/bits/types.h \
|
||||
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stddef.h \
|
||||
/usr/include/bits/confname.h /usr/include/bits/getopt_posix.h \
|
||||
/usr/include/bits/getopt_core.h /usr/include/bits/unistd_ext.h \
|
||||
/usr/include/linux/close_range.h /usr/include/c++/12.2.0/ios \
|
||||
/usr/include/c++/12.2.0/iosfwd \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++config.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/os_defines.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/cpu_defines.h \
|
||||
/usr/include/c++/12.2.0/pstl/pstl_config.h \
|
||||
/usr/include/c++/12.2.0/bits/stringfwd.h \
|
||||
/usr/include/c++/12.2.0/bits/memoryfwd.h \
|
||||
/usr/include/c++/12.2.0/bits/postypes.h /usr/include/c++/12.2.0/cwchar \
|
||||
/usr/include/wchar.h /usr/include/bits/libc-header-start.h \
|
||||
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdarg.h \
|
||||
/usr/include/bits/wchar.h /usr/include/bits/types/wint_t.h \
|
||||
/usr/include/bits/types/mbstate_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h /usr/include/bits/types/locale_t.h \
|
||||
/usr/include/bits/types/__locale_t.h /usr/include/c++/12.2.0/exception \
|
||||
/usr/include/c++/12.2.0/bits/exception.h \
|
||||
/usr/include/c++/12.2.0/bits/exception_ptr.h \
|
||||
/usr/include/c++/12.2.0/bits/exception_defines.h \
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_init_exception.h \
|
||||
/usr/include/c++/12.2.0/typeinfo \
|
||||
/usr/include/c++/12.2.0/bits/hash_bytes.h /usr/include/c++/12.2.0/new \
|
||||
/usr/include/c++/12.2.0/bits/move.h /usr/include/c++/12.2.0/type_traits \
|
||||
/usr/include/c++/12.2.0/bits/nested_exception.h \
|
||||
/usr/include/c++/12.2.0/bits/char_traits.h \
|
||||
/usr/include/c++/12.2.0/compare /usr/include/c++/12.2.0/concepts \
|
||||
/usr/include/c++/12.2.0/bits/stl_construct.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_types.h \
|
||||
/usr/include/c++/12.2.0/bits/iterator_concepts.h \
|
||||
/usr/include/c++/12.2.0/bits/ptr_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/ranges_cmp.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_funcs.h \
|
||||
/usr/include/c++/12.2.0/bits/concept_check.h \
|
||||
/usr/include/c++/12.2.0/debug/assertions.h \
|
||||
/usr/include/c++/12.2.0/cstdint \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/stdint-intn.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/c++/12.2.0/bits/localefwd.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++locale.h \
|
||||
/usr/include/c++/12.2.0/clocale /usr/include/locale.h \
|
||||
/usr/include/bits/locale.h /usr/include/c++/12.2.0/cctype \
|
||||
/usr/include/ctype.h /usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h /usr/include/c++/12.2.0/bits/ios_base.h \
|
||||
/usr/include/c++/12.2.0/ext/atomicity.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr-default.h \
|
||||
/usr/include/pthread.h /usr/include/sched.h \
|
||||
/usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/struct_timespec.h /usr/include/bits/sched.h \
|
||||
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/clock_t.h /usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/timer_t.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/bits/setjmp.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct___jmp_buf_tag.h \
|
||||
/usr/include/bits/pthread_stack_min-dynamic.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/atomic_word.h \
|
||||
/usr/include/sys/single_threaded.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.h \
|
||||
/usr/include/c++/12.2.0/string /usr/include/c++/12.2.0/bits/allocator.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++allocator.h \
|
||||
/usr/include/c++/12.2.0/bits/new_allocator.h \
|
||||
/usr/include/c++/12.2.0/bits/functexcept.h \
|
||||
/usr/include/c++/12.2.0/bits/cpp_type_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/ostream_insert.h \
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_forced.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator.h \
|
||||
/usr/include/c++/12.2.0/ext/type_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_function.h \
|
||||
/usr/include/c++/12.2.0/backward/binders.h \
|
||||
/usr/include/c++/12.2.0/ext/numeric_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_algobase.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_pair.h \
|
||||
/usr/include/c++/12.2.0/bits/utility.h \
|
||||
/usr/include/c++/12.2.0/debug/debug.h \
|
||||
/usr/include/c++/12.2.0/bits/predefined_ops.h \
|
||||
/usr/include/c++/12.2.0/bits/refwrap.h \
|
||||
/usr/include/c++/12.2.0/bits/invoke.h \
|
||||
/usr/include/c++/12.2.0/bits/range_access.h \
|
||||
/usr/include/c++/12.2.0/initializer_list \
|
||||
/usr/include/c++/12.2.0/bits/basic_string.h \
|
||||
/usr/include/c++/12.2.0/ext/alloc_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/alloc_traits.h \
|
||||
/usr/include/c++/12.2.0/string_view \
|
||||
/usr/include/c++/12.2.0/bits/functional_hash.h \
|
||||
/usr/include/c++/12.2.0/bits/ranges_base.h \
|
||||
/usr/include/c++/12.2.0/bits/max_size_type.h \
|
||||
/usr/include/c++/12.2.0/numbers \
|
||||
/usr/include/c++/12.2.0/bits/string_view.tcc \
|
||||
/usr/include/c++/12.2.0/ext/string_conversions.h \
|
||||
/usr/include/c++/12.2.0/cstdlib /usr/include/stdlib.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/sys/types.h /usr/include/endian.h \
|
||||
/usr/include/bits/byteswap.h /usr/include/bits/uintn-identity.h \
|
||||
/usr/include/sys/select.h /usr/include/bits/select.h \
|
||||
/usr/include/bits/types/sigset_t.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/usr/include/c++/12.2.0/bits/std_abs.h /usr/include/c++/12.2.0/cstdio \
|
||||
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
|
||||
/usr/include/c++/12.2.0/cerrno /usr/include/errno.h \
|
||||
/usr/include/bits/errno.h /usr/include/linux/errno.h \
|
||||
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
|
||||
/usr/include/c++/12.2.0/bits/charconv.h \
|
||||
/usr/include/c++/12.2.0/bits/basic_string.tcc \
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.tcc \
|
||||
/usr/include/c++/12.2.0/system_error \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/error_constants.h \
|
||||
/usr/include/c++/12.2.0/stdexcept /usr/include/c++/12.2.0/streambuf \
|
||||
/usr/include/c++/12.2.0/bits/streambuf.tcc \
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.h \
|
||||
/usr/include/c++/12.2.0/cwctype /usr/include/wctype.h \
|
||||
/usr/include/bits/wctype-wchar.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_base.h \
|
||||
/usr/include/c++/12.2.0/bits/streambuf_iterator.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_inline.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.tcc \
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.tcc \
|
||||
/usr/include/c++/12.2.0/iostream /usr/include/c++/12.2.0/ostream \
|
||||
/usr/include/c++/12.2.0/bits/ostream.tcc /usr/include/c++/12.2.0/istream \
|
||||
/usr/include/c++/12.2.0/bits/istream.tcc /usr/include/c++/12.2.0/fstream \
|
||||
/usr/include/c++/12.2.0/bits/codecvt.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/basic_file.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++io.h \
|
||||
/usr/include/c++/12.2.0/bits/fstream.tcc \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.h
|
||||
@ -0,0 +1,135 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# Delete rule output on recipe failure.
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
#=============================================================================
|
||||
# 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 = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
|
||||
# Include any dependencies generated for this target.
|
||||
include CMakeFiles/demo-chi2.dir/depend.make
|
||||
# Include any dependencies generated by the compiler for this target.
|
||||
include CMakeFiles/demo-chi2.dir/compiler_depend.make
|
||||
|
||||
# Include the progress variables for this target.
|
||||
include CMakeFiles/demo-chi2.dir/progress.make
|
||||
|
||||
# Include the compile flags for this target's objects.
|
||||
include CMakeFiles/demo-chi2.dir/flags.make
|
||||
|
||||
CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o: CMakeFiles/demo-chi2.dir/flags.make
|
||||
CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-chi2.cpp
|
||||
CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o: CMakeFiles/demo-chi2.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o -MF CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o.d -o CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o -c /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-chi2.cpp
|
||||
|
||||
CMakeFiles/demo-chi2.dir/demo-chi2.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo-chi2.dir/demo-chi2.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-chi2.cpp > CMakeFiles/demo-chi2.dir/demo-chi2.cpp.i
|
||||
|
||||
CMakeFiles/demo-chi2.dir/demo-chi2.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo-chi2.dir/demo-chi2.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-chi2.cpp -o CMakeFiles/demo-chi2.dir/demo-chi2.cpp.s
|
||||
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.o: CMakeFiles/demo-chi2.dir/flags.make
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.o: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.o: CMakeFiles/demo-chi2.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Building CXX object CMakeFiles/demo-chi2.dir/avail_mem.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/demo-chi2.dir/avail_mem.cpp.o -MF CMakeFiles/demo-chi2.dir/avail_mem.cpp.o.d -o CMakeFiles/demo-chi2.dir/avail_mem.cpp.o -c /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp
|
||||
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo-chi2.dir/avail_mem.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp > CMakeFiles/demo-chi2.dir/avail_mem.cpp.i
|
||||
|
||||
CMakeFiles/demo-chi2.dir/avail_mem.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo-chi2.dir/avail_mem.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/avail_mem.cpp -o CMakeFiles/demo-chi2.dir/avail_mem.cpp.s
|
||||
|
||||
# Object files for target demo-chi2
|
||||
demo__chi2_OBJECTS = \
|
||||
"CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o" \
|
||||
"CMakeFiles/demo-chi2.dir/avail_mem.cpp.o"
|
||||
|
||||
# External object files for target demo-chi2
|
||||
demo__chi2_EXTERNAL_OBJECTS =
|
||||
|
||||
demo-chi2: CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o
|
||||
demo-chi2: CMakeFiles/demo-chi2.dir/avail_mem.cpp.o
|
||||
demo-chi2: CMakeFiles/demo-chi2.dir/build.make
|
||||
demo-chi2: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEpke.so.1.11.8
|
||||
demo-chi2: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEbinfhe.so.1.11.8
|
||||
demo-chi2: /usr/lib/libboost_mpi.so.1.80.0
|
||||
demo-chi2: /usr/lib/libmpi_cxx.so
|
||||
demo-chi2: /usr/lib/libmpi.so
|
||||
demo-chi2: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEcore.so.1.11.8
|
||||
demo-chi2: /usr/lib/libboost_serialization.so.1.80.0
|
||||
demo-chi2: /usr/lib/libmpi_cxx.so
|
||||
demo-chi2: /usr/lib/libmpi.so
|
||||
demo-chi2: CMakeFiles/demo-chi2.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_3) "Linking CXX executable demo-chi2"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/demo-chi2.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
CMakeFiles/demo-chi2.dir/build: demo-chi2
|
||||
.PHONY : CMakeFiles/demo-chi2.dir/build
|
||||
|
||||
CMakeFiles/demo-chi2.dir/clean:
|
||||
$(CMAKE_COMMAND) -P CMakeFiles/demo-chi2.dir/cmake_clean.cmake
|
||||
.PHONY : CMakeFiles/demo-chi2.dir/clean
|
||||
|
||||
CMakeFiles/demo-chi2.dir/depend:
|
||||
cd /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/demo-chi2.dir/DependInfo.cmake --color=$(COLOR)
|
||||
.PHONY : CMakeFiles/demo-chi2.dir/depend
|
||||
|
||||
@ -0,0 +1,13 @@
|
||||
file(REMOVE_RECURSE
|
||||
"CMakeFiles/demo-chi2.dir/avail_mem.cpp.o"
|
||||
"CMakeFiles/demo-chi2.dir/avail_mem.cpp.o.d"
|
||||
"CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o"
|
||||
"CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o.d"
|
||||
"demo-chi2"
|
||||
"demo-chi2.pdb"
|
||||
)
|
||||
|
||||
# Per-language clean rules from dependency scanning.
|
||||
foreach(lang CXX)
|
||||
include(CMakeFiles/demo-chi2.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||
endforeach()
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Timestamp file for compiler generated dependencies management for demo-chi2.
|
||||
Binary file not shown.
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
# Empty dependencies file for demo-chi2.
|
||||
# This may be replaced when dependencies are built.
|
||||
@ -0,0 +1,10 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# compile CXX with /usr/bin/c++
|
||||
CXX_DEFINES = -DBOOST_MPI_DYN_LINK -DBOOST_MPI_NO_LIB -DBOOST_SERIALIZATION_DYN_LINK -DBOOST_SERIALIZATION_NO_LIB
|
||||
|
||||
CXX_INCLUDES = -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke
|
||||
|
||||
CXX_FLAGS = -Wall -Werror -O3 -DPALISADE_VERSION=1.11.8 -Wno-parentheses -DMATHBACKEND=2 -fopenmp -fopenmp -std=c++20
|
||||
|
||||
@ -0,0 +1 @@
|
||||
/usr/bin/c++ -Wall -Werror -O3 -DPALISADE_VERSION=1.11.8 -Wno-parentheses -DMATHBACKEND=2 -fopenmp -fopenmp -Wl,-rpath -Wl,/usr/lib -Wl,--enable-new-dtags "CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o" "CMakeFiles/demo-chi2.dir/avail_mem.cpp.o" -o demo-chi2 -L/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/lib -Wl,-rpath,/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib:/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/lib /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEpke.so.1.11.8 /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEbinfhe.so.1.11.8 -fopenmp /usr/lib/libboost_mpi.so.1.80.0 /usr/lib/libmpi_cxx.so /usr/lib/libmpi.so /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEcore.so.1.11.8 -fopenmp /usr/lib/libboost_serialization.so.1.80.0 /usr/lib/libmpi_cxx.so /usr/lib/libmpi.so
|
||||
@ -0,0 +1,4 @@
|
||||
CMAKE_PROGRESS_1 = 1
|
||||
CMAKE_PROGRESS_2 = 2
|
||||
CMAKE_PROGRESS_3 = 3
|
||||
|
||||
@ -0,0 +1,19 @@
|
||||
|
||||
# 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
|
||||
)
|
||||
|
||||
# The set of dependency files which are needed:
|
||||
set(CMAKE_DEPENDS_DEPENDENCY_FILES
|
||||
"/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp" "CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o" "gcc" "CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o.d"
|
||||
)
|
||||
|
||||
# Targets to which this target links.
|
||||
set(CMAKE_TARGET_LINKED_INFO_FILES
|
||||
)
|
||||
|
||||
# Fortran module output directory.
|
||||
set(CMAKE_Fortran_TARGET_MODULE_DIR "")
|
||||
@ -0,0 +1,113 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# Delete rule output on recipe failure.
|
||||
.DELETE_ON_ERROR:
|
||||
|
||||
#=============================================================================
|
||||
# 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 = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
|
||||
# Include any dependencies generated for this target.
|
||||
include CMakeFiles/demo-logistic.dir/depend.make
|
||||
# Include any dependencies generated by the compiler for this target.
|
||||
include CMakeFiles/demo-logistic.dir/compiler_depend.make
|
||||
|
||||
# Include the progress variables for this target.
|
||||
include CMakeFiles/demo-logistic.dir/progress.make
|
||||
|
||||
# Include the compile flags for this target's objects.
|
||||
include CMakeFiles/demo-logistic.dir/flags.make
|
||||
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o: CMakeFiles/demo-logistic.dir/flags.make
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o: CMakeFiles/demo-logistic.dir/compiler_depend.ts
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -MD -MT CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o -MF CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o.d -o CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o -c /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp
|
||||
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.i: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/demo-logistic.dir/demo-logistic.cpp.i"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp > CMakeFiles/demo-logistic.dir/demo-logistic.cpp.i
|
||||
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.s: cmake_force
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/demo-logistic.dir/demo-logistic.cpp.s"
|
||||
/usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp -o CMakeFiles/demo-logistic.dir/demo-logistic.cpp.s
|
||||
|
||||
# Object files for target demo-logistic
|
||||
demo__logistic_OBJECTS = \
|
||||
"CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o"
|
||||
|
||||
# External object files for target demo-logistic
|
||||
demo__logistic_EXTERNAL_OBJECTS =
|
||||
|
||||
demo-logistic: CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o
|
||||
demo-logistic: CMakeFiles/demo-logistic.dir/build.make
|
||||
demo-logistic: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEpke.so.1.11.8
|
||||
demo-logistic: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEbinfhe.so.1.11.8
|
||||
demo-logistic: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEcore.so.1.11.8
|
||||
demo-logistic: CMakeFiles/demo-logistic.dir/link.txt
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable demo-logistic"
|
||||
$(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/demo-logistic.dir/link.txt --verbose=$(VERBOSE)
|
||||
|
||||
# Rule to build all files generated by this target.
|
||||
CMakeFiles/demo-logistic.dir/build: demo-logistic
|
||||
.PHONY : CMakeFiles/demo-logistic.dir/build
|
||||
|
||||
CMakeFiles/demo-logistic.dir/clean:
|
||||
$(CMAKE_COMMAND) -P CMakeFiles/demo-logistic.dir/cmake_clean.cmake
|
||||
.PHONY : CMakeFiles/demo-logistic.dir/clean
|
||||
|
||||
CMakeFiles/demo-logistic.dir/depend:
|
||||
cd /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles/demo-logistic.dir/DependInfo.cmake --color=$(COLOR)
|
||||
.PHONY : CMakeFiles/demo-logistic.dir/depend
|
||||
|
||||
@ -0,0 +1,11 @@
|
||||
file(REMOVE_RECURSE
|
||||
"CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o"
|
||||
"CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o.d"
|
||||
"demo-logistic"
|
||||
"demo-logistic.pdb"
|
||||
)
|
||||
|
||||
# Per-language clean rules from dependency scanning.
|
||||
foreach(lang CXX)
|
||||
include(CMakeFiles/demo-logistic.dir/cmake_clean_${lang}.cmake OPTIONAL)
|
||||
endforeach()
|
||||
@ -0,0 +1,446 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp
|
||||
/usr/include/stdc-predef.h
|
||||
/usr/include/getopt.h
|
||||
/usr/include/features.h
|
||||
/usr/include/features-time64.h
|
||||
/usr/include/bits/wordsize.h
|
||||
/usr/include/bits/timesize.h
|
||||
/usr/include/sys/cdefs.h
|
||||
/usr/include/bits/long-double.h
|
||||
/usr/include/gnu/stubs.h
|
||||
/usr/include/gnu/stubs-64.h
|
||||
/usr/include/bits/getopt_core.h
|
||||
/usr/include/bits/getopt_ext.h
|
||||
/usr/include/c++/12.2.0/numeric
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++config.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/os_defines.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/cpu_defines.h
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_types.h
|
||||
/usr/include/c++/12.2.0/type_traits
|
||||
/usr/include/c++/12.2.0/bits/stl_numeric.h
|
||||
/usr/include/c++/12.2.0/bits/concept_check.h
|
||||
/usr/include/c++/12.2.0/debug/debug.h
|
||||
/usr/include/c++/12.2.0/debug/assertions.h
|
||||
/usr/include/c++/12.2.0/bits/move.h
|
||||
/usr/include/c++/12.2.0/cmath
|
||||
/usr/include/c++/12.2.0/bits/cpp_type_traits.h
|
||||
/usr/include/c++/12.2.0/ext/type_traits.h
|
||||
/usr/include/math.h
|
||||
/usr/include/bits/libc-header-start.h
|
||||
/usr/include/bits/types.h
|
||||
/usr/include/bits/typesizes.h
|
||||
/usr/include/bits/time64.h
|
||||
/usr/include/bits/math-vector.h
|
||||
/usr/include/bits/libm-simd-decl-stubs.h
|
||||
/usr/include/bits/floatn.h
|
||||
/usr/include/bits/floatn-common.h
|
||||
/usr/include/bits/flt-eval-method.h
|
||||
/usr/include/bits/fp-logb.h
|
||||
/usr/include/bits/fp-fast.h
|
||||
/usr/include/bits/mathcalls-helper-functions.h
|
||||
/usr/include/bits/mathcalls.h
|
||||
/usr/include/bits/mathcalls-narrow.h
|
||||
/usr/include/bits/iscanonical.h
|
||||
/usr/include/c++/12.2.0/bits/std_abs.h
|
||||
/usr/include/stdlib.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stddef.h
|
||||
/usr/include/bits/waitflags.h
|
||||
/usr/include/bits/waitstatus.h
|
||||
/usr/include/bits/types/locale_t.h
|
||||
/usr/include/bits/types/__locale_t.h
|
||||
/usr/include/sys/types.h
|
||||
/usr/include/bits/types/clock_t.h
|
||||
/usr/include/bits/types/clockid_t.h
|
||||
/usr/include/bits/types/time_t.h
|
||||
/usr/include/bits/types/timer_t.h
|
||||
/usr/include/bits/stdint-intn.h
|
||||
/usr/include/endian.h
|
||||
/usr/include/bits/endian.h
|
||||
/usr/include/bits/endianness.h
|
||||
/usr/include/bits/byteswap.h
|
||||
/usr/include/bits/uintn-identity.h
|
||||
/usr/include/sys/select.h
|
||||
/usr/include/bits/select.h
|
||||
/usr/include/bits/types/sigset_t.h
|
||||
/usr/include/bits/types/__sigset_t.h
|
||||
/usr/include/bits/types/struct_timeval.h
|
||||
/usr/include/bits/types/struct_timespec.h
|
||||
/usr/include/bits/pthreadtypes.h
|
||||
/usr/include/bits/thread-shared-types.h
|
||||
/usr/include/bits/pthreadtypes-arch.h
|
||||
/usr/include/bits/atomic_wide_counter.h
|
||||
/usr/include/bits/struct_mutex.h
|
||||
/usr/include/bits/struct_rwlock.h
|
||||
/usr/include/alloca.h
|
||||
/usr/include/bits/stdlib-bsearch.h
|
||||
/usr/include/bits/stdlib-float.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/palisade.h
|
||||
/usr/include/c++/12.2.0/initializer_list
|
||||
/usr/include/c++/12.2.0/memory
|
||||
/usr/include/c++/12.2.0/bits/stl_algobase.h
|
||||
/usr/include/c++/12.2.0/bits/functexcept.h
|
||||
/usr/include/c++/12.2.0/bits/exception_defines.h
|
||||
/usr/include/c++/12.2.0/ext/numeric_traits.h
|
||||
/usr/include/c++/12.2.0/bits/stl_pair.h
|
||||
/usr/include/c++/12.2.0/bits/utility.h
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_funcs.h
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator.h
|
||||
/usr/include/c++/12.2.0/bits/ptr_traits.h
|
||||
/usr/include/c++/12.2.0/bits/predefined_ops.h
|
||||
/usr/include/c++/12.2.0/bits/allocator.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++allocator.h
|
||||
/usr/include/c++/12.2.0/bits/new_allocator.h
|
||||
/usr/include/c++/12.2.0/new
|
||||
/usr/include/c++/12.2.0/bits/exception.h
|
||||
/usr/include/c++/12.2.0/bits/memoryfwd.h
|
||||
/usr/include/c++/12.2.0/bits/stl_construct.h
|
||||
/usr/include/c++/12.2.0/bits/stl_uninitialized.h
|
||||
/usr/include/c++/12.2.0/ext/alloc_traits.h
|
||||
/usr/include/c++/12.2.0/bits/alloc_traits.h
|
||||
/usr/include/c++/12.2.0/bits/stl_tempbuf.h
|
||||
/usr/include/c++/12.2.0/bits/stl_raw_storage_iter.h
|
||||
/usr/include/c++/12.2.0/bits/align.h
|
||||
/usr/include/c++/12.2.0/bit
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdint.h
|
||||
/usr/include/stdint.h
|
||||
/usr/include/bits/wchar.h
|
||||
/usr/include/bits/stdint-uintn.h
|
||||
/usr/include/c++/12.2.0/bits/uses_allocator.h
|
||||
/usr/include/c++/12.2.0/bits/unique_ptr.h
|
||||
/usr/include/c++/12.2.0/tuple
|
||||
/usr/include/c++/12.2.0/bits/invoke.h
|
||||
/usr/include/c++/12.2.0/bits/stl_function.h
|
||||
/usr/include/c++/12.2.0/backward/binders.h
|
||||
/usr/include/c++/12.2.0/bits/functional_hash.h
|
||||
/usr/include/c++/12.2.0/bits/hash_bytes.h
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr.h
|
||||
/usr/include/c++/12.2.0/iosfwd
|
||||
/usr/include/c++/12.2.0/bits/stringfwd.h
|
||||
/usr/include/c++/12.2.0/bits/postypes.h
|
||||
/usr/include/c++/12.2.0/cwchar
|
||||
/usr/include/wchar.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdarg.h
|
||||
/usr/include/bits/types/wint_t.h
|
||||
/usr/include/bits/types/mbstate_t.h
|
||||
/usr/include/bits/types/__mbstate_t.h
|
||||
/usr/include/bits/types/__FILE.h
|
||||
/usr/include/bits/types/FILE.h
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr_base.h
|
||||
/usr/include/c++/12.2.0/typeinfo
|
||||
/usr/include/c++/12.2.0/bits/allocated_ptr.h
|
||||
/usr/include/c++/12.2.0/bits/refwrap.h
|
||||
/usr/include/c++/12.2.0/ext/aligned_buffer.h
|
||||
/usr/include/c++/12.2.0/ext/atomicity.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr-default.h
|
||||
/usr/include/pthread.h
|
||||
/usr/include/sched.h
|
||||
/usr/include/bits/sched.h
|
||||
/usr/include/bits/types/struct_sched_param.h
|
||||
/usr/include/bits/cpu-set.h
|
||||
/usr/include/time.h
|
||||
/usr/include/bits/time.h
|
||||
/usr/include/bits/timex.h
|
||||
/usr/include/bits/types/struct_tm.h
|
||||
/usr/include/bits/types/struct_itimerspec.h
|
||||
/usr/include/bits/setjmp.h
|
||||
/usr/include/bits/types/struct___jmp_buf_tag.h
|
||||
/usr/include/bits/pthread_stack_min-dynamic.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/atomic_word.h
|
||||
/usr/include/sys/single_threaded.h
|
||||
/usr/include/c++/12.2.0/ext/concurrence.h
|
||||
/usr/include/c++/12.2.0/exception
|
||||
/usr/include/c++/12.2.0/bits/exception_ptr.h
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_init_exception.h
|
||||
/usr/include/c++/12.2.0/bits/nested_exception.h
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr_atomic.h
|
||||
/usr/include/c++/12.2.0/bits/atomic_base.h
|
||||
/usr/include/c++/12.2.0/bits/atomic_lockfree_defines.h
|
||||
/usr/include/c++/12.2.0/backward/auto_ptr.h
|
||||
/usr/include/c++/12.2.0/string
|
||||
/usr/include/c++/12.2.0/bits/char_traits.h
|
||||
/usr/include/c++/12.2.0/cstdint
|
||||
/usr/include/c++/12.2.0/bits/localefwd.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++locale.h
|
||||
/usr/include/c++/12.2.0/clocale
|
||||
/usr/include/locale.h
|
||||
/usr/include/bits/locale.h
|
||||
/usr/include/c++/12.2.0/cctype
|
||||
/usr/include/ctype.h
|
||||
/usr/include/c++/12.2.0/bits/ostream_insert.h
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_forced.h
|
||||
/usr/include/c++/12.2.0/bits/range_access.h
|
||||
/usr/include/c++/12.2.0/bits/basic_string.h
|
||||
/usr/include/c++/12.2.0/ext/string_conversions.h
|
||||
/usr/include/c++/12.2.0/cstdlib
|
||||
/usr/include/c++/12.2.0/cstdio
|
||||
/usr/include/stdio.h
|
||||
/usr/include/bits/types/__fpos_t.h
|
||||
/usr/include/bits/types/__fpos64_t.h
|
||||
/usr/include/bits/types/struct_FILE.h
|
||||
/usr/include/bits/types/cookie_io_functions_t.h
|
||||
/usr/include/bits/stdio_lim.h
|
||||
/usr/include/bits/stdio.h
|
||||
/usr/include/c++/12.2.0/cerrno
|
||||
/usr/include/errno.h
|
||||
/usr/include/bits/errno.h
|
||||
/usr/include/linux/errno.h
|
||||
/usr/include/asm/errno.h
|
||||
/usr/include/asm-generic/errno.h
|
||||
/usr/include/asm-generic/errno-base.h
|
||||
/usr/include/bits/types/error_t.h
|
||||
/usr/include/c++/12.2.0/bits/charconv.h
|
||||
/usr/include/c++/12.2.0/bits/basic_string.tcc
|
||||
/usr/include/c++/12.2.0/utility
|
||||
/usr/include/c++/12.2.0/bits/stl_relops.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/palisadecore.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/version.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/backend.h
|
||||
/usr/include/c++/12.2.0/fstream
|
||||
/usr/include/c++/12.2.0/istream
|
||||
/usr/include/c++/12.2.0/ios
|
||||
/usr/include/c++/12.2.0/bits/ios_base.h
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.h
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.tcc
|
||||
/usr/include/c++/12.2.0/system_error
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/error_constants.h
|
||||
/usr/include/c++/12.2.0/stdexcept
|
||||
/usr/include/c++/12.2.0/streambuf
|
||||
/usr/include/c++/12.2.0/bits/streambuf.tcc
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.h
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.h
|
||||
/usr/include/c++/12.2.0/cwctype
|
||||
/usr/include/wctype.h
|
||||
/usr/include/bits/wctype-wchar.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_base.h
|
||||
/usr/include/c++/12.2.0/bits/streambuf_iterator.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_inline.h
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.tcc
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.tcc
|
||||
/usr/include/c++/12.2.0/ostream
|
||||
/usr/include/c++/12.2.0/bits/ostream.tcc
|
||||
/usr/include/c++/12.2.0/bits/istream.tcc
|
||||
/usr/include/c++/12.2.0/bits/codecvt.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/basic_file.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++io.h
|
||||
/usr/include/c++/12.2.0/bits/fstream.tcc
|
||||
/usr/include/c++/12.2.0/functional
|
||||
/usr/include/c++/12.2.0/bits/std_function.h
|
||||
/usr/include/c++/12.2.0/iostream
|
||||
/usr/include/c++/12.2.0/limits
|
||||
/usr/include/c++/12.2.0/sstream
|
||||
/usr/include/c++/12.2.0/bits/sstream.tcc
|
||||
/usr/include/c++/12.2.0/vector
|
||||
/usr/include/c++/12.2.0/bits/stl_vector.h
|
||||
/usr/include/c++/12.2.0/bits/stl_bvector.h
|
||||
/usr/include/c++/12.2.0/bits/vector.tcc
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/config_core.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/version.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/interface.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/inttypes.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/debug.h
|
||||
/usr/include/c++/12.2.0/chrono
|
||||
/usr/include/c++/12.2.0/bits/chrono.h
|
||||
/usr/include/c++/12.2.0/ratio
|
||||
/usr/include/c++/12.2.0/ctime
|
||||
/usr/include/c++/12.2.0/bits/parse_numbers.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/exception.h
|
||||
/usr/include/c++/12.2.0/mutex
|
||||
/usr/include/c++/12.2.0/bits/std_mutex.h
|
||||
/usr/include/c++/12.2.0/bits/unique_lock.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/memory.h
|
||||
/usr/include/c++/12.2.0/algorithm
|
||||
/usr/include/c++/12.2.0/bits/stl_algo.h
|
||||
/usr/include/c++/12.2.0/bits/algorithmfwd.h
|
||||
/usr/include/c++/12.2.0/bits/stl_heap.h
|
||||
/usr/include/c++/12.2.0/bits/uniform_int_dist.h
|
||||
/usr/include/c++/12.2.0/iterator
|
||||
/usr/include/c++/12.2.0/bits/stream_iterator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/palisadebase64.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/parallel.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/serializable.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/cereal.hpp
|
||||
/usr/include/c++/12.2.0/unordered_map
|
||||
/usr/include/c++/12.2.0/bits/hashtable.h
|
||||
/usr/include/c++/12.2.0/bits/hashtable_policy.h
|
||||
/usr/include/c++/12.2.0/bits/enable_special_members.h
|
||||
/usr/include/c++/12.2.0/bits/unordered_map.h
|
||||
/usr/include/c++/12.2.0/bits/erase_if.h
|
||||
/usr/include/c++/12.2.0/unordered_set
|
||||
/usr/include/c++/12.2.0/bits/unordered_set.h
|
||||
/usr/include/c++/12.2.0/cstddef
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/macros.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/traits.hpp
|
||||
/usr/include/c++/12.2.0/typeindex
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/access.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/specialize.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/helpers.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/static_object.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/base_class.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/polymorphic_impl_fwd.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/common.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/polymorphic.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/memory.hpp
|
||||
/usr/include/c++/12.2.0/cstring
|
||||
/usr/include/string.h
|
||||
/usr/include/strings.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/util.hpp
|
||||
/usr/include/c++/12.2.0/cxxabi.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/cxxabi_tweaks.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/polymorphic_impl.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/string.hpp
|
||||
/usr/include/c++/12.2.0/map
|
||||
/usr/include/c++/12.2.0/bits/stl_tree.h
|
||||
/usr/include/c++/12.2.0/bits/stl_map.h
|
||||
/usr/include/c++/12.2.0/bits/stl_multimap.h
|
||||
/usr/include/c++/12.2.0/set
|
||||
/usr/include/c++/12.2.0/bits/stl_set.h
|
||||
/usr/include/c++/12.2.0/bits/stl_multiset.h
|
||||
/usr/include/c++/12.2.0/stack
|
||||
/usr/include/c++/12.2.0/deque
|
||||
/usr/include/c++/12.2.0/bits/stl_deque.h
|
||||
/usr/include/c++/12.2.0/bits/deque.tcc
|
||||
/usr/include/c++/12.2.0/bits/stl_stack.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/mubintvecfxd.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/ubintfxd.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/backend.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/ubintfxd.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintdyn/mubintvecdyn.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/mubintvecfxd.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintdyn/ubintdyn.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/nbtheory.h
|
||||
/usr/include/c++/12.2.0/random
|
||||
/usr/include/c++/12.2.0/bits/random.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/opt_random.h
|
||||
/usr/include/c++/12.2.0/bits/random.tcc
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintnat/mubintvecnat.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/interface.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/xvector.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/stl_allocator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/xallocator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintnat/ubintnat.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/nbtheory.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distrgen.h
|
||||
/usr/include/c++/12.2.0/bitset
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/binaryuniformgenerator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distributiongenerator.h
|
||||
/usr/include/c++/12.2.0/thread
|
||||
/usr/include/c++/12.2.0/bits/std_thread.h
|
||||
/usr/include/c++/12.2.0/bits/this_thread_sleep.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/prng/blake2engine.h
|
||||
/usr/include/c++/12.2.0/array
|
||||
/usr/include/c++/12.2.0/compare
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/prng/blake2.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discretegaussiangenerator.h
|
||||
/usr/include/c++/12.2.0/math.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discretegaussiangeneratorgeneric.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discreteuniformgenerator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/ternaryuniformgenerator.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodings.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/ckkspackedencoding.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodingparams.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/plaintext.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/backend.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/elemparams.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ildcrtparams.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ilparams.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ilelement.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/poly.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distrgen.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/transfrm.h
|
||||
/usr/include/c++/12.2.0/complex
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/utilities.h
|
||||
/usr/include/c++/12.2.0/iomanip
|
||||
/usr/include/c++/12.2.0/locale
|
||||
/usr/include/c++/12.2.0/bits/locale_facets_nonio.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/time_members.h
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/messages_members.h
|
||||
/usr/include/libintl.h
|
||||
/usr/include/c++/12.2.0/bits/locale_facets_nonio.tcc
|
||||
/usr/include/c++/12.2.0/bits/locale_conv.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/dcrtpoly.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/coefpackedencoding.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/packedencoding.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/stringencoding.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/backend.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/stdlatticeparms.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/debug.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/defines.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/config.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/metadata.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/plaintextfactory.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodings.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/matrix.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/pubkeylp.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/caller_info.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/hashutil.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/ciphertext.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/palisade.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontext.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/allscheme.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/rlwe.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/stdlatticeparms.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bgvrns/bgvrns.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/dftransfrm.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfv/bfv.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfvrns/bfvrns.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfvrnsb/bfvrnsB.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/ckks/ckks.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/null/nullscheme.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontexthelper.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontextparametersets.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/serial.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/sertype.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/archives/portable_binary.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/archives/json.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/prettywriter.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/writer.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/stream.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/rapidjson.h
|
||||
/usr/include/inttypes.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/encodings.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/meta.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/rapidjson.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/stack.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/allocators.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/rapidjson.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/swap.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/strfunc.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/stream.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/dtoa.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/itoa.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/diyfp.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/ieee754.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/itoa.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/stringbuffer.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/ostreamwrapper.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/istreamwrapper.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/document.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/reader.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/allocators.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/encodedstream.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/memorystream.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/strtod.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/biginteger.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/pow10.h
|
||||
/usr/include/c++/12.2.0/climits
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed/limits.h
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed/syslimits.h
|
||||
/usr/include/limits.h
|
||||
/usr/include/bits/posix1_lim.h
|
||||
/usr/include/bits/local_lim.h
|
||||
/usr/include/linux/limits.h
|
||||
/usr/include/bits/posix2_lim.h
|
||||
/usr/include/bits/xopen_lim.h
|
||||
/usr/include/bits/uio_lim.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/error/error.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/rapidjson.h
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/base64.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/map.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/concepts/pair_associative_container.hpp
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/vector.hpp
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@ -0,0 +1,2 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Timestamp file for compiler generated dependencies management for demo-logistic.
|
||||
Binary file not shown.
@ -0,0 +1,365 @@
|
||||
CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o: \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/demo-logistic.cpp \
|
||||
/usr/include/stdc-predef.h /usr/include/getopt.h /usr/include/features.h \
|
||||
/usr/include/features-time64.h /usr/include/bits/wordsize.h \
|
||||
/usr/include/bits/timesize.h /usr/include/sys/cdefs.h \
|
||||
/usr/include/bits/long-double.h /usr/include/gnu/stubs.h \
|
||||
/usr/include/gnu/stubs-64.h /usr/include/bits/getopt_core.h \
|
||||
/usr/include/bits/getopt_ext.h /usr/include/c++/12.2.0/numeric \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++config.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/os_defines.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/cpu_defines.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_types.h \
|
||||
/usr/include/c++/12.2.0/type_traits \
|
||||
/usr/include/c++/12.2.0/bits/stl_numeric.h \
|
||||
/usr/include/c++/12.2.0/bits/concept_check.h \
|
||||
/usr/include/c++/12.2.0/debug/debug.h \
|
||||
/usr/include/c++/12.2.0/debug/assertions.h \
|
||||
/usr/include/c++/12.2.0/bits/move.h /usr/include/c++/12.2.0/cmath \
|
||||
/usr/include/c++/12.2.0/bits/cpp_type_traits.h \
|
||||
/usr/include/c++/12.2.0/ext/type_traits.h /usr/include/math.h \
|
||||
/usr/include/bits/libc-header-start.h /usr/include/bits/types.h \
|
||||
/usr/include/bits/typesizes.h /usr/include/bits/time64.h \
|
||||
/usr/include/bits/math-vector.h /usr/include/bits/libm-simd-decl-stubs.h \
|
||||
/usr/include/bits/floatn.h /usr/include/bits/floatn-common.h \
|
||||
/usr/include/bits/flt-eval-method.h /usr/include/bits/fp-logb.h \
|
||||
/usr/include/bits/fp-fast.h \
|
||||
/usr/include/bits/mathcalls-helper-functions.h \
|
||||
/usr/include/bits/mathcalls.h /usr/include/bits/mathcalls-narrow.h \
|
||||
/usr/include/bits/iscanonical.h /usr/include/c++/12.2.0/bits/std_abs.h \
|
||||
/usr/include/stdlib.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stddef.h \
|
||||
/usr/include/bits/waitflags.h /usr/include/bits/waitstatus.h \
|
||||
/usr/include/bits/types/locale_t.h /usr/include/bits/types/__locale_t.h \
|
||||
/usr/include/sys/types.h /usr/include/bits/types/clock_t.h \
|
||||
/usr/include/bits/types/clockid_t.h /usr/include/bits/types/time_t.h \
|
||||
/usr/include/bits/types/timer_t.h /usr/include/bits/stdint-intn.h \
|
||||
/usr/include/endian.h /usr/include/bits/endian.h \
|
||||
/usr/include/bits/endianness.h /usr/include/bits/byteswap.h \
|
||||
/usr/include/bits/uintn-identity.h /usr/include/sys/select.h \
|
||||
/usr/include/bits/select.h /usr/include/bits/types/sigset_t.h \
|
||||
/usr/include/bits/types/__sigset_t.h \
|
||||
/usr/include/bits/types/struct_timeval.h \
|
||||
/usr/include/bits/types/struct_timespec.h \
|
||||
/usr/include/bits/pthreadtypes.h /usr/include/bits/thread-shared-types.h \
|
||||
/usr/include/bits/pthreadtypes-arch.h \
|
||||
/usr/include/bits/atomic_wide_counter.h /usr/include/bits/struct_mutex.h \
|
||||
/usr/include/bits/struct_rwlock.h /usr/include/alloca.h \
|
||||
/usr/include/bits/stdlib-bsearch.h /usr/include/bits/stdlib-float.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/palisade.h \
|
||||
/usr/include/c++/12.2.0/initializer_list /usr/include/c++/12.2.0/memory \
|
||||
/usr/include/c++/12.2.0/bits/stl_algobase.h \
|
||||
/usr/include/c++/12.2.0/bits/functexcept.h \
|
||||
/usr/include/c++/12.2.0/bits/exception_defines.h \
|
||||
/usr/include/c++/12.2.0/ext/numeric_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_pair.h \
|
||||
/usr/include/c++/12.2.0/bits/utility.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator_base_funcs.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_iterator.h \
|
||||
/usr/include/c++/12.2.0/bits/ptr_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/predefined_ops.h \
|
||||
/usr/include/c++/12.2.0/bits/allocator.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++allocator.h \
|
||||
/usr/include/c++/12.2.0/bits/new_allocator.h /usr/include/c++/12.2.0/new \
|
||||
/usr/include/c++/12.2.0/bits/exception.h \
|
||||
/usr/include/c++/12.2.0/bits/memoryfwd.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_construct.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_uninitialized.h \
|
||||
/usr/include/c++/12.2.0/ext/alloc_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/alloc_traits.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_tempbuf.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_raw_storage_iter.h \
|
||||
/usr/include/c++/12.2.0/bits/align.h /usr/include/c++/12.2.0/bit \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdint.h \
|
||||
/usr/include/stdint.h /usr/include/bits/wchar.h \
|
||||
/usr/include/bits/stdint-uintn.h \
|
||||
/usr/include/c++/12.2.0/bits/uses_allocator.h \
|
||||
/usr/include/c++/12.2.0/bits/unique_ptr.h /usr/include/c++/12.2.0/tuple \
|
||||
/usr/include/c++/12.2.0/bits/invoke.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_function.h \
|
||||
/usr/include/c++/12.2.0/backward/binders.h \
|
||||
/usr/include/c++/12.2.0/bits/functional_hash.h \
|
||||
/usr/include/c++/12.2.0/bits/hash_bytes.h \
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr.h /usr/include/c++/12.2.0/iosfwd \
|
||||
/usr/include/c++/12.2.0/bits/stringfwd.h \
|
||||
/usr/include/c++/12.2.0/bits/postypes.h /usr/include/c++/12.2.0/cwchar \
|
||||
/usr/include/wchar.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include/stdarg.h \
|
||||
/usr/include/bits/types/wint_t.h /usr/include/bits/types/mbstate_t.h \
|
||||
/usr/include/bits/types/__mbstate_t.h /usr/include/bits/types/__FILE.h \
|
||||
/usr/include/bits/types/FILE.h \
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr_base.h \
|
||||
/usr/include/c++/12.2.0/typeinfo \
|
||||
/usr/include/c++/12.2.0/bits/allocated_ptr.h \
|
||||
/usr/include/c++/12.2.0/bits/refwrap.h \
|
||||
/usr/include/c++/12.2.0/ext/aligned_buffer.h \
|
||||
/usr/include/c++/12.2.0/ext/atomicity.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/gthr-default.h \
|
||||
/usr/include/pthread.h /usr/include/sched.h /usr/include/bits/sched.h \
|
||||
/usr/include/bits/types/struct_sched_param.h /usr/include/bits/cpu-set.h \
|
||||
/usr/include/time.h /usr/include/bits/time.h /usr/include/bits/timex.h \
|
||||
/usr/include/bits/types/struct_tm.h \
|
||||
/usr/include/bits/types/struct_itimerspec.h /usr/include/bits/setjmp.h \
|
||||
/usr/include/bits/types/struct___jmp_buf_tag.h \
|
||||
/usr/include/bits/pthread_stack_min-dynamic.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/atomic_word.h \
|
||||
/usr/include/sys/single_threaded.h \
|
||||
/usr/include/c++/12.2.0/ext/concurrence.h \
|
||||
/usr/include/c++/12.2.0/exception \
|
||||
/usr/include/c++/12.2.0/bits/exception_ptr.h \
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_init_exception.h \
|
||||
/usr/include/c++/12.2.0/bits/nested_exception.h \
|
||||
/usr/include/c++/12.2.0/bits/shared_ptr_atomic.h \
|
||||
/usr/include/c++/12.2.0/bits/atomic_base.h \
|
||||
/usr/include/c++/12.2.0/bits/atomic_lockfree_defines.h \
|
||||
/usr/include/c++/12.2.0/backward/auto_ptr.h \
|
||||
/usr/include/c++/12.2.0/string \
|
||||
/usr/include/c++/12.2.0/bits/char_traits.h \
|
||||
/usr/include/c++/12.2.0/cstdint /usr/include/c++/12.2.0/bits/localefwd.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++locale.h \
|
||||
/usr/include/c++/12.2.0/clocale /usr/include/locale.h \
|
||||
/usr/include/bits/locale.h /usr/include/c++/12.2.0/cctype \
|
||||
/usr/include/ctype.h /usr/include/c++/12.2.0/bits/ostream_insert.h \
|
||||
/usr/include/c++/12.2.0/bits/cxxabi_forced.h \
|
||||
/usr/include/c++/12.2.0/bits/range_access.h \
|
||||
/usr/include/c++/12.2.0/bits/basic_string.h \
|
||||
/usr/include/c++/12.2.0/ext/string_conversions.h \
|
||||
/usr/include/c++/12.2.0/cstdlib /usr/include/c++/12.2.0/cstdio \
|
||||
/usr/include/stdio.h /usr/include/bits/types/__fpos_t.h \
|
||||
/usr/include/bits/types/__fpos64_t.h \
|
||||
/usr/include/bits/types/struct_FILE.h \
|
||||
/usr/include/bits/types/cookie_io_functions_t.h \
|
||||
/usr/include/bits/stdio_lim.h /usr/include/bits/stdio.h \
|
||||
/usr/include/c++/12.2.0/cerrno /usr/include/errno.h \
|
||||
/usr/include/bits/errno.h /usr/include/linux/errno.h \
|
||||
/usr/include/asm/errno.h /usr/include/asm-generic/errno.h \
|
||||
/usr/include/asm-generic/errno-base.h /usr/include/bits/types/error_t.h \
|
||||
/usr/include/c++/12.2.0/bits/charconv.h \
|
||||
/usr/include/c++/12.2.0/bits/basic_string.tcc \
|
||||
/usr/include/c++/12.2.0/utility \
|
||||
/usr/include/c++/12.2.0/bits/stl_relops.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/palisadecore.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/version.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/backend.h \
|
||||
/usr/include/c++/12.2.0/fstream /usr/include/c++/12.2.0/istream \
|
||||
/usr/include/c++/12.2.0/ios /usr/include/c++/12.2.0/bits/ios_base.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_classes.tcc \
|
||||
/usr/include/c++/12.2.0/system_error \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/error_constants.h \
|
||||
/usr/include/c++/12.2.0/stdexcept /usr/include/c++/12.2.0/streambuf \
|
||||
/usr/include/c++/12.2.0/bits/streambuf.tcc \
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.h \
|
||||
/usr/include/c++/12.2.0/cwctype /usr/include/wctype.h \
|
||||
/usr/include/bits/wctype-wchar.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_base.h \
|
||||
/usr/include/c++/12.2.0/bits/streambuf_iterator.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/ctype_inline.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets.tcc \
|
||||
/usr/include/c++/12.2.0/bits/basic_ios.tcc \
|
||||
/usr/include/c++/12.2.0/ostream /usr/include/c++/12.2.0/bits/ostream.tcc \
|
||||
/usr/include/c++/12.2.0/bits/istream.tcc \
|
||||
/usr/include/c++/12.2.0/bits/codecvt.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/basic_file.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/c++io.h \
|
||||
/usr/include/c++/12.2.0/bits/fstream.tcc \
|
||||
/usr/include/c++/12.2.0/functional \
|
||||
/usr/include/c++/12.2.0/bits/std_function.h \
|
||||
/usr/include/c++/12.2.0/iostream /usr/include/c++/12.2.0/limits \
|
||||
/usr/include/c++/12.2.0/sstream /usr/include/c++/12.2.0/bits/sstream.tcc \
|
||||
/usr/include/c++/12.2.0/vector /usr/include/c++/12.2.0/bits/stl_vector.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_bvector.h \
|
||||
/usr/include/c++/12.2.0/bits/vector.tcc \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/config_core.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/version.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/interface.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/inttypes.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/debug.h \
|
||||
/usr/include/c++/12.2.0/chrono /usr/include/c++/12.2.0/bits/chrono.h \
|
||||
/usr/include/c++/12.2.0/ratio /usr/include/c++/12.2.0/ctime \
|
||||
/usr/include/c++/12.2.0/bits/parse_numbers.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/exception.h \
|
||||
/usr/include/c++/12.2.0/mutex /usr/include/c++/12.2.0/bits/std_mutex.h \
|
||||
/usr/include/c++/12.2.0/bits/unique_lock.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/memory.h \
|
||||
/usr/include/c++/12.2.0/algorithm \
|
||||
/usr/include/c++/12.2.0/bits/stl_algo.h \
|
||||
/usr/include/c++/12.2.0/bits/algorithmfwd.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_heap.h \
|
||||
/usr/include/c++/12.2.0/bits/uniform_int_dist.h \
|
||||
/usr/include/c++/12.2.0/iterator \
|
||||
/usr/include/c++/12.2.0/bits/stream_iterator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/palisadebase64.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/parallel.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/serializable.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/cereal.hpp \
|
||||
/usr/include/c++/12.2.0/unordered_map \
|
||||
/usr/include/c++/12.2.0/bits/hashtable.h \
|
||||
/usr/include/c++/12.2.0/bits/hashtable_policy.h \
|
||||
/usr/include/c++/12.2.0/bits/enable_special_members.h \
|
||||
/usr/include/c++/12.2.0/bits/unordered_map.h \
|
||||
/usr/include/c++/12.2.0/bits/erase_if.h \
|
||||
/usr/include/c++/12.2.0/unordered_set \
|
||||
/usr/include/c++/12.2.0/bits/unordered_set.h \
|
||||
/usr/include/c++/12.2.0/cstddef \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/macros.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/traits.hpp \
|
||||
/usr/include/c++/12.2.0/typeindex \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/access.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/specialize.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/helpers.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/static_object.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/base_class.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/polymorphic_impl_fwd.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/common.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/polymorphic.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/memory.hpp \
|
||||
/usr/include/c++/12.2.0/cstring /usr/include/string.h \
|
||||
/usr/include/strings.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/util.hpp \
|
||||
/usr/include/c++/12.2.0/cxxabi.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/cxxabi_tweaks.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/details/polymorphic_impl.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/string.hpp \
|
||||
/usr/include/c++/12.2.0/map /usr/include/c++/12.2.0/bits/stl_tree.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_map.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_multimap.h /usr/include/c++/12.2.0/set \
|
||||
/usr/include/c++/12.2.0/bits/stl_set.h \
|
||||
/usr/include/c++/12.2.0/bits/stl_multiset.h \
|
||||
/usr/include/c++/12.2.0/stack /usr/include/c++/12.2.0/deque \
|
||||
/usr/include/c++/12.2.0/bits/stl_deque.h \
|
||||
/usr/include/c++/12.2.0/bits/deque.tcc \
|
||||
/usr/include/c++/12.2.0/bits/stl_stack.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/mubintvecfxd.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/ubintfxd.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/backend.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/ubintfxd.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintdyn/mubintvecdyn.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintfxd/mubintvecfxd.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintdyn/ubintdyn.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/nbtheory.h \
|
||||
/usr/include/c++/12.2.0/random /usr/include/c++/12.2.0/bits/random.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/opt_random.h \
|
||||
/usr/include/c++/12.2.0/bits/random.tcc \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintnat/mubintvecnat.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/interface.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/xvector.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/stl_allocator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/blockAllocator/xallocator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/bigintnat/ubintnat.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/nbtheory.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distrgen.h \
|
||||
/usr/include/c++/12.2.0/bitset \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/binaryuniformgenerator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distributiongenerator.h \
|
||||
/usr/include/c++/12.2.0/thread /usr/include/c++/12.2.0/bits/std_thread.h \
|
||||
/usr/include/c++/12.2.0/bits/this_thread_sleep.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/prng/blake2engine.h \
|
||||
/usr/include/c++/12.2.0/array /usr/include/c++/12.2.0/compare \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/prng/blake2.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discretegaussiangenerator.h \
|
||||
/usr/include/c++/12.2.0/math.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discretegaussiangeneratorgeneric.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/discreteuniformgenerator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/ternaryuniformgenerator.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodings.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/ckkspackedencoding.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodingparams.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/plaintext.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/backend.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/elemparams.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ildcrtparams.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ilparams.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/ilelement.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/poly.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/distrgen.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/transfrm.h \
|
||||
/usr/include/c++/12.2.0/complex \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/utilities.h \
|
||||
/usr/include/c++/12.2.0/iomanip /usr/include/c++/12.2.0/locale \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets_nonio.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/time_members.h \
|
||||
/usr/include/c++/12.2.0/x86_64-pc-linux-gnu/bits/messages_members.h \
|
||||
/usr/include/libintl.h \
|
||||
/usr/include/c++/12.2.0/bits/locale_facets_nonio.tcc \
|
||||
/usr/include/c++/12.2.0/bits/locale_conv.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/dcrtpoly.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/coefpackedencoding.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/packedencoding.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/stringencoding.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/backend.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/stdlatticeparms.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/debug.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/defines.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/config.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/metadata.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/plaintextfactory.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/encoding/encodings.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/matrix.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/pubkeylp.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/caller_info.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/hashutil.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/ciphertext.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/palisade.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontext.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/allscheme.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/rlwe.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/lattice/stdlatticeparms.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bgvrns/bgvrns.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/math/dftransfrm.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfv/bfv.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfvrns/bfvrns.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/bfvrnsb/bfvrnsB.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/ckks/ckks.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/scheme/null/nullscheme.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontexthelper.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke/cryptocontextparametersets.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/serial.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core/utils/sertype.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/archives/portable_binary.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/archives/json.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/prettywriter.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/writer.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/stream.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/rapidjson.h \
|
||||
/usr/include/inttypes.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/encodings.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/meta.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/../rapidjson.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/stack.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/../allocators.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/../rapidjson.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/swap.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/strfunc.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/../stream.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/dtoa.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/itoa.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/diyfp.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/ieee754.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/itoa.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/stringbuffer.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/ostreamwrapper.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/istreamwrapper.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/document.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/reader.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/allocators.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/encodedstream.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/memorystream.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/strtod.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/biginteger.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/internal/pow10.h \
|
||||
/usr/include/c++/12.2.0/climits \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed/limits.h \
|
||||
/usr/lib/gcc/x86_64-pc-linux-gnu/12.2.0/include-fixed/syslimits.h \
|
||||
/usr/include/limits.h /usr/include/bits/posix1_lim.h \
|
||||
/usr/include/bits/local_lim.h /usr/include/linux/limits.h \
|
||||
/usr/include/bits/posix2_lim.h /usr/include/bits/xopen_lim.h \
|
||||
/usr/include/bits/uio_lim.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/error/error.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/rapidjson/error/../rapidjson.h \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/external/base64.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/map.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/concepts/pair_associative_container.hpp \
|
||||
/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/cereal/types/vector.hpp
|
||||
@ -0,0 +1,2 @@
|
||||
# Empty dependencies file for demo-logistic.
|
||||
# This may be replaced when dependencies are built.
|
||||
@ -0,0 +1,10 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# compile CXX with /usr/bin/c++
|
||||
CXX_DEFINES =
|
||||
|
||||
CXX_INCLUDES = -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/core -I/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/include/palisade/pke
|
||||
|
||||
CXX_FLAGS = -Wall -Werror -O3 -DPALISADE_VERSION=1.11.8 -Wno-parentheses -DMATHBACKEND=2 -fopenmp -fopenmp -std=gnu++11
|
||||
|
||||
@ -0,0 +1 @@
|
||||
/usr/bin/c++ -Wall -Werror -O3 -DPALISADE_VERSION=1.11.8 -Wno-parentheses -DMATHBACKEND=2 -fopenmp -fopenmp "CMakeFiles/demo-logistic.dir/demo-logistic.cpp.o" -o demo-logistic -L/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/lib -Wl,-rpath,/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib:/home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/install/lib /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEpke.so.1.11.8 /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEbinfhe.so.1.11.8 -fopenmp /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/PALISADE/build/lib/libPALISADEcore.so.1.11.8 -fopenmp
|
||||
@ -0,0 +1,3 @@
|
||||
CMAKE_PROGRESS_1 = 4
|
||||
CMAKE_PROGRESS_2 = 5
|
||||
|
||||
@ -0,0 +1 @@
|
||||
3
|
||||
208
Code/Duality_Technologies/GWAS/build/Makefile
Normal file
208
Code/Duality_Technologies/GWAS/build/Makefile
Normal file
@ -0,0 +1,208 @@
|
||||
# CMAKE generated file: DO NOT EDIT!
|
||||
# Generated by "Unix Makefiles" Generator, CMake Version 3.25
|
||||
|
||||
# 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 = /usr/bin/cmake
|
||||
|
||||
# The command to remove a file.
|
||||
RM = /usr/bin/cmake -E rm -f
|
||||
|
||||
# Escaping for special characters.
|
||||
EQUALS = =
|
||||
|
||||
# The top-level source directory on which CMake was run.
|
||||
CMAKE_SOURCE_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
# The top-level build directory on which CMake was run.
|
||||
CMAKE_BINARY_DIR = /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build
|
||||
|
||||
#=============================================================================
|
||||
# Targets provided globally by CMake.
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..."
|
||||
/usr/bin/ccmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR)
|
||||
.PHONY : edit_cache
|
||||
|
||||
# Special rule for the target edit_cache
|
||||
edit_cache/fast: edit_cache
|
||||
.PHONY : edit_cache/fast
|
||||
|
||||
# Special rule for the target rebuild_cache
|
||||
rebuild_cache:
|
||||
@$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..."
|
||||
/usr/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
|
||||
|
||||
# The main all target
|
||||
all: cmake_check_build_system
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/CMakeFiles /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build//CMakeFiles/progress.marks
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 all
|
||||
$(CMAKE_COMMAND) -E cmake_progress_start /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/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 demo-chi2
|
||||
|
||||
# Build rule for target.
|
||||
demo-chi2: cmake_check_build_system
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/Makefile2 demo-chi2
|
||||
.PHONY : demo-chi2
|
||||
|
||||
# fast build rule for target.
|
||||
demo-chi2/fast:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/build
|
||||
.PHONY : demo-chi2/fast
|
||||
|
||||
avail_mem.o: avail_mem.cpp.o
|
||||
.PHONY : avail_mem.o
|
||||
|
||||
# target to build an object file
|
||||
avail_mem.cpp.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/avail_mem.cpp.o
|
||||
.PHONY : avail_mem.cpp.o
|
||||
|
||||
avail_mem.i: avail_mem.cpp.i
|
||||
.PHONY : avail_mem.i
|
||||
|
||||
# target to preprocess a source file
|
||||
avail_mem.cpp.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/avail_mem.cpp.i
|
||||
.PHONY : avail_mem.cpp.i
|
||||
|
||||
avail_mem.s: avail_mem.cpp.s
|
||||
.PHONY : avail_mem.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
avail_mem.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/avail_mem.cpp.s
|
||||
.PHONY : avail_mem.cpp.s
|
||||
|
||||
demo-chi2.o: demo-chi2.cpp.o
|
||||
.PHONY : demo-chi2.o
|
||||
|
||||
# target to build an object file
|
||||
demo-chi2.cpp.o:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/demo-chi2.cpp.o
|
||||
.PHONY : demo-chi2.cpp.o
|
||||
|
||||
demo-chi2.i: demo-chi2.cpp.i
|
||||
.PHONY : demo-chi2.i
|
||||
|
||||
# target to preprocess a source file
|
||||
demo-chi2.cpp.i:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/demo-chi2.cpp.i
|
||||
.PHONY : demo-chi2.cpp.i
|
||||
|
||||
demo-chi2.s: demo-chi2.cpp.s
|
||||
.PHONY : demo-chi2.s
|
||||
|
||||
# target to generate assembly for a file
|
||||
demo-chi2.cpp.s:
|
||||
$(MAKE) $(MAKESILENT) -f CMakeFiles/demo-chi2.dir/build.make CMakeFiles/demo-chi2.dir/demo-chi2.cpp.s
|
||||
.PHONY : demo-chi2.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 "... demo-chi2"
|
||||
@echo "... avail_mem.o"
|
||||
@echo "... avail_mem.i"
|
||||
@echo "... avail_mem.s"
|
||||
@echo "... demo-chi2.o"
|
||||
@echo "... demo-chi2.i"
|
||||
@echo "... demo-chi2.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
|
||||
|
||||
54
Code/Duality_Technologies/GWAS/build/cmake_install.cmake
Normal file
54
Code/Duality_Technologies/GWAS/build/cmake_install.cmake
Normal file
@ -0,0 +1,54 @@
|
||||
# Install script for directory: /home/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS
|
||||
|
||||
# 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 "")
|
||||
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 "0")
|
||||
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/noah/Documents/School/CS-6643-Bioinformatics/CS-6643-Bioinformatics-Research-Project/Code/Duality_Technologies/GWAS/build/${CMAKE_INSTALL_MANIFEST}"
|
||||
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
||||
BIN
Code/Duality_Technologies/GWAS/build/demo-chi2
Executable file
BIN
Code/Duality_Technologies/GWAS/build/demo-chi2
Executable file
Binary file not shown.
BIN
Code/Duality_Technologies/GWAS/build/demo-logistic
Executable file
BIN
Code/Duality_Technologies/GWAS/build/demo-logistic
Executable file
Binary file not shown.
4
Code/Duality_Technologies/GWAS/build/run.sh
Executable file
4
Code/Duality_Technologies/GWAS/build/run.sh
Executable file
@ -0,0 +1,4 @@
|
||||
NODES=${1:-1}
|
||||
|
||||
mpiexec --mca opal_warn_on_missing_libcuda 0 --mca btl_openib_allow_ib 1 -np ${NODES} demo-chi2 --SNPdir "../data" --SNPfilename "random_sample" --pvalue "pvalue.txt" --runtime "result.txt" --samplesize="200" --snps="16384"
|
||||
|
||||
16384
Code/Duality_Technologies/GWAS/data/0_0chi2.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/0_0chi2.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/0_0odds.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/0_0odds.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/0_0pvalue.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/0_0pvalue.txt
Normal file
File diff suppressed because it is too large
Load Diff
5
Code/Duality_Technologies/GWAS/data/0_0result.txt
Normal file
5
Code/Duality_Technologies/GWAS/data/0_0result.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Key Generation Time: 0.024 s
|
||||
Encoding and Encryption Time: 5.123 s
|
||||
Computation Time: 1.372 s
|
||||
Decryption & Decoding Time: 0.169 s
|
||||
End-to-end Runtime: 6.994 s
|
||||
16384
Code/Duality_Technologies/GWAS/data/1_0chi2.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/1_0chi2.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/1_0odds.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/1_0odds.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/1_0pvalue.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/1_0pvalue.txt
Normal file
File diff suppressed because it is too large
Load Diff
5
Code/Duality_Technologies/GWAS/data/1_0result.txt
Normal file
5
Code/Duality_Technologies/GWAS/data/1_0result.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Key Generation Time: 0.029 s
|
||||
Encoding and Encryption Time: 5.157 s
|
||||
Computation Time: 1.37 s
|
||||
Decryption & Decoding Time: 0.209 s
|
||||
End-to-end Runtime: 6.988 s
|
||||
16384
Code/Duality_Technologies/GWAS/data/chi2.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/chi2.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/odds.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/odds.txt
Normal file
File diff suppressed because it is too large
Load Diff
16384
Code/Duality_Technologies/GWAS/data/pvalue.txt
Normal file
16384
Code/Duality_Technologies/GWAS/data/pvalue.txt
Normal file
File diff suppressed because it is too large
Load Diff
201
Code/Duality_Technologies/GWAS/data/random_sample.csv
Normal file
201
Code/Duality_Technologies/GWAS/data/random_sample.csv
Normal file
File diff suppressed because one or more lines are too long
5
Code/Duality_Technologies/GWAS/data/result.txt
Normal file
5
Code/Duality_Technologies/GWAS/data/result.txt
Normal file
@ -0,0 +1,5 @@
|
||||
Key Generation Time: 0.023 s
|
||||
Encoding and Encryption Time: 9.686 s
|
||||
Computation Time: 1.842 s
|
||||
Decryption & Decoding Time: 0.159 s
|
||||
End-to-end Runtime: 12.014 s
|
||||
646
Code/Duality_Technologies/GWAS/demo-chi2.cpp
Normal file
646
Code/Duality_Technologies/GWAS/demo-chi2.cpp
Normal file
@ -0,0 +1,646 @@
|
||||
/***
|
||||
* Copyright (c) 2020 Duality Technologies, Inc.
|
||||
* Licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International Public License <https://creativecommons.org/licenses/by-nc-sa/4.0/legalcode>
|
||||
* See the LICENSE.md file for the full text of the license.
|
||||
* If you share the Licensed Material (including in modified form) you must include the above attribution in the copy you share.
|
||||
***/
|
||||
/*
|
||||
|
||||
Implementation for the Chi-Square GWAS solution described in
|
||||
"Secure large-scale genome-wide association studies using homomorphic encryption"
|
||||
by Marcelo Blatt, Alexander Gusev, Yuriy Polyakov, and Shafi Goldwasser
|
||||
|
||||
Command to execute the prototype
|
||||
./demo-chi2 --SNPdir "../data" --SNPfilename "random_sample" --pvalue "pvalue.txt" --runtime "result.txt" --samplesize="200" --snps="16384"
|
||||
|
||||
*/
|
||||
|
||||
#include <getopt.h>
|
||||
#include <numeric>
|
||||
#include <cmath>
|
||||
#include <boost/mpi.hpp>
|
||||
#include <boost/mpi/environment.hpp>
|
||||
|
||||
#include "palisade.h"
|
||||
#include "demo_chi2.h"
|
||||
#include "avail_mem.h"
|
||||
|
||||
|
||||
namespace mpi = boost::mpi;
|
||||
namespace mt = mpi::threading;
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
double BS(double z) {
|
||||
double y = exp(-z*z/2);
|
||||
return sqrt(1-y) * (31*y/200 - 341*y*y/8000) / sqrt(M_PI);
|
||||
}
|
||||
|
||||
static bool Equal(double a, double b) { return (EPSILON > fabs(a-b)); }
|
||||
static bool Less(double a, double b) { return ((a-b) < (-EPSILON)); }
|
||||
static bool Greater(double a, double b) { return ((a-b) > EPSILON); }
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
|
||||
int opt;
|
||||
|
||||
PalisadeParallelControls.Enable();
|
||||
|
||||
static struct option long_options[] =
|
||||
{
|
||||
/* These options dont set a flag.
|
||||
We distinguish them by their indices. */
|
||||
{"SNPdir", required_argument, 0, 'S'},
|
||||
{"SNPfilename", required_argument, 0, 's'},
|
||||
{"pvalue", required_argument, 0, 'p'},
|
||||
{"runtime", required_argument, 0, 'r'},
|
||||
{"samplesize", required_argument, 0, 'N'},
|
||||
{"snps", required_argument, 0, 'M'},
|
||||
{0, 0, 0, 0}
|
||||
};
|
||||
|
||||
/* getopt_long stores the option index here. */
|
||||
int option_index = 0;
|
||||
|
||||
string SNPDir;
|
||||
string SNPFileName;
|
||||
string pValue;
|
||||
string Runtime;
|
||||
string SampleSize;
|
||||
string SNPs;
|
||||
vector<string> headers1;
|
||||
vector<string> headersS;
|
||||
std::vector<double> yData;
|
||||
std::vector<std::vector<double>> sData;
|
||||
|
||||
while ((opt = getopt_long(argc, argv, "S:s:p:r:N:M", long_options, &option_index)) != -1) {
|
||||
switch (opt)
|
||||
{
|
||||
case 'S':
|
||||
SNPDir = optarg;
|
||||
break;
|
||||
case 's':
|
||||
SNPFileName = optarg;
|
||||
break;
|
||||
case 'p':
|
||||
pValue = optarg;
|
||||
break;
|
||||
case 'r':
|
||||
Runtime = optarg;
|
||||
break;
|
||||
case 'N':
|
||||
SampleSize = optarg;
|
||||
break;
|
||||
case 'M':
|
||||
SNPs = optarg;
|
||||
break;
|
||||
default: /* '?' */
|
||||
std::cerr<< "Usage: "<<argv[0]<<" <arguments> " <<std::endl
|
||||
<< "arguments:" <<std::endl
|
||||
<< " -S --SNPdir SNP file directory" <<std::endl
|
||||
<< " -s --SNPfilename SNP file name" <<std::endl
|
||||
<< " -o --pvalue p-values file" <<std::endl
|
||||
<< " -r --runtime runtime output file name" <<std::endl
|
||||
<< " -N --samplesize number of individuals" <<std::endl
|
||||
<< " -M --snps number of SNPs" <<std::endl;
|
||||
exit(EXIT_FAILURE);
|
||||
}
|
||||
}
|
||||
|
||||
mt::level mt_level = mt::multiple;
|
||||
boost::mpi::environment env(argc, argv, mt_level);
|
||||
mt ::level provided = env.thread_level();
|
||||
|
||||
mpi::communicator world;
|
||||
if (world.rank() == 0){
|
||||
std::cout << "Asked the MPI environment to be created with threading level: "\
|
||||
<< mt_level << std::endl;
|
||||
std::cout << "MPI Environment was created with threading level: " << provided \
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
char hammer_host[256];
|
||||
gethostname(hammer_host, 256);
|
||||
|
||||
std::cout << "\nHello from process " << world.rank() << " of " << world.size()
|
||||
<< " running on " << hammer_host << std::endl;
|
||||
|
||||
world.barrier();
|
||||
|
||||
ReadSNPFile(headersS,sData,yData,SNPDir + "/" + SNPFileName,1,1, 0);
|
||||
auto tot_sys_mem = getTotalSystemMemory();
|
||||
auto mem_test = (double) ((yData.size() * (sizeof(double_t)) + (sData.size() * (sData.back().size() * sizeof(double_t)))));
|
||||
std::cout << "Maximum Memory size of Node " << world.rank() << " is " << std::ceil(double(tot_sys_mem/1024.0/1024.0/1024.0) * 100.0)/100.0 << " GB" << std::endl;
|
||||
|
||||
int batch_size = std::floor((0.50*tot_sys_mem)/mem_test);
|
||||
int rem = std::stoi(SampleSize) % world.size();
|
||||
int node_samples = std::stoi(SampleSize)/world.size();
|
||||
int node_start = world.rank()*node_samples + rem;
|
||||
//int node_stop = node_start+(node_samples-1);
|
||||
|
||||
if (world.rank() < rem){
|
||||
node_start = world.rank() * (node_samples+1);
|
||||
//int node_stop = node_start + node_samples;
|
||||
}
|
||||
|
||||
std::cout << "Node " << world.rank() << " can have a maximum batch size of " << batch_size << " samples." << std::endl;
|
||||
|
||||
world.barrier();
|
||||
|
||||
if (world.rank() == 0 ){
|
||||
std::cout << "Each node is responsible for " << node_samples << " samples.\n" << std::endl;
|
||||
}
|
||||
|
||||
double keyGenTime(0.0);
|
||||
double encryptionTime(0.0);
|
||||
double computationTime(0.0);
|
||||
double decryptionTime(0.0);
|
||||
double endToEndTime(0.0);
|
||||
|
||||
//usint m = 16384;
|
||||
usint m = 65536;
|
||||
|
||||
usint init_size = 4;
|
||||
usint dcrtBits = 54;
|
||||
|
||||
CryptoContext<DCRTPoly> cc =
|
||||
CryptoContextFactory<DCRTPoly>::genCryptoContextCKKS(
|
||||
init_size-1,
|
||||
dcrtBits,
|
||||
0,
|
||||
HEStd_128_classic,
|
||||
m/2, /*ringDimension*/
|
||||
APPROXRESCALE,
|
||||
BV,
|
||||
3, /*numLargeDigits*/
|
||||
2, /*maxDepth*/
|
||||
dcrtBits, /*firstMod*/
|
||||
0,
|
||||
OPTIMIZED);
|
||||
|
||||
cc->Enable(ENCRYPTION);
|
||||
cc->Enable(SHE);
|
||||
cc->Enable(LEVELEDSHE);
|
||||
|
||||
TimeVar t;
|
||||
TIC(t);
|
||||
|
||||
auto keyPair = cc->KeyGen();
|
||||
|
||||
keyGenTime += TOC(t);
|
||||
|
||||
for (int i = 0; i < std::ceil((double)node_samples/(double)batch_size); i++)
|
||||
{
|
||||
int curr_batch = node_samples - (batch_size*i);
|
||||
int batch_gen = curr_batch;
|
||||
if (curr_batch > batch_size){
|
||||
batch_gen = batch_size;
|
||||
}
|
||||
|
||||
int file_start = node_start + (batch_size*i);
|
||||
|
||||
std::cout << "Node " << world.rank() << " running batch " << i << " with batch size " << batch_gen << std::endl;
|
||||
RunChi2(SNPDir, SNPFileName, pValue, Runtime, std::to_string(batch_gen), SNPs, file_start, keyGenTime, encryptionTime, computationTime, decryptionTime, endToEndTime, cc, keyPair, i, world);
|
||||
}
|
||||
|
||||
std::cout << "Node " << world.rank() << " completed all batches." << std::endl;
|
||||
|
||||
if (world.rank() != 0){
|
||||
world.isend(0, 0, keyGenTime);
|
||||
world.isend(0, 1, encryptionTime);
|
||||
world.isend(0, 2, computationTime);
|
||||
world.isend(0, 3, decryptionTime);
|
||||
world.isend(0, 4, endToEndTime);
|
||||
|
||||
}
|
||||
|
||||
world.barrier();
|
||||
|
||||
if (world.rank() == 0){
|
||||
std::vector<double> task_times;
|
||||
for (int task = 0; task < 5; task++){
|
||||
task_times.push_back(0);
|
||||
}
|
||||
task_times.at(0) += keyGenTime;
|
||||
task_times.at(1) = encryptionTime;
|
||||
task_times.at(2)= computationTime;
|
||||
task_times.at(3) = decryptionTime;
|
||||
task_times.at(4) = endToEndTime;
|
||||
|
||||
if (world.size() > 1){
|
||||
for (int j = 0; j < 5; j++){
|
||||
while (world.iprobe(mpi::any_source, j)){
|
||||
double tmp;
|
||||
world.recv(mpi::any_source, j, tmp);
|
||||
task_times.at(j) += tmp;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
std::cout << "\nTotal Key Generation Time: \t\t" << task_times.at(0)/1000 << " s" << std::endl;
|
||||
std::cout << "Total Encoding and Encryption Time: \t" << task_times.at(1)/1000 << " s" << std::endl;
|
||||
std::cout << "Total Computation Time: \t\t" << task_times.at(2)/1000 << " s" << std::endl;
|
||||
std::cout << "Total Decryption & Decoding Time: \t" << task_times.at(3)/1000 << " s" << std::endl;
|
||||
std::cout << "Total End-to-end Runtime: \t\t" << task_times.at(4)/1000 << " s" << std::endl;
|
||||
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void RunChi2(const string &SNPDir,
|
||||
const string &SNPFileName, const string &pValue, const string &Runtime, const string &SampleSize, const string &SNPs,
|
||||
size_t file_start, double &keyGenTime, double &encryptionTime, double &computationTime, double &decryptionTime, double &endToEndTime,
|
||||
CryptoContext<DCRTPoly> &cc, auto &keyPair, int batch_num, mpi::communicator &world) {
|
||||
|
||||
TimeVar t;
|
||||
TimeVar tAll;
|
||||
|
||||
TIC(tAll);
|
||||
|
||||
//std::cout << "\n======CHI-SQUARE SOLUTION========\n" << std::endl;
|
||||
|
||||
vector<string> headers1;
|
||||
vector<string> headersS;
|
||||
|
||||
std::vector<double> yData;
|
||||
std::vector<std::vector<double>> sData;
|
||||
|
||||
size_t N = std::stoi(SampleSize);
|
||||
size_t M = std::stoi(SNPs);
|
||||
usint m = 65536;
|
||||
double scalingFactor = 2.5e-6;
|
||||
|
||||
ReadSNPFile(headersS,sData,yData,SNPDir + "/" + SNPFileName,N,M, file_start);
|
||||
|
||||
TIC(t);
|
||||
|
||||
size_t sizeS = (size_t)std::ceil((double)sData[0].size()/(m/4));
|
||||
|
||||
std::vector<std::vector<std::vector<std::complex<double>>>> sDataArray(sizeS);
|
||||
|
||||
for(size_t s = 0; s < sizeS; s++)
|
||||
sDataArray[s] = std::vector<std::vector<std::complex<double>>>(sData.size());
|
||||
|
||||
for (size_t i=0; i < sData.size(); i++){
|
||||
|
||||
for(size_t s = 0; s < sizeS; s++)
|
||||
sDataArray[s][i] = std::vector<std::complex<double>>(sData[i].size());
|
||||
|
||||
size_t counter = 0;
|
||||
|
||||
for (size_t j=0; j<sData[i].size(); j++) {
|
||||
if ((j>0) && (j%(m/4)==0))
|
||||
counter++;
|
||||
sDataArray[counter][i][j%(m/4)] = sData[i][j];
|
||||
}
|
||||
}
|
||||
|
||||
//std::cerr << " sData = " << sDataArray << std::endl;
|
||||
|
||||
std::vector<std::vector<Ciphertext<DCRTPoly>>> S(sizeS);
|
||||
std::vector<Ciphertext<DCRTPoly>> Y(N);
|
||||
|
||||
for (size_t i = 0; i < sizeS; i++)
|
||||
S[i] = std::vector<Ciphertext<DCRTPoly>>(N);
|
||||
|
||||
//Encryption of single-integer ciphertexts
|
||||
#pragma omp parallel for
|
||||
for (size_t i=0; i<N; i++){
|
||||
for (size_t s=0; s < sizeS; s++){
|
||||
Plaintext sTemp = cc->MakeCKKSPackedPlaintext(sDataArray[s][i]);
|
||||
S[s][i] = cc->Encrypt(keyPair.publicKey, sTemp);
|
||||
}
|
||||
Plaintext sTemp2 = cc->MakeCKKSPackedPlaintext(std::vector<std::complex<double>>(m/4,yData[i]));
|
||||
Y[i] = cc->Encrypt(keyPair.publicKey, sTemp2);
|
||||
}
|
||||
|
||||
encryptionTime += TOC(t);
|
||||
|
||||
TIC(t);
|
||||
|
||||
Plaintext d = cc->MakeCKKSPackedPlaintext(std::vector<std::complex<double>>(m/4,2*N));
|
||||
d->SetFormat(EVALUATION);
|
||||
|
||||
Plaintext dScaled = cc->MakeCKKSPackedPlaintext(std::vector<std::complex<double>>(m/4,2*N*scalingFactor));
|
||||
dScaled->SetFormat(EVALUATION);
|
||||
|
||||
std::vector<Ciphertext<DCRTPoly>> ySum = Y;
|
||||
|
||||
auto yU = BinaryTreeAdd(ySum);
|
||||
|
||||
std::vector<Ciphertext<DCRTPoly>> chiD(sizeS);
|
||||
std::vector<Ciphertext<DCRTPoly>> chiN(sizeS);
|
||||
|
||||
std::vector<Ciphertext<DCRTPoly>> orD(sizeS);
|
||||
std::vector<Ciphertext<DCRTPoly>> orN(sizeS);
|
||||
|
||||
for (size_t s = 0; s < sizeS; s++) {
|
||||
|
||||
std::vector<Ciphertext<DCRTPoly>> ySMult(N);
|
||||
|
||||
#pragma omp parallel for
|
||||
for(size_t i = 0; i < N; i++) {
|
||||
ySMult[i] = cc->EvalMultNoRelin(S[s][i],Y[i]);
|
||||
}
|
||||
|
||||
auto n11 = BinaryTreeAdd(ySMult);
|
||||
|
||||
n11 = cc->ModReduce(n11);
|
||||
|
||||
auto c1 = BinaryTreeAdd(S[s]);
|
||||
|
||||
auto r1 = cc->EvalAdd(yU,yU);
|
||||
|
||||
auto r1Scaled = cc->EvalMult(r1,scalingFactor);
|
||||
r1Scaled = cc->ModReduce(r1Scaled);
|
||||
|
||||
auto c1Scaled = cc->EvalMult(c1,scalingFactor);
|
||||
c1Scaled = cc->ModReduce(c1Scaled);
|
||||
|
||||
r1 = cc->LevelReduce(r1,nullptr);
|
||||
c1 = cc->LevelReduce(c1,nullptr);
|
||||
|
||||
// Chi2 computation
|
||||
|
||||
// numerator
|
||||
|
||||
auto mult1 = cc->EvalMult(n11,dScaled);
|
||||
auto mult2 = cc->EvalMultNoRelin(c1,r1Scaled);
|
||||
|
||||
auto chiN1 = cc->EvalSub(mult1,mult2);
|
||||
chiN1 = cc->ModReduce(chiN1);
|
||||
|
||||
chiN[s] = cc->EvalMultNoRelin(chiN1,chiN1);
|
||||
|
||||
// denominator
|
||||
|
||||
auto chiD1 = cc->EvalMultNoRelin(c1,cc->EvalSub(dScaled,c1Scaled));
|
||||
chiD1 = cc->ModReduce(chiD1);
|
||||
|
||||
auto chiD2 = cc->EvalMultNoRelin(r1,cc->EvalSub(dScaled,r1Scaled));
|
||||
chiD2 = cc->ModReduce(chiD2);
|
||||
|
||||
chiD[s] = cc->EvalMultNoRelin(chiD1,chiD2);
|
||||
|
||||
// Odds Ratio Computation
|
||||
|
||||
auto n11Scaled = cc->EvalMult(n11,scalingFactor);
|
||||
n11Scaled = cc->ModReduce(n11Scaled);
|
||||
|
||||
// denominator
|
||||
|
||||
auto or2 = cc->EvalSub(c1,n11);
|
||||
or2 = cc->LevelReduce(or2,nullptr);
|
||||
|
||||
r1Scaled = cc->LevelReduce(r1Scaled,nullptr);
|
||||
auto or3 = cc->EvalSub(r1Scaled,n11Scaled);
|
||||
|
||||
orD[s] = cc->EvalMultNoRelin(or2,or3);
|
||||
|
||||
// numerator
|
||||
|
||||
auto or1 = cc->EvalSub(n11Scaled,r1Scaled);
|
||||
c1Scaled = cc->LevelReduce(c1Scaled,nullptr);
|
||||
or1 = cc->EvalSub(or1,c1Scaled);
|
||||
or1 = cc->EvalAdd(or1,dScaled);
|
||||
|
||||
n11 = cc->LevelReduce(n11,nullptr);
|
||||
orN[s] = cc->EvalMultNoRelin(n11,or1);
|
||||
|
||||
}
|
||||
|
||||
computationTime += TOC(t);
|
||||
|
||||
TIC(t);
|
||||
|
||||
std::vector<Plaintext> pN(sizeS);
|
||||
std::vector<Plaintext> pD(sizeS);
|
||||
std::vector<Plaintext> oddN(sizeS);
|
||||
std::vector<Plaintext> oddD(sizeS);
|
||||
|
||||
for (size_t s = 0; s < sizeS; s++) {
|
||||
cc->Decrypt(keyPair.secretKey, chiN[s] , &(pN[s]));
|
||||
cc->Decrypt(keyPair.secretKey, chiD[s] , &(pD[s]));
|
||||
cc->Decrypt(keyPair.secretKey, orN[s] , &(oddN[s]));
|
||||
cc->Decrypt(keyPair.secretKey, orD[s] , &(oddD[s]));
|
||||
}
|
||||
|
||||
decryptionTime += TOC(t);
|
||||
|
||||
std::vector<double> chival(headersS.size());
|
||||
std::vector<double> pval(headersS.size());
|
||||
std::vector<double> odds(headersS.size());
|
||||
|
||||
for (size_t s = 0; s < sizeS; s++) {
|
||||
for (size_t i = 0; i < m/4; i++) {
|
||||
if (s*m/4 + i < headersS.size()) {
|
||||
|
||||
chival[s*m/4 + i] = pN[s]->GetCKKSPackedValue()[i].real()*2*N/pD[s]->GetCKKSPackedValue()[i].real();
|
||||
if (chival[s*m/4 + i] < 0)
|
||||
chival[s*m/4 + i] = 0;
|
||||
pval[s*m/4 + i] = (double)1-IncompleteGamma(chival[s*m/4 + i]/2,0.5);
|
||||
if (pval[s*m/4 + i] < 0)
|
||||
pval[s*m/4 + i] = 1e-15;
|
||||
else
|
||||
if (pval[s*m/4 + i]==0)
|
||||
pval[s*m/4 + i] = BS(sqrt(chival[s*m/4 + i]));
|
||||
|
||||
odds[s*m/4 + i] = oddN[s]->GetCKKSPackedValue()[i].real()/oddD[s]->GetCKKSPackedValue()[i].real();
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ofstream myfile;
|
||||
myfile.open(SNPDir + "/" + std::to_string(world.rank()) + "_" + std::to_string(batch_num) + pValue);
|
||||
myfile.precision(10);
|
||||
for(uint32_t i = 0; i < headersS.size(); i++) {
|
||||
myfile << headersS[i] << "\t" << pval[i] << std::endl;
|
||||
}
|
||||
myfile.close();
|
||||
|
||||
ofstream myfile2;
|
||||
myfile2.open(SNPDir + "/" + std::to_string(world.rank()) + "_" + std::to_string(batch_num) + "odds.txt");
|
||||
myfile2.precision(10);
|
||||
for(uint32_t i = 0; i < headersS.size(); i++) {
|
||||
myfile2 << headersS[i] << "\t" << odds[i] << std::endl;
|
||||
}
|
||||
myfile2.close();
|
||||
|
||||
ofstream myfile3;
|
||||
myfile3.open(SNPDir + "/" + std::to_string(world.rank())+ "_" + std::to_string(batch_num) + "chi2.txt");
|
||||
myfile3.precision(10);
|
||||
for(uint32_t i = 0; i < headersS.size(); i++) {
|
||||
myfile3 << headersS[i] << "\t" << chival[i] << std::endl;
|
||||
}
|
||||
myfile3.close();
|
||||
|
||||
//std::cout << "\nKey Generation Time: \t\t" << keyGenTime/1000 << " s" << std::endl;
|
||||
//std::cout << "Encoding and Encryption Time: \t" << encryptionTime/1000 << " s" << std::endl;
|
||||
//std::cout << "Computation Time: \t\t" << computationTime/1000 << " s" << std::endl;
|
||||
//std::cout << "Decryption & Decoding Time: \t" << decryptionTime/1000 << " s" << std::endl;
|
||||
|
||||
endToEndTime += TOC(tAll);
|
||||
|
||||
//std::cout << "\nEnd-to-end Runtime: \t\t" << endToEndTime/1000 << " s" << std::endl;
|
||||
|
||||
ofstream myfileRuntime;
|
||||
myfileRuntime.open(SNPDir + "/" + std::to_string(world.rank()) + "_" + std::to_string(batch_num) + Runtime);
|
||||
myfileRuntime << "Key Generation Time: \t\t" << keyGenTime/1000 << " s" << std::endl;
|
||||
myfileRuntime << "Encoding and Encryption Time: \t" << encryptionTime/1000 << " s" << std::endl;
|
||||
myfileRuntime << "Computation Time: \t\t" << computationTime/1000 << " s" << std::endl;
|
||||
myfileRuntime << "Decryption & Decoding Time: \t" << decryptionTime/1000 << " s" << std::endl;
|
||||
myfileRuntime << "End-to-end Runtime: \t\t" << endToEndTime/1000 << " s" << std::endl;
|
||||
myfileRuntime.close();
|
||||
|
||||
}
|
||||
|
||||
Ciphertext<DCRTPoly> BinaryTreeAdd(std::vector<Ciphertext<DCRTPoly>> &vector) {
|
||||
|
||||
auto cc = vector[0]->GetCryptoContext();
|
||||
|
||||
for(size_t j = 1; j < vector.size(); j=j*2) {
|
||||
for(size_t i = 0; i<vector.size(); i = i + 2*j) {
|
||||
if ((i+j)<vector.size())
|
||||
vector[i] = cc->EvalAdd(vector[i],vector[i+j]);
|
||||
}
|
||||
}
|
||||
|
||||
Ciphertext<DCRTPoly> result(new CiphertextImpl<DCRTPoly>(*(vector[0])));
|
||||
|
||||
return result;
|
||||
|
||||
}
|
||||
|
||||
double IncompleteGamma(double val, double p)
|
||||
{
|
||||
if( !Greater(val, 0) || !Greater(p, 0) )
|
||||
return 0;
|
||||
|
||||
double expValue = p*log(val) - val - lgamma(p);
|
||||
if( Less(expValue, log(1.0E-37)) ) // undeflow
|
||||
return 0;
|
||||
|
||||
double factor = exp(expValue);
|
||||
if( !Greater(val, 1) || Less(val, p) )
|
||||
{
|
||||
double igamma = 1;
|
||||
double term = 1;
|
||||
|
||||
for( int i = 1; Greater(term, EPSILON); ++i )
|
||||
{
|
||||
term *= (val/(p+i));
|
||||
igamma += term;
|
||||
}
|
||||
|
||||
return (igamma*factor/p);
|
||||
}
|
||||
|
||||
double pn[6] = { 1, val, val+1, val*(2+val-p) };
|
||||
double upperIncGamma = pn[2]/pn[3];
|
||||
|
||||
for( int j = 1; ; ++j )
|
||||
{
|
||||
double a = (j+1)*2 + val- p;
|
||||
double b = (1 + j - p)*j;
|
||||
pn[4] = a*pn[2] - b*pn[0];
|
||||
pn[5] = a*pn[3] - b*pn[1];
|
||||
|
||||
if( !Equal(pn[5], 0) )
|
||||
{
|
||||
double rn = pn[4]/pn[5];
|
||||
double diff = fabs(upperIncGamma - rn);
|
||||
if( !Greater(diff, EPSILON) && !Greater(diff, (EPSILON*rn)) )
|
||||
return (1 - factor*upperIncGamma);
|
||||
|
||||
upperIncGamma = rn;
|
||||
}
|
||||
|
||||
for( int i = 0; i < 4; i++ )
|
||||
pn[i] = pn[i+2];
|
||||
|
||||
if( !Greater(1.0E+37, fabs(pn[4])) ) // overflow
|
||||
{
|
||||
for( int i = 0; i < 4; i++ )
|
||||
pn[i] = pn[i] / 1.0E+37;
|
||||
}
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ReadSNPFile(vector<string>& headers, std::vector<std::vector<double>> & dataColumns, std::vector<double> &y,
|
||||
string dataFileName, size_t N, size_t M, size_t from)
|
||||
{
|
||||
uint32_t cols = 0;
|
||||
|
||||
string fileName = dataFileName + ".csv";
|
||||
|
||||
//std::cerr << "file name = " << fileName << std::endl;
|
||||
|
||||
ifstream file(fileName);
|
||||
string line, value;
|
||||
|
||||
if(file.good()) {
|
||||
|
||||
getline(file, line);
|
||||
cols = std::count(line.begin(), line.end(), ',') + 1;
|
||||
stringstream ss(line);
|
||||
vector<string> result;
|
||||
|
||||
size_t tempcounter = 0;
|
||||
|
||||
for(uint32_t i = 0; i < cols; i++) {
|
||||
string substr;
|
||||
getline(ss, substr, ',');
|
||||
if ((substr != "") && (i>4) && (i<M+5)) {
|
||||
headers.push_back(substr);
|
||||
tempcounter++;
|
||||
}
|
||||
}
|
||||
|
||||
cols = tempcounter;
|
||||
|
||||
}
|
||||
|
||||
size_t counter = 0;
|
||||
size_t skip_counter = 0;
|
||||
while((file.good()) && (counter < N)) {
|
||||
while(skip_counter < from){
|
||||
getline(file, line);
|
||||
skip_counter++;
|
||||
}
|
||||
getline(file, line);
|
||||
uint32_t curCols = std::count(line.begin(), line.end(), ',') + 1;
|
||||
if (curCols > 2) {
|
||||
stringstream ss(line);
|
||||
for(uint32_t i = 0; i < 5; i++) {
|
||||
string substr;
|
||||
getline(ss, substr, ',');
|
||||
if ((i==1))
|
||||
y.push_back(std::stod(substr));
|
||||
}
|
||||
std::vector<double> row(cols);
|
||||
for(uint32_t i = 5; i < cols + 5; i++) {
|
||||
string substr;
|
||||
getline(ss, substr, ',');
|
||||
if (i < M+5)
|
||||
{
|
||||
double val;
|
||||
val = std::stod(substr);
|
||||
row[i-5] = val;
|
||||
}
|
||||
}
|
||||
dataColumns.push_back(row);
|
||||
}
|
||||
counter++;
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
//std::cout << "Read in data: ";
|
||||
//std::cout << dataFileName << std::endl;
|
||||
}
|
||||
|
||||
|
||||
1653
Code/Duality_Technologies/GWAS/demo-logistic.cpp
Normal file
1653
Code/Duality_Technologies/GWAS/demo-logistic.cpp
Normal file
File diff suppressed because it is too large
Load Diff
30
Code/Duality_Technologies/GWAS/demo_chi2.h
Normal file
30
Code/Duality_Technologies/GWAS/demo_chi2.h
Normal file
@ -0,0 +1,30 @@
|
||||
#ifndef _DEMO_CHI2_H
|
||||
#define _DEMO_CHI2_H
|
||||
|
||||
#include "palisade.h"
|
||||
#include <boost/mpi/communicator.hpp>
|
||||
|
||||
using namespace lbcrypto;
|
||||
using namespace std;
|
||||
namespace mpi = boost::mpi;
|
||||
|
||||
const double EPSILON = 1.0E-08;
|
||||
|
||||
void RunChi2(const string &SNPDir,
|
||||
const string &SNPFileName, const string &pValue, const string &Runtime, const string &SampleSize, const string &SNPs,
|
||||
size_t file_start,
|
||||
double &keyGenTime, double &encryptionTime, double &computationTime, double &decryptionTime, double &endToEndTime,
|
||||
CryptoContext<DCRTPoly> &cc, auto &keyPair, int batch_num, mpi::communicator &world);
|
||||
|
||||
|
||||
Ciphertext<DCRTPoly> BinaryTreeAdd(std::vector<Ciphertext<DCRTPoly>> &vector);
|
||||
|
||||
void ReadSNPFile(vector<string>& headers, std::vector<std::vector<double>> & dataColumns, std::vector<double> &y, string dataFileName, size_t N, size_t M, size_t from);
|
||||
|
||||
double normalCFD(double value) { return 0.5 * erfc(-value * M_SQRT1_2); }
|
||||
|
||||
double sf(double value) { return 1 - normalCFD(value); }
|
||||
|
||||
double IncompleteGamma(double val, double p);
|
||||
|
||||
#endif //demo-chi2.h
|
||||
@ -1 +0,0 @@
|
||||
Subproject commit 622be46e44b7fac1c0ff1906fa4edda0629be438
|
||||
2
Code/Duality_Technologies/PALISADE/.clang-format
Normal file
2
Code/Duality_Technologies/PALISADE/.clang-format
Normal file
@ -0,0 +1,2 @@
|
||||
BasedOnStyle: Google
|
||||
SortIncludes: false
|
||||
24
Code/Duality_Technologies/PALISADE/.pre-commit-config.yaml
Normal file
24
Code/Duality_Technologies/PALISADE/.pre-commit-config.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.5.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: end-of-file-fixer
|
||||
- id: check-merge-conflict
|
||||
- id: mixed-line-ending
|
||||
- id: check-byte-order-marker
|
||||
- repo: local
|
||||
hooks:
|
||||
- id: clang-format
|
||||
name: clang-format
|
||||
entry: clang-format
|
||||
language: system
|
||||
files: \.(c|cc|cxx|cpp|h|hpp|hxx|js|proto)$
|
||||
args: ["-i"]
|
||||
- id: cpplint
|
||||
name: cpplint
|
||||
entry: cpplint
|
||||
language: system
|
||||
files: \.(c|cc|cxx|cpp|h|hpp|hxx)$
|
||||
args:
|
||||
- --recursive
|
||||
5
Code/Duality_Technologies/PALISADE/.pydevproject
Normal file
5
Code/Duality_Technologies/PALISADE/.pydevproject
Normal file
@ -0,0 +1,5 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?eclipse-pydev version="1.0"?><pydev_project>
|
||||
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
|
||||
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python interpreter</pydev_property>
|
||||
</pydev_project>
|
||||
48
Code/Duality_Technologies/PALISADE/CMakeLists.User.txt
Normal file
48
Code/Duality_Technologies/PALISADE/CMakeLists.User.txt
Normal file
@ -0,0 +1,48 @@
|
||||
cmake_minimum_required (VERSION 3.5.1)
|
||||
|
||||
### To use gcc/g++ on a Macintosh, you must set the Compilers
|
||||
### here, not inside the project
|
||||
##if(APPLE)
|
||||
## set(CMAKE_C_COMPILER "/usr/local/bin/gcc-7")
|
||||
## set(CMAKE_CXX_COMPILER "/usr/local/bin/g++-7")
|
||||
##endif()
|
||||
### TODO: for now, we use CLang for Mac
|
||||
###
|
||||
### In order to create PALISADE's static libraries you should enable
|
||||
### the BUILD_STATIC option. For that, you run "cmake .. -DBUILD_STATIC=ON".
|
||||
### After having your link completed you will find static libs
|
||||
### with the suffix "_static" in ./build/libs/.
|
||||
### Examples: PALISADEpke_static.a, PALISADEcore_static.a, etc.
|
||||
### After you run "make install" in your build directory, you can build your custom application.
|
||||
### If you need your application to be linked statically, then run "cmake .. -DBUILD_STATIC=ON"
|
||||
|
||||
project(demo CXX)
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
option( BUILD_STATIC "Set to ON to include static versions of the library" OFF)
|
||||
|
||||
find_package(Palisade)
|
||||
|
||||
set( CMAKE_CXX_FLAGS ${PALISADE_CXX_FLAGS} )
|
||||
|
||||
include_directories( ${OPENMP_INCLUDES} )
|
||||
include_directories( ${PALISADE_INCLUDE} )
|
||||
include_directories( ${PALISADE_INCLUDE}/third-party/include )
|
||||
include_directories( ${PALISADE_INCLUDE}/core )
|
||||
include_directories( ${PALISADE_INCLUDE}/pke )
|
||||
### add directories for other PALISADE modules as needed for your project
|
||||
|
||||
link_directories( ${PALISADE_LIBDIR} )
|
||||
link_directories( ${OPENMP_LIBRARIES} )
|
||||
if(BUILD_STATIC)
|
||||
set( CMAKE_EXE_LINKER_FLAGS "${PALISADE_EXE_LINKER_FLAGS} -static")
|
||||
link_libraries( ${PALISADE_STATIC_LIBRARIES} )
|
||||
else()
|
||||
set( CMAKE_EXE_LINKER_FLAGS ${PALISADE_EXE_LINKER_FLAGS} )
|
||||
link_libraries( ${PALISADE_SHARED_LIBRARIES} )
|
||||
endif()
|
||||
|
||||
### ADD YOUR EXECUTABLE(s) HERE
|
||||
### add_executable( EXECUTABLE-NAME SOURCES )
|
||||
###
|
||||
### EXAMPLE:
|
||||
### add_executable( test demo-simple-example.cpp )
|
||||
765
Code/Duality_Technologies/PALISADE/CMakeLists.txt
Normal file
765
Code/Duality_Technologies/PALISADE/CMakeLists.txt
Normal file
@ -0,0 +1,765 @@
|
||||
##
|
||||
## CMakeLists.txt for PALISADE
|
||||
##
|
||||
## This script will build machine-specific header files for compile
|
||||
## as it generates the Makefile
|
||||
##
|
||||
## Note many user options are handled using an OPTION in CMake
|
||||
## An option has the value of ON or OFF
|
||||
## See below for the list of options
|
||||
|
||||
cmake_minimum_required (VERSION 3.5.1)
|
||||
|
||||
find_program(CCACHE_PROGRAM ccache)
|
||||
if(CCACHE_PROGRAM)
|
||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE "${CCACHE_PROGRAM}")
|
||||
endif()
|
||||
|
||||
### To use gcc/g++ on a Macintosh, you must set the Compilers
|
||||
### here, not inside the project
|
||||
##if(APPLE)
|
||||
## set(CMAKE_C_COMPILER "/usr/local/bin/gcc-7")
|
||||
## set(CMAKE_CXX_COMPILER "/usr/local/bin/g++-7")
|
||||
##endif()
|
||||
### TODO: for now, we use CLang for Mac
|
||||
|
||||
project (PALISADE C CXX)
|
||||
|
||||
set(PALISADE_VERSION_MAJOR 1)
|
||||
set(PALISADE_VERSION_MINOR 11)
|
||||
set(PALISADE_VERSION_PATCH 8)
|
||||
set(PALISADE_VERSION ${PALISADE_VERSION_MAJOR}.${PALISADE_VERSION_MINOR}.${PALISADE_VERSION_PATCH})
|
||||
|
||||
set(CMAKE_CXX_STANDARD 11)
|
||||
set(CXX_STANDARD_REQUIRED ON)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Build options
|
||||
#--------------------------------------------------------------------
|
||||
if(CMAKE_BUILD_TYPE)
|
||||
set(RELEASE_TYPES
|
||||
Debug
|
||||
Release
|
||||
RelWithDebInfo
|
||||
MinSizeRel)
|
||||
list(FIND RELEASE_TYPES ${CMAKE_BUILD_TYPE} INDEX_FOUND)
|
||||
if(${INDEX_FOUND} EQUAL -1)
|
||||
message(
|
||||
FATAL_ERROR
|
||||
"CMAKE_BUILD_TYPE must be one of Debug, Release, RelWithDebInfo, or MinSizeRel"
|
||||
)
|
||||
endif()
|
||||
else()
|
||||
# if no build type is chosen, default to Release mode
|
||||
set(CMAKE_BUILD_TYPE Release CACHE STRING
|
||||
"Choose the type of build, options are: None, Debug, Release, RelWithDebInfo, or
|
||||
MinSizeRel."
|
||||
FORCE )
|
||||
endif()
|
||||
|
||||
message(STATUS "Building in ${CMAKE_BUILD_TYPE} mode" )
|
||||
|
||||
if ( EMSCRIPTEN )
|
||||
set(BUILD_SHARED OFF)
|
||||
message( "Shared library is not supported by Emscripten")
|
||||
option( BUILD_STATIC "Set to ON to build static versions of the library" ON)
|
||||
option( BUILD_UNITTESTS "Set to ON to build unit tests for the library" OFF)
|
||||
option( BUILD_EXAMPLES "Set to ON to build examples for the library" OFF)
|
||||
option( BUILD_BENCHMARKS "Set to ON to build benchmarks for the library" OFF)
|
||||
option( WITH_OPENMP "OpenMP is not supported by Emscripten" OFF)
|
||||
else()
|
||||
option( BUILD_SHARED "Set to ON to build shared versions of the library" ON)
|
||||
option( BUILD_STATIC "Set to ON to build static versions of the library" OFF)
|
||||
option( BUILD_UNITTESTS "Set to ON to build unit tests for the library" ON)
|
||||
option( BUILD_EXAMPLES "Set to ON to build examples for the library" ON)
|
||||
option( BUILD_BENCHMARKS "Set to ON to build benchmarks for the library" ON)
|
||||
option( WITH_OPENMP "Use OpenMP to enable <omp.h>" ON)
|
||||
endif()
|
||||
|
||||
option( BUILD_EXTRAS "Set to ON to build extras for the library" OFF)
|
||||
option( GIT_SUBMOD_AUTO "Submodules auto-update" ON)
|
||||
option( WITH_BE2 "Include Backend 2 in build by setting WITH_BE2 to ON" ON )
|
||||
option( WITH_BE4 "Include Backend 4 in build by setting WITH_BE4 to ON" ON )
|
||||
option( WITH_NTL "Include Backend 6 and NTL in build by setting WITH_NTL to ON" OFF )
|
||||
option( WITH_TCM "Activate tcmalloc by setting WITH_TCM to ON" OFF )
|
||||
option( WITH_INTEL_HEXL "Use Intel HEXL library" OFF)
|
||||
option( WITH_NATIVEOPT "Use machine-specific optimizations" OFF)
|
||||
option( WITH_COVTEST "Turn on to enable coverage testing" OFF)
|
||||
option( USE_MACPORTS "Use MacPorts installed packages" OFF)
|
||||
|
||||
# Set required number of bits for native integer in build by setting NATIVE_SIZE to 64 or 128
|
||||
if( NOT NATIVE_SIZE )
|
||||
set( NATIVE_SIZE 64 )
|
||||
# set( NATIVE_SIZE 128 )
|
||||
endif()
|
||||
|
||||
if( NOT CKKS_M_FACTOR )
|
||||
set( CKKS_M_FACTOR 1 )
|
||||
endif()
|
||||
|
||||
### Print options
|
||||
message( STATUS "BUILD_UNITTESTS: ${BUILD_UNITTESTS}")
|
||||
message( STATUS "BUILD_EXAMPLES: ${BUILD_EXAMPLES}")
|
||||
message( STATUS "BUILD_BENCHMARKS: ${BUILD_BENCHMARKS}")
|
||||
message( STATUS "BUILD_EXTRAS: ${BUILD_EXTRAS}")
|
||||
message( STATUS "BUILD_STATIC: ${BUILD_STATIC}")
|
||||
message( STATUS "BUILD_SHARED: ${BUILD_SHARED}")
|
||||
message( STATUS "GIT_SUBMOD_AUTO: ${GIT_SUBMOD_AUTO}")
|
||||
message( STATUS "WITH_BE2: ${WITH_BE2}")
|
||||
message( STATUS "WITH_BE4: ${WITH_BE4}")
|
||||
message( STATUS "WITH_NTL: ${WITH_NTL}")
|
||||
message( STATUS "WITH_TCM: ${WITH_TCM}")
|
||||
message( STATUS "WITH_INTEL_HEXL: ${WITH_INTEL_HEXL}")
|
||||
message( STATUS "WITH_OPENMP: ${WITH_OPENMP}")
|
||||
message( STATUS "NATIVE_SIZE: ${NATIVE_SIZE}")
|
||||
message( STATUS "CKKS_M_FACTOR: ${CKKS_M_FACTOR}")
|
||||
message( STATUS "WITH_NATIVEOPT: ${WITH_NATIVEOPT}")
|
||||
message( STATUS "WITH_COVTEST: ${WITH_COVTEST}")
|
||||
message( STATUS "USE_MACPORTS: ${USE_MACPORTS}")
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Compiler logic
|
||||
#--------------------------------------------------------------------
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
# require at least gcc 6.1
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.1)
|
||||
message(WARNING "GCC version should be at least 6.1.")
|
||||
endif()
|
||||
elseif ("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
# require at least clang 6
|
||||
if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6)
|
||||
message(WARNING "Clang version should be at least 6.")
|
||||
endif()
|
||||
else()
|
||||
message(WARNING "You are using ${CMAKE_CXX_COMPILER_ID} version ${CMAKE_CXX_COMPILER_VERSION}, which is unsupported.")
|
||||
endif()
|
||||
|
||||
# use, i.e. don't skip the full RPATH for the build tree
|
||||
set(CMAKE_SKIP_BUILD_RPATH FALSE)
|
||||
|
||||
# when building, don't use the install RPATH already
|
||||
# (but later on when installing)
|
||||
set(CMAKE_BUILD_WITH_INSTALL_RPATH FALSE)
|
||||
|
||||
set(CMAKE_INSTALL_RPATH "${LIBINSTALL}")
|
||||
|
||||
# add the automatically determined parts of the RPATH
|
||||
# which point to directories outside the build tree to the install RPATH
|
||||
set(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
|
||||
|
||||
# the RPATH to be used when installing, but only if it's not a system directory
|
||||
LIST(FIND CMAKE_PLATFORM_IMPLICIT_LINK_DIRECTORIES "${LIBINSTALL}" isSystemDir)
|
||||
if("${isSystemDir}" STREQUAL "-1")
|
||||
set(CMAKE_INSTALL_RPATH "${LIBINSTALL}")
|
||||
endif("${isSystemDir}" STREQUAL "-1")
|
||||
|
||||
# Compiler flags
|
||||
|
||||
# Added -Wno-parentheses for compatibility with g++
|
||||
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
|
||||
set (IGNORE_WARNINGS "-Wno-parentheses")
|
||||
# we can use GNU built-in functions provided by GCC for debugging. ex: __builtin_LINE (), __builtin_FUNCTION (), __builtin_FILE ()
|
||||
add_definitions(-DBUILTIN_INFO_AVAILABLE)
|
||||
message (STATUS "BUILTIN_INFO_AVAILABLE is defined")
|
||||
endif()
|
||||
|
||||
if("${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang")
|
||||
set(IGNORE_WARNINGS "${IGNORE_WARNINGS} -Wno-unused-private-field -Wno-shift-op-parentheses")
|
||||
endif()
|
||||
|
||||
if( WITH_NATIVEOPT )
|
||||
set (NATIVE_OPT "-march=native")
|
||||
else()
|
||||
set (NATIVE_OPT "")
|
||||
endif()
|
||||
|
||||
set(C_COMPILE_FLAGS "-Wall -Werror -O3 ${NATIVE_OPT} -DPALISADE_VERSION=${PALISADE_VERSION}")
|
||||
set(CXX_COMPILE_FLAGS "-Wall -Werror -O3 ${NATIVE_OPT} -DPALISADE_VERSION=${PALISADE_VERSION} ${IGNORE_WARNINGS}")
|
||||
|
||||
if ( EMSCRIPTEN )
|
||||
set(EMSCRIPTEN_IGNORE_WARNINGS "-Wno-unused-but-set-variable -Wno-unknown-warning-option")
|
||||
set(C_COMPILE_FLAGS "${C_COMPILE_FLAGS} ${EMSCRIPTEN_IGNORE_WARNINGS}")
|
||||
set(CXX_COMPILE_FLAGS "${CXX_COMPILE_FLAGS} ${EMSCRIPTEN_IGNORE_WARNINGS}")
|
||||
add_compile_options(-fexceptions)
|
||||
add_link_options(
|
||||
-sINITIAL_MEMORY=2047MB -sMAXIMUM_MEMORY=4GB -sALLOW_MEMORY_GROWTH=1
|
||||
-sMALLOC=emmalloc -sNO_DISABLE_EXCEPTION_CATCHING
|
||||
)
|
||||
endif()
|
||||
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${C_COMPILE_FLAGS}")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${CXX_COMPILE_FLAGS}")
|
||||
|
||||
if(WITH_COVTEST)
|
||||
#Set flags
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --coverage")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} --coverage")
|
||||
link_libraries(gcov)
|
||||
set( BUILDDIR ${CMAKE_CURRENT_SOURCE_DIR}/build/)
|
||||
set( COVDIR ${BUILDDIR}coverage/)
|
||||
endif()
|
||||
|
||||
if(BUILD_STATIC)
|
||||
set(PALISADE_STATIC_LIBS PALISADEcore_static PALISADEpke_static PALISADEbinfhe_static)
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED)
|
||||
set(PALISADE_SHARED_LIBS PALISADEcore PALISADEpke PALISADEbinfhe)
|
||||
endif()
|
||||
|
||||
set(PALISADE_PACKAGE_LIBS ${PALISADE_STATIC_LIBS} ${PALISADE_SHARED_LIBS})
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Installation logic
|
||||
#--------------------------------------------------------------------
|
||||
|
||||
|
||||
### set up for install
|
||||
set(INSTALL_LIB_DIR lib CACHE PATH
|
||||
"Installation directory for libraries")
|
||||
set(INSTALL_INCLUDE_DIR include/palisade CACHE PATH
|
||||
"Installation directory for headers")
|
||||
if(WIN32 AND NOT CYGWIN)
|
||||
set(DEF_INSTALL_CMAKE_DIR CMake)
|
||||
else()
|
||||
set(DEF_INSTALL_CMAKE_DIR lib/Palisade)
|
||||
endif()
|
||||
set(INSTALL_CMAKE_DIR ${DEF_INSTALL_CMAKE_DIR} CACHE PATH
|
||||
"Installation directory for CMake files")
|
||||
|
||||
foreach(p LIB INCLUDE CMAKE)
|
||||
set(var INSTALL_${p}_DIR)
|
||||
if(NOT IS_ABSOLUTE "${${var}}")
|
||||
set(${var} "${CMAKE_INSTALL_PREFIX}/${${var}}")
|
||||
endif()
|
||||
endforeach()
|
||||
|
||||
message("***** INSTALL IS AT ${CMAKE_INSTALL_PREFIX}; to change, run cmake with -DCMAKE_INSTALL_PREFIX=/your/path")
|
||||
set (CMAKE_INSTALL_MESSAGE LAZY)
|
||||
|
||||
set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/lib)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Uninstall logic
|
||||
#--------------------------------------------------------------------
|
||||
## clobber cleans and deletes the third-party stuff
|
||||
add_custom_target(
|
||||
COMMAND make clean
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
|
||||
|
||||
add_custom_target("uninstall" COMMENT "Uninstall PALISADE files")
|
||||
add_custom_command(
|
||||
TARGET "uninstall"
|
||||
POST_BUILD
|
||||
COMMENT "Uninstall files within install_manifest.txt"
|
||||
COMMAND ../maint/uninstall_script.sh
|
||||
USES_TERMINAL
|
||||
)
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Machine-specific checks
|
||||
#--------------------------------------------------------------------
|
||||
# determine the architecture on a Linux/Unix/macOS/MinGW system
|
||||
if(CMAKE_HOST_UNIX OR MINGW)
|
||||
EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE ARCHITECTURE )
|
||||
else()
|
||||
set(ARCHITECTURE "unknown")
|
||||
endif()
|
||||
|
||||
if(ARCHITECTURE)
|
||||
message(STATUS "Architecture is " ${ARCHITECTURE})
|
||||
endif()
|
||||
|
||||
# Size checks
|
||||
include(CheckTypeSize)
|
||||
check_type_size("__int128" INT128)
|
||||
check_type_size("uint64_t" INT64)
|
||||
|
||||
if (NOT(BUILD_SHARED OR BUILD_STATIC))
|
||||
message(SEND_ERROR "Either BUILD_SHARED or BUILD_STATIC neeed to be turned on.")
|
||||
endif()
|
||||
|
||||
if( "${NATIVE_SIZE}" EQUAL 128 )
|
||||
if( ${HAVE_INT128} )
|
||||
set( NATIVEINT 128 )
|
||||
message (STATUS "NATIVEINT is set to " ${NATIVEINT})
|
||||
else()
|
||||
message(SEND_ERROR "Cannot support NATIVE_SIZE == 128")
|
||||
endif()
|
||||
elseif( "${NATIVE_SIZE}" EQUAL 64 )
|
||||
if( ${HAVE_INT64} )
|
||||
set( NATIVEINT 64 )
|
||||
message (STATUS "NATIVEINT is set to " ${NATIVEINT})
|
||||
else()
|
||||
message(SEND_ERROR "Cannot support NATIVE_SIZE == 64")
|
||||
endif()
|
||||
elseif( "${NATIVE_SIZE}" EQUAL 32 )
|
||||
if( ${HAVE_INT64} )
|
||||
set( NATIVEINT 32 )
|
||||
set( HAVE_INT128 FALSE)
|
||||
message (STATUS "NATIVEINT is set to " ${NATIVEINT})
|
||||
else()
|
||||
message(SEND_ERROR "Cannot support NATIVE_SIZE == 32")
|
||||
endif()
|
||||
else()
|
||||
message(SEND_ERROR "NATIVE_SIZE is " ${NATIVE_SIZE})
|
||||
message(SEND_ERROR "***ERROR*** need a Native implementation")
|
||||
endif()
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Backend logic
|
||||
#--------------------------------------------------------------------
|
||||
## default math backend is 2 for 32-bit and 64-bit integers and 4 for 128-bit integers
|
||||
if( NOT MATHBACKEND AND NOT ${NATIVE_SIZE} EQUAL 128)
|
||||
set( MATHBACKEND 2 )
|
||||
elseif(NOT MATHBACKEND AND ${NATIVE_SIZE} EQUAL 128)
|
||||
set( MATHBACKEND 4 )
|
||||
endif()
|
||||
|
||||
message (STATUS "MATHBACKEND is set to " ${MATHBACKEND})
|
||||
if( "${MATHBACKEND}" EQUAL 2 )
|
||||
if( NOT WITH_BE2 )
|
||||
message(SEND_ERROR "Cannot select backend 2 if WITH_BE2 is disabled")
|
||||
endif()
|
||||
elseif( "${MATHBACKEND}" EQUAL 4 )
|
||||
if( NOT WITH_BE4 )
|
||||
message(SEND_ERROR "Cannot select backend 4 if WITH_BE4 is disabled")
|
||||
endif()
|
||||
elseif( "${MATHBACKEND}" EQUAL 6 )
|
||||
if( NOT WITH_NTL )
|
||||
message(SEND_ERROR "Cannot select backend 6 if WITH_NTL is disabled")
|
||||
endif()
|
||||
else()
|
||||
message(SEND_ERROR "Backend must be 2, 4 or 6")
|
||||
endif()
|
||||
|
||||
if( "${MATHBACKEND}" EQUAL 6 AND "${NATIVEINT}" EQUAL 128)
|
||||
set (MATHBACKEND 2)
|
||||
set (WITH_NTL OFF)
|
||||
message (STATUS "BACKEND 6 is not compatible with 128-bit native backend. Resetting multiprecision backend to 2.")
|
||||
endif()
|
||||
|
||||
set( PALISADE_BACKEND_FLAGS "-DMATHBACKEND=${MATHBACKEND}")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${PALISADE_BACKEND_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${PALISADE_BACKEND_FLAGS}")
|
||||
|
||||
if(WITH_TCM)
|
||||
message(STATUS "tcmalloc is turned ON")
|
||||
if(MINGW)
|
||||
message(SEND_ERROR "***ERROR*** tcmalloc is not supported for MinGW")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
### build configure_core.h to make options available
|
||||
configure_file(./configure/config_core.in src/core/config_core.h)
|
||||
install(FILES ${CMAKE_BINARY_DIR}/src/core/config_core.h DESTINATION include/palisade/core)
|
||||
|
||||
find_program(TAR "gtar")
|
||||
find_program(TAR "tar")
|
||||
|
||||
### several of the third-party tools use auto-make and autoconf
|
||||
### we need to make sure that they are installed
|
||||
execute_process(COMMAND autogen --version OUTPUT_VARIABLE AUTOGEN_VER)
|
||||
# execute_process in MINGW by default does not run in a shell
|
||||
if(MINGW)
|
||||
execute_process(COMMAND sh autoconf --version OUTPUT_VARIABLE AUTOCONF_VER)
|
||||
else()
|
||||
execute_process(COMMAND autoconf --version OUTPUT_VARIABLE AUTOCONF_VER)
|
||||
endif()
|
||||
|
||||
string(LENGTH "${AUTOCONF_VER}" AUTOCONF_VER_LEN)
|
||||
|
||||
if( ${AUTOCONF_VER_LEN} EQUAL 0 )
|
||||
message(SEND_ERROR "Autoconf is not installed.")
|
||||
endif()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# OpenMP logic
|
||||
#--------------------------------------------------------------------
|
||||
if (WITH_OPENMP)
|
||||
# Used to optionally compile openmp code
|
||||
add_definitions(-DPARALLEL)
|
||||
|
||||
# Set OpenMP configuration manually for macOS
|
||||
if (APPLE)
|
||||
if (USE_MACPORTS)
|
||||
# Macports-based installation
|
||||
message( STATUS "Using Macports setup")
|
||||
set(OPENMP_LIBRARIES "/opt/local/lib/libomp")
|
||||
set(OPENMP_INCLUDES "/opt/local/include/libomp")
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang" OR CMAKE_C_COMPILER_ID MATCHES "AppleClang")
|
||||
set(OpenMP_C_FLAGS "-Xpreprocessor -fopenmp -lomp -Wno-unused-command-line-argument")
|
||||
set(OpenMP_C_LIB_NAMES "omp")
|
||||
set(OpenMP_omp_LIBRARY ${OpenMP_C_LIB_NAMES})
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang" OR CMAKE_CXX_COMPILER_ID MATCHES "AppleClang")
|
||||
set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -lomp -Wno-unused-command-line-argument")
|
||||
set(OpenMP_CXX_LIB_NAMES "omp")
|
||||
set(OpenMP_omp_LIBRARY ${OpenMP_CXX_LIB_NAMES})
|
||||
endif()
|
||||
else (USE_MACPORTS)
|
||||
# Homebrew-based installation
|
||||
# Check for Apple M1 Processor
|
||||
if (${ARCHITECTURE} MATCHES "arm64")
|
||||
message( STATUS "Apple M1 detected")
|
||||
set(OPENMP_LIBRARIES "/opt/homebrew/opt/libomp/lib")
|
||||
set(OPENMP_INCLUDES "/opt/homebrew/opt/libomp/include")
|
||||
else() # Apple Intel Processor
|
||||
message( STATUS "Apple Intel detected")
|
||||
set(OPENMP_LIBRARIES "/usr/local/opt/libomp/lib")
|
||||
set(OPENMP_INCLUDES "/usr/local/opt/libomp/include")
|
||||
endif()
|
||||
|
||||
if(CMAKE_C_COMPILER_ID MATCHES "Clang")
|
||||
set(OpenMP_C_FLAGS "-Xpreprocessor -fopenmp -lomp -Wno-unused-command-line-argument")
|
||||
set(OpenMP_C_LIB_NAMES "libomp")
|
||||
set(OpenMP_libomp_LIBRARY ${OpenMP_C_LIB_NAMES})
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||
set(OpenMP_CXX_FLAGS "-Xpreprocessor -fopenmp -lomp -Wno-unused-command-line-argument")
|
||||
set(OpenMP_CXX_LIB_NAMES "libomp")
|
||||
set(OpenMP_libomp_LIBRARY ${OpenMP_CXX_LIB_NAMES})
|
||||
endif()
|
||||
endif (USE_MACPORTS)
|
||||
|
||||
include_directories("${OPENMP_INCLUDES}")
|
||||
link_directories("${OPENMP_LIBRARIES}")
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
|
||||
message( STATUS "OPENMP_LIBRARIES: " ${OPENMP_LIBRARIES})
|
||||
message( STATUS "OPENMP_INCLUDES: " ${OPENMP_INCLUDES})
|
||||
message( STATUS "OpenMP_CXX_FLAGS: " ${OpenMP_CXX_FLAGS})
|
||||
message( STATUS "OpenMP_CXX_LIB_NAMES: " ${OpenMP_CXX_LIB_NAMES})
|
||||
endif()
|
||||
|
||||
find_package (OpenMP)
|
||||
|
||||
# OpenMP_CXX_FOUND was added in cmake 3.9.x
|
||||
# so we are also checking the OpenMP_FOUND flag
|
||||
if (OpenMP_CXX_FOUND OR OpenMP_FOUND)
|
||||
set (CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}")
|
||||
set (CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}")
|
||||
else()
|
||||
message(SEND_ERROR "** ERROR ** OpenMP is not installed. If using macOS/clang, please run 'cmake ..' again.")
|
||||
endif()
|
||||
|
||||
if (OpenMP_C_FOUND OR OpenMP_FOUND)
|
||||
set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}")
|
||||
endif()
|
||||
|
||||
else() # WITH_OPENMP == OFF
|
||||
find_package (Threads REQUIRED)
|
||||
# Disable unknown #pragma omp warning
|
||||
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unknown-pragmas")
|
||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unknown-pragmas")
|
||||
endif()
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Pthreads logic (only for Google benchmark)
|
||||
#--------------------------------------------------------------------
|
||||
# In order to have the Threads_FOUND on some Linux and macOS systems
|
||||
set(CMAKE_THREAD_LIBS_INIT "-lpthread")
|
||||
set(CMAKE_HAVE_THREADS_LIBRARY 1)
|
||||
set(CMAKE_USE_WIN32_THREADS_INIT 0)
|
||||
set(CMAKE_USE_PTHREADS_INIT 1)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Documentation logic
|
||||
#--------------------------------------------------------------------
|
||||
find_package (Git REQUIRED)
|
||||
if(GIT_SUBMOD_AUTO AND EXISTS "${PROJECT_SOURCE_DIR}/.git")
|
||||
# Update submodules as needed
|
||||
message(STATUS "Submodule update")
|
||||
if(NOT GIT_SUBMODULE_SYNCED)
|
||||
# "git submodule sync --recursive" should run only once, when CMakeCache.txt doesn't exist'
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule sync --recursive
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMODULE_RESULT)
|
||||
if(NOT GIT_SUBMODULE_RESULT EQUAL "0")
|
||||
message(FATAL_ERROR "\"git submodule sync --recursive\" failed with ${GIT_SUBMODULE_RESULT}, please checkout submodules")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
RESULT_VARIABLE GIT_SUBMODULE_RESULT)
|
||||
if(NOT GIT_SUBMODULE_RESULT EQUAL "0")
|
||||
if(NOT GIT_SUBMODULE_SYNCED)
|
||||
# print this message only if update has never happened
|
||||
message(FATAL_ERROR "\"git submodule update --init\" failed with ${GIT_SUBMODULE_RESULT}, please checkout submodules")
|
||||
else()
|
||||
message(SEND_ERROR "\"git submodule update --init\" failed with ${GIT_SUBMODULE_RESULT}, please checkout submodules or disable autoupdate with -DGIT_SUBMOD_AUTO=OFF")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(NOT GIT_SUBMODULE_SYNCED)
|
||||
set(GIT_SUBMODULE_SYNCED ON CACHE BOOL "" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
find_package (Doxygen QUIET COMPONENTS dot)
|
||||
if (DOXYGEN_FOUND)
|
||||
|
||||
add_custom_target( apidocs
|
||||
COMMAND sh -c "( cat ${CMAKE_CURRENT_SOURCE_DIR}/lbcrypto-doxy-config && echo PROJECT_NUMBER=${PALISADE_VERSION} ) | ${DOXYGEN_EXECUTABLE} -"
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
|
||||
COMMENT "Generating API documentation with Doxygen"
|
||||
VERBATIM )
|
||||
message (STATUS "Doxygen and dot are found")
|
||||
|
||||
else (DOXYGEN_FOUND)
|
||||
message(STATUS "Doxygen and dot (from graphviz) need to be installed to generate the doxygen documentation")
|
||||
endif (DOXYGEN_FOUND)
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Coverage logic
|
||||
#--------------------------------------------------------------------
|
||||
if ( WITH_COVTEST )
|
||||
|
||||
find_program(LCOV_BIN lcov)
|
||||
if (LCOV_BIN MATCHES "lcov$")
|
||||
#Creates the command make cov
|
||||
add_custom_target( cov
|
||||
DEPENDS core_tests pke_tests binfhe_tests
|
||||
COMMAND cd ${BUILDDIR} && mkdir -p coverage
|
||||
COMMAND cd ${BUILDDIR}/src/core/CMakeFiles/core_tests.dir/unittest/ && gcov *.gcno && lcov --capture --directory . --output-file ${COVDIR}/core.info
|
||||
COMMAND cd ${BUILDDIR}/src/pke/CMakeFiles/pke_tests.dir/unittest/ && gcov *.gcno && lcov --capture --directory . --output-file ${COVDIR}/pke.info
|
||||
COMMAND cd ${BUILDDIR}/src/binfhe/CMakeFiles/binfhe_tests.dir/unittest/ && gcov *.gcno && lcov --capture --directory . --output-file ${COVDIR}/binfhe.info
|
||||
COMMAND cd ${COVDIR} && mkdir -p assets && genhtml -t "Coverage Test" -o ${COVDIR}/assets/ *.info
|
||||
)
|
||||
message(STATUS "lcov found in ${LCOV_BIN}")
|
||||
else ()
|
||||
message(STATUS "lcov needs to be installed to generate a coverage report")
|
||||
endif ()
|
||||
|
||||
endif()
|
||||
|
||||
|
||||
#--------------------------------------------------------------------
|
||||
# Third-party logic
|
||||
#--------------------------------------------------------------------
|
||||
include (ExternalProject)
|
||||
|
||||
if (WITH_INTEL_HEXL)
|
||||
include(third-party/intel-hexl/intel-hexl.cmake)
|
||||
endif()
|
||||
|
||||
# third party directories
|
||||
set( THIRDPARTYDIR ${CMAKE_CURRENT_SOURCE_DIR}/third-party )
|
||||
include_directories( ${THIRDPARTYDIR}/include )
|
||||
|
||||
### Handle third-party CEREAL
|
||||
include_directories( ${THIRDPARTYDIR}/cereal/include )
|
||||
install(DIRECTORY ${THIRDPARTYDIR}/cereal/include/ DESTINATION include/palisade)
|
||||
|
||||
include_directories( ${CMAKE_SOURCE_DIR}/third-party/google-test/googletest )
|
||||
include_directories( ${CMAKE_SOURCE_DIR}/third-party/google-test/googletest/include )
|
||||
include_directories( ${CMAKE_SOURCE_DIR}/src/core/include )
|
||||
include_directories( ${CMAKE_BINARY_DIR}/src/core )
|
||||
|
||||
### Handle third-party gperftools for optional tcmalloc
|
||||
|
||||
add_custom_target(
|
||||
tcm
|
||||
COMMAND ./autogen.sh
|
||||
COMMAND ./configure --prefix=${CMAKE_CURRENT_BINARY_DIR}/third-party --enable-minimal
|
||||
COMMAND make
|
||||
COMMAND make install
|
||||
WORKING_DIRECTORY ${THIRDPARTYDIR}/gperftools
|
||||
)
|
||||
|
||||
add_custom_target(
|
||||
tcm_clean
|
||||
COMMAND rm -rf include/gperftools include/google lib/libtcmalloc_minimal* lib/pkgconfig/libtcmalloc* lib/pkgconfig/libprofiler.pc share/doc/gperftools
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/third-party
|
||||
)
|
||||
|
||||
if(BUILD_STATIC)
|
||||
add_library(tcmalloc_static STATIC IMPORTED GLOBAL)
|
||||
set_target_properties(tcmalloc_static PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/third-party/lib/libtcmalloc_minimal${CMAKE_STATIC_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED)
|
||||
add_library(tcmalloc SHARED IMPORTED GLOBAL)
|
||||
set_target_properties(tcmalloc PROPERTIES IMPORTED_LOCATION ${CMAKE_CURRENT_BINARY_DIR}/third-party/lib/libtcmalloc_minimal${CMAKE_SHARED_LIBRARY_SUFFIX})
|
||||
endif()
|
||||
|
||||
if(WITH_TCM)
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/third-party/lib DESTINATION .
|
||||
FILES_MATCHING PATTERN "libtcmalloc_minimal.*")
|
||||
list(APPEND THIRDPARTYLIBS "tcmalloc")
|
||||
list(APPEND THIRDPARTYSTATICLIBS "tcmalloc_static")
|
||||
install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/third-party/include DESTINATION include/palisade/third-party/)
|
||||
endif()
|
||||
|
||||
if(WITH_NTL)
|
||||
### Find gmp and ntl libraries. They must be installed by the user
|
||||
list(APPEND general_paths "/usr" "/usr/local" "/opt" "/opt/local")
|
||||
list(APPEND header_suffixes "include" "include/NTL" "include/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
list(APPEND lib_suffixes "lib" "lib/${CMAKE_LIBRARY_ARCHITECTURE}")
|
||||
if (NOT(NTL_INCLUDE_DIR AND NTL_LIBRARIES))
|
||||
find_path(NTL_INCLUDE_DIR
|
||||
NAMES RR.h
|
||||
PATHS ${general_paths}
|
||||
PATH_SUFFIXES ${header_suffixes}
|
||||
)
|
||||
find_library(NTL_LIBRARIES
|
||||
NAMES ntl libntl
|
||||
ONLY_CMAKE_FIND_ROOT_PATH
|
||||
PATHS ${general_paths}
|
||||
PATH_SUFFIXES ${lib_suffixes}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(NTL DEFAULT_MSG NTL_INCLUDE_DIR NTL_LIBRARIES)
|
||||
if(NTL_FOUND)
|
||||
get_filename_component(NTL_LIBRARIES ${NTL_LIBRARIES} DIRECTORY)
|
||||
else()
|
||||
message(FATAL_ERROR "** ERROR ** libntl is not found."
|
||||
"In order to use MATHBACKEND 6, install libntl or pass -DNTL_INCLUDE_DIR=<dir> and -DNTL_LIBRARIES=<dir> to cmake")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if (NOT(GMP_INCLUDE_DIR AND GMP_LIBRARIES))
|
||||
find_path(GMP_INCLUDE_DIR
|
||||
NAMES gmp.h
|
||||
PATHS ${general_paths}
|
||||
PATH_SUFFIXES ${header_suffixes}
|
||||
)
|
||||
find_library(GMP_LIBRARIES
|
||||
NAMES gmp libgmp
|
||||
ONLY_CMAKE_FIND_ROOT_PATH
|
||||
PATHS ${general_paths}
|
||||
PATH_SUFFIXES ${lib_suffixes}
|
||||
)
|
||||
|
||||
include(FindPackageHandleStandardArgs)
|
||||
FIND_PACKAGE_HANDLE_STANDARD_ARGS(GMP DEFAULT_MSG GMP_INCLUDE_DIR GMP_LIBRARIES)
|
||||
if(GMP_FOUND)
|
||||
get_filename_component(GMP_LIBRARIES ${GMP_LIBRARIES} DIRECTORY)
|
||||
else()
|
||||
message(FATAL_ERROR "** ERROR ** libgmp is not found."
|
||||
"In order to use MATHBACKEND 6, install libgmp or pass -DGMP_INCLUDE_DIR=<dir> and -GMPL_LIBRARIES=<dir> to cmake")
|
||||
endif()
|
||||
endif()
|
||||
mark_as_advanced(NTL_INCLUDE_DIR NTL_LIBRARIES)
|
||||
mark_as_advanced(GMP_INCLUDE_DIR GMP_LIBRARIES)
|
||||
include_directories(${NTL_INCLUDE_DIR})
|
||||
include_directories(${GMP_INCLUDE_DIR})
|
||||
link_directories(${NTL_LIBRARIES})
|
||||
link_directories(${GMP_LIBRARIES})
|
||||
|
||||
list(APPEND THIRDPARTYLIBS "ntl")
|
||||
list(APPEND THIRDPARTYLIBS "gmp")
|
||||
list(APPEND THIRDPARTYSTATICLIBS "ntl")
|
||||
list(APPEND THIRDPARTYSTATICLIBS "gmp")
|
||||
endif()
|
||||
|
||||
if (WITH_INTEL_HEXL)
|
||||
list(APPEND THIRDPARTYLIBS HEXL::hexl)
|
||||
endif()
|
||||
|
||||
set(DEMODATAPATH ${CMAKE_CURRENT_SOURCE_DIR}/demoData)
|
||||
set(BINDEMODATAPATH ${CMAKE_CURRENT_BINARY_DIR}/demoData)
|
||||
|
||||
# copies demoData folder from the root of the repo to build/demoData if the folder does not exist
|
||||
add_custom_target(third-party ALL
|
||||
COMMAND [ ! -d ${BINDEMODATAPATH} ] && cp -R ${DEMODATAPATH} ${BINDEMODATAPATH} && echo "-- Copied demoData files" || echo "-- demoData folder already exists" )
|
||||
|
||||
# when running "make clean", additionally deletes the demoData folder and CMake cache file
|
||||
set(ADDITIONAL_CLEAN_FILES "")
|
||||
LIST(APPEND ADDITIONAL_CLEAN_FILES ${BINDEMODATAPATH})
|
||||
LIST(APPEND ADDITIONAL_CLEAN_FILES ${CMAKE_CURRENT_BINARY_DIR}/CMakeCache.txt)
|
||||
|
||||
|
||||
## for tests
|
||||
if( BUILD_UNITTESTS )
|
||||
set(UNITTESTMAIN ${PROJECT_SOURCE_DIR}/test/Main_TestAll.cpp)
|
||||
endif()
|
||||
|
||||
|
||||
### add each of the subdirs of src
|
||||
add_subdirectory(src/core)
|
||||
add_subdirectory(src/pke)
|
||||
add_subdirectory(src/binfhe)
|
||||
|
||||
### build the google test handlers
|
||||
###if( BUILD_UNITTESTS )
|
||||
### add_subdirectory(third-party/google-test EXCLUDE_FROM_ALL)
|
||||
###endif()
|
||||
|
||||
### build the google benchmark handlers (just the parts we need)
|
||||
if ( BUILD_BENCHMARKS )
|
||||
set(BENCHMARK_ENABLE_TESTING OFF CACHE BOOL "Enable testing of the benchmark library." FORCE)
|
||||
set(BENCHMARK_ENABLE_INSTALL OFF CACHE BOOL "Enable installation of benchmark. (Projects embedding benchmark may want to turn this OFF.)" FORCE)
|
||||
set(BENCHMARK_ENABLE_GTEST_TESTS OFF CACHE BOOL "Enable building the unit tests which depend on gtest" FORCE)
|
||||
add_subdirectory(third-party/google-benchmark EXCLUDE_FROM_ALL)
|
||||
add_subdirectory(benchmark)
|
||||
endif()
|
||||
|
||||
## clobber cleans AND deletes the third-party stuff
|
||||
add_custom_target( clobber
|
||||
COMMAND make clean
|
||||
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )
|
||||
|
||||
if( BUILD_UNITTESTS )
|
||||
add_custom_target( testall
|
||||
DEPENDS core_tests pke_tests binfhe_tests
|
||||
COMMAND echo core: && unittest/core_tests -t || true
|
||||
COMMAND echo pke: && unittest/pke_tests -t || true
|
||||
COMMAND echo binfhe: && unittest/binfhe_tests -t )
|
||||
endif()
|
||||
|
||||
if (BUILD_EXAMPLES)
|
||||
add_custom_target( allexamples
|
||||
DEPENDS allcoreexamples allpkeexamples allbinfheexamples )
|
||||
endif()
|
||||
|
||||
if (BUILD_EXTRAS)
|
||||
add_custom_target( allextras
|
||||
DEPENDS allcoreextras allpkeextras )
|
||||
endif()
|
||||
|
||||
add_custom_target( allmodules DEPENDS ${PALISADE_PACKAGE_LIBS} )
|
||||
|
||||
# Add the additional "make clean" files
|
||||
GET_DIRECTORY_PROPERTY(clean_files ADDITIONAL_MAKE_CLEAN_FILES)
|
||||
LIST(APPEND clean_files ${ADDITIONAL_CLEAN_FILES})
|
||||
LIST(REMOVE_DUPLICATES clean_files)
|
||||
LIST(REMOVE_ITEM clean_files "")
|
||||
SET_DIRECTORY_PROPERTIES(PROPERTIES ADDITIONAL_MAKE_CLEAN_FILES "${clean_files}")
|
||||
|
||||
|
||||
export(EXPORT PalisadeTargets FILE "${PROJECT_BINARY_DIR}/PalisadeTargets.cmake")
|
||||
|
||||
export(PACKAGE Palisade)
|
||||
|
||||
# Create the PalisadeConfig.cmake and PalisadeConfigVersion files
|
||||
file(RELATIVE_PATH REL_INCLUDE_DIR "${INSTALL_CMAKE_DIR}"
|
||||
"${INSTALL_INCLUDE_DIR}")
|
||||
# ... for the build tree
|
||||
set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}" "${PROJECT_BINARY_DIR}")
|
||||
configure_file(PalisadeConfig.cmake.in
|
||||
"${PROJECT_BINARY_DIR}/PalisadeConfig.cmake" @ONLY)
|
||||
# ... for the install tree
|
||||
set(CONF_INCLUDE_DIRS "\${PALISADE_CMAKE_DIR}/${REL_INCLUDE_DIR}")
|
||||
configure_file(PalisadeConfig.cmake.in
|
||||
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PalisadeConfig.cmake" @ONLY)
|
||||
# ... for both
|
||||
configure_file(PalisadeConfigVersion.cmake.in
|
||||
"${PROJECT_BINARY_DIR}/PalisadeConfigVersion.cmake" @ONLY)
|
||||
|
||||
# Install the PalisadeConfig.cmake and PalisadeConfigVersion.cmake
|
||||
install(FILES
|
||||
"${PROJECT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/PalisadeConfig.cmake"
|
||||
"${PROJECT_BINARY_DIR}/PalisadeConfigVersion.cmake"
|
||||
DESTINATION "${INSTALL_CMAKE_DIR}" COMPONENT dev)
|
||||
|
||||
# Install the export set for use with the install-tree
|
||||
install(EXPORT PalisadeTargets DESTINATION
|
||||
"${INSTALL_CMAKE_DIR}" COMPONENT dev)
|
||||
79
Code/Duality_Technologies/PALISADE/Code-of-conduct.md
Normal file
79
Code/Duality_Technologies/PALISADE/Code-of-conduct.md
Normal file
@ -0,0 +1,79 @@
|
||||
# Palisade Project Code of Conduct
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as
|
||||
contributors and maintainers pledge to making participation in our project and
|
||||
our community a harassment-free experience for everyone, regardless of age, body
|
||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
||||
level of experience, education, socio-economic status, nationality, personal
|
||||
appearance, race, religion, or sexual identity and orientation.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment
|
||||
include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions
|
||||
that are not aligned to this Code of Conduct, or to ban temporarily or
|
||||
permanently any contributor for other behaviors that they deem inappropriate,
|
||||
threatening, offensive, or harmful.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces
|
||||
when an individual is representing the project or its community. Examples of
|
||||
representing a project or community include using an official project e-mail
|
||||
address, posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event. Representation of a project may be
|
||||
further defined and clarified by project maintainers.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported
|
||||
by contacting the project team at [contact@palisade-crypto.org](mailto:contact@palisade-crypto.org). contact@palisade-crypto.org
|
||||
Alternatively, you may report individually to one of the members of the Steering Council.
|
||||
Complaints will be reviewed and investigated and will result in a response that is deemed
|
||||
necessary and appropriate to the circumstances. The project team is obligated to
|
||||
maintain confidentiality with regard to the reporter of an incident.
|
||||
Further details of specific enforcement policies may be posted separately.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith
|
||||
may face temporary or permanent repercussions as determined by other members of the
|
||||
project's leadership.
|
||||
|
||||
If you feel that your report has not been followed up satisfactorily, then you may
|
||||
contact our sponsor organisation NumFOCUS at [info@numfocus.org](mailto:info@numfocus.org) for further redress.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org/), version 1.4, available at
|
||||
https://www.contributor-covenant.org/version/1/4/code-of-conduct.html, with additional adaptations used by the FEniCS project (https://https://bitbucket.org/fenics-project/governance/src/master/README.md).
|
||||
|
||||
Adaptations:
|
||||
|
||||
* allow reporting to individual Steering Council members.
|
||||
* added the option to contact NumFOCUS for further redress.
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
|
||||
For answers to common questions about this code of conduct, see
|
||||
https://www.contributor-covenant.org/faq
|
||||
227
Code/Duality_Technologies/PALISADE/Contributing.md
Normal file
227
Code/Duality_Technologies/PALISADE/Contributing.md
Normal file
@ -0,0 +1,227 @@
|
||||
# Contributing to PALISADE
|
||||
|
||||
We are using git for version management and control. We use gitlab for
|
||||
issue and milestone tracking.
|
||||
|
||||
We classify contributions as *Major* or *Minor*.
|
||||
|
||||
A Major contribution would be adding a new scheme, or capability to
|
||||
the library. Modifications that would require users to change existing
|
||||
PALISADE API code are also considered Major and would not be scheduled
|
||||
for inclusion except for a Major release (2.0 is the next scheduled
|
||||
major release). We usually require such contributions to be done in
|
||||
their own fork of the repository to minimize disruption to the ongoing
|
||||
release schedule.
|
||||
|
||||
Minor contributions are less broad in scope, and usually are limited
|
||||
to a few files at a time. These are usually done on a branch in the
|
||||
development repository, and are usuall incorporated into the next
|
||||
minor release cycle.
|
||||
|
||||
Sometimes a seemingly minor improvement may affect a large number of
|
||||
files. Formatting changes are an example of this. Changes to a large
|
||||
number of files can be disruptive if done in the wrong point of a
|
||||
release cycle.
|
||||
|
||||
If you discover a problem or identify a useful enhancement, do feel
|
||||
free to create a new issue in github. Major enhancements should be
|
||||
discussed with the PALISADE team ahead of time before undertaking any
|
||||
work (see below).
|
||||
|
||||
# Workflow for Minor Contributions
|
||||
|
||||
Our workflow for Minor contributions is that developers work in
|
||||
feature branches they create and then submit merge requests. All
|
||||
contributions -- be they bug fixes or enhancements -- must be
|
||||
documented in a gitlab issue, before the merge request.
|
||||
|
||||
We require that the code work correctly in all environments before it
|
||||
will be accepted for merging. We are working on bringing up a CI
|
||||
pipeline environment where branches can be tested on multiple
|
||||
platforms automatically. Unfortunately our Windows and MacOS build
|
||||
tests are currently done manually. If you do not have all the required
|
||||
systems to test, please coordinate with the team to schedule testing.
|
||||
|
||||
## Pre-requisites
|
||||
|
||||
Before contributing an improvement, install Python3 if it is not already installed. Then install the following dependencies:
|
||||
- `clang-format`
|
||||
- `pre-commit`
|
||||
- `cpplint`
|
||||
|
||||
On linux systems you will need to
|
||||
- `pip3 install clang-format`
|
||||
- `pip3 install pre-commit`
|
||||
- `pip3 install cpplint`
|
||||
|
||||
On macOS install using
|
||||
- `brew install clang-format`
|
||||
- `brew install pre-commit`
|
||||
- `pip install cpplint`
|
||||
|
||||
On Windows systems, install clang-format using an executable for Clang v9.0.0 or later. Then using ```git bash``` run
|
||||
- `pip3 install pre-commit`
|
||||
- `pip3 install cpplint`
|
||||
|
||||
Note, clang-format is not backwards compatible; the current format
|
||||
has been tested using `clang-format` version 9.0.0.
|
||||
|
||||
## Setup
|
||||
```bash
|
||||
pre-commit install
|
||||
```
|
||||
Now, `pre-commit` will run automatically on `git commit`.
|
||||
|
||||
By default, `pre-commit` will only run on changed files. To run on all the files (recommended when adding new hooks), call
|
||||
```bash
|
||||
pre-commit run --all-files
|
||||
```
|
||||
|
||||
## Making the code changes and checking in the result
|
||||
|
||||
We request that you conform to the following workflow:
|
||||
1. Start in master, or whichever branch you want to start from using the following command: ```git checkout master```
|
||||
2. Pull down the latest in this branch from the git repo: ```git pull origin master```
|
||||
3. Create a new branch with the a unique name: ```git checkout -b <your new branch name>```.
|
||||
* Note that we recommend naming feature branches by appending your name with an issue number. If your last name is Rohloff and you're fixing a bug documented in issue 233, then one would create a branch named Rohloff_issue233.
|
||||
* This command will create the branch and move you into it.
|
||||
|
||||
4. Make any changes you want to in the branch.
|
||||
5. Commit your changes to the local repo: ```git commit -am "commit message"```
|
||||
* Note the commit message should be succinct yet meaningful and indicate the issue you're addressing, and discussion of things you weren't able to address.
|
||||
* Be sure the `pre-commit` hooks run, to ensure the code meets the style guidelines. As a check, running `./maint/apply-code-format.sh` to apply clang-format should not result in any additional formatting changes in the code.
|
||||
* For a more granular control, you can first add files using `git add` and then run `git commit -m "commit message"`. In this case, the changes made by pre-commit will not automatically be added to the commit. Review the changes using `git diff`. If all looks well, run `git add`, and then retry `git commit -m "commit message"`.
|
||||
6. Push your local commit to the server in your branch: ```git push origin <your local branch name>```
|
||||
|
||||
7. After you finished inserting your new code you wanted to address, make sure the code builds and runs correctly and that you have not introduced any additional bugs.
|
||||
8. Make sure all unit tests pass and add additional unit tests as needed for features you've added.
|
||||
9. Before creating merge requests, developers should rebase their branch from master and test that their code works properly. [This page describes a workflow to rebase a branch from a master branch.](https://gitlab.com/palisade/palisade-development/-/wikis/How-to-rebase-your-branch-from-the-master-branch)
|
||||
10. Submit a merge request so project owners can review your commits here. You should include the text
|
||||
```Fixes #issue``` in your merge request.
|
||||
11. You may get feedback on your merge request, especially if there are problems or issues.
|
||||
12. When your merge request is accepted, your changes will be merged into master and your branch will be deleted.
|
||||
|
||||
* All additions to the released versions of PALISADE are subject to approval by the PALISADE governance team as outlined in the [PALISADE Governance document.](https://gitlab.com/palisade/palisade-development/blob/master/Governance.md)
|
||||
|
||||
|
||||
# Workflow for Major Contributions
|
||||
|
||||
If you plan major modifications of PALISADE, please consult with the
|
||||
PALISADE team first by contacting us at PALISADE-crypto.org to plan
|
||||
your modifications so that they can be implemented efficiently and in
|
||||
a way that doesn't conflict with any other planned future development.
|
||||
PALISADE is a work in progress, and major release revisions can
|
||||
deprecate large amounts of existing code. This way you can make sure
|
||||
your additions will be consistent with the planned release schedule of
|
||||
PALISADE. It will also ensure that you base your changes on the most
|
||||
recent version of the development library.
|
||||
|
||||
In addition to the workflow for Minor contributions the following is the
|
||||
requested procedure or a Major change.
|
||||
|
||||
* Fork the `palisade-development` repository on GitLab
|
||||
* Clone your new repository or add it as a remote to an existing repository
|
||||
* Check out the existing `master` branch, then start a new feature branch for
|
||||
your work
|
||||
* When making changes, write code that is consistent with the surrounding code
|
||||
(see the [style guidelines](#style-guidelines) below)
|
||||
* Add tests for any new features that you are implementing to either the
|
||||
GoogleTest-based test suite or the Python test suite.
|
||||
* Add examples that highlight new capabilities, or update existing
|
||||
examples to make use of new features.
|
||||
* As you make changes, commit them to your feature branch
|
||||
* Configure Git with your name and e-mail address before making any commits
|
||||
* Use descriptive commit messages (summary line of no more than 72 characters,
|
||||
followed by a blank line and a more detailed summary, if any)
|
||||
* Make related changes in a single commit, and unrelated changes in separate
|
||||
commits
|
||||
* Make sure that your commits do not include any undesired files, e.g., files
|
||||
produced as part of the build process or other temporary files.
|
||||
* Use Git's history-rewriting features (i.e., `git rebase -i`; see
|
||||
https://help.github.com/articles/about-git-rebase/) to organize your commits
|
||||
and squash "fixup" commits and reversions.
|
||||
* Do not merge your branch with `master`. If needed, you should occasionally
|
||||
rebase your branch
|
||||
onto the most recent `HEAD` commit of `master`.
|
||||
* Periodically run the test suite (`make testall`) to make sure that your
|
||||
changes are not causing any test failures.
|
||||
* Major additions may require changes to the PALISADE CMAKE files. Refer to
|
||||
the wiki page [Use-of-CMake-in-PALISADE](https://gitlab.com/palisade/palisade-development/-/wikis/Use-of-CMake-in-PALISADE) for details.
|
||||
|
||||
* Submit a Pull Request on GitLab. Check the results of the continuous-
|
||||
integration tests pipelines and resolve any issues that
|
||||
arise.
|
||||
* Additional discussion of good Git & GitLab workflow is provided at
|
||||
http://matplotlib.org/devel/gitwash/development_workflow.html and
|
||||
https://docs.scipy.org/doc/numpy-1.15.0/dev/gitwash/development_workflow.html
|
||||
* PALISADE is licensed under a [BSD
|
||||
license](https://gitlab.com/palisade-development/blob/master/License.txt)
|
||||
which
|
||||
allows others to freely modify the code, and if your Pull Request is accepted,
|
||||
then that code will be release under this license as well. The copyright for
|
||||
PALISADE is held collectively by the contributors. If you have made a
|
||||
significant contribution, please add your name to the `AUTHORS.md` file.
|
||||
|
||||
* All additions to the released versions of PALISADE are subject to approval by the PALISADE governance team as outlined in the [PALISADE Governance document.](https://gitlab.com/palisade/palisade-development/blob/master/Governance.md)
|
||||
|
||||
|
||||
# Style Guidelines
|
||||
|
||||
* Try to follow the style of surrounding code, and use variable names that
|
||||
follow existing patterns. Pay attention to indentation and spacing.
|
||||
* Configure your editor to use 4 spaces per indentation level, and **never to
|
||||
use tabs**.
|
||||
* Avoid introducing trailing whitespace
|
||||
* Limit line lengths to 80 characters when possible
|
||||
* Write comments to explain non-obvious operations within the code, both in header or source files.
|
||||
* Write Doxygen style comments to define all Classes, Templates, and
|
||||
methods (both public, private and protected. Please document all
|
||||
input and output data characterisitcs (required lengths of vectors,
|
||||
restrictions on combinations of variables) as well as any conditions
|
||||
that generate exceptions.
|
||||
|
||||
## C++
|
||||
|
||||
* All classes, member variables, and methods should have Doxygen-style comments
|
||||
(e.g., comment lines starting with `//!` or comment blocks starting with `/*!`)
|
||||
* Avoid defining non-trivial functions in header files
|
||||
* Header files should include an 'include guard'
|
||||
* Protected and private member variable names are generally prefixed with
|
||||
`m_`. For most classes, member variables should not be public. Data member should generally use `m_camelCase`.
|
||||
* Variable names use `camelCase`
|
||||
* Class names use `CamelCase`
|
||||
* Methods use `CamelCase`
|
||||
* Constant names and macros use `UPPER_CASE_WITH_UNDERSCORES` (example: `BIT_LENGTH`)
|
||||
* Do not indent the contents of namespaces
|
||||
|
||||
* Code may make use of most C++11 features. The minimum required
|
||||
compiler versions are listed in the main README.md file.
|
||||
|
||||
* Avoid manual memory management (i.e. `new` and `delete`), preferring to use
|
||||
standard library containers, as well as `std::unique_ptr` and
|
||||
`std::shared_ptr` when dynamic allocation is required.
|
||||
<!--* Portions of Boost which are "header only" may be used. If possible, include
|
||||
Boost header files only within .cpp files rather than other header files to
|
||||
avoid unnecessary increases in compilation time. Boost should not be added
|
||||
to the public interface unless its existence and use is optional. This keeps
|
||||
the number of dependencies low for users of PALISADE. In these cases,
|
||||
`PALISADE_API_NO_BOOST` should be used to conditionally remove Boost dependencies.-->
|
||||
* While PALISADE does not specifically follow these rules, the following style
|
||||
guides are useful references for possible style choices and the rationales behind them.
|
||||
* The Google C++ Style Guide: https://google.github.io/styleguide/cppguide.html
|
||||
* http://geosoft.no/development/cppstyle.html
|
||||
|
||||
* We have automated syntax checking on commit using ```clang-format```, so many of the above formatting rules will be automatically made.
|
||||
|
||||
## Python
|
||||
|
||||
* Style generally follows PEP8 (https://www.python.org/dev/peps/pep-0008/)
|
||||
* Code in `.py` and `.pyx` files needs to be written to work with Python 3
|
||||
* The minimum Python version that PALISADE supports is Python 3.4, so code
|
||||
should only use features added in Python 3.4 or earlier
|
||||
* Code in the Python examples should be written for Python 3
|
||||
|
||||
# Acknowlegement
|
||||
|
||||
We would like to Acknowlege the Cantera Project. We have modeled this
|
||||
document on their examples.
|
||||
50
Code/Duality_Technologies/PALISADE/Examples.md
Normal file
50
Code/Duality_Technologies/PALISADE/Examples.md
Normal file
@ -0,0 +1,50 @@
|
||||
PALISADE Examples
|
||||
=================
|
||||
|
||||
To support users in understanding and integration PALISADE provides a number of examples. There are a few examples inside this repository but also independent repositories.
|
||||
|
||||
---
|
||||
|
||||
**Table of Contents**
|
||||
- [PALISADE Integer Examples](#palisade-integer-examples)
|
||||
- [PALISADE Encrypted Circuit Emulator](#palisade-encrypted-circuit-emulator)
|
||||
- [PALISADE Python 3 Demos](#palisade-python-3-demos)
|
||||
- [PALISADE serial examples](#palisade-serial-examples)
|
||||
- [Local Examples](#local-examples)
|
||||
|
||||
---
|
||||
|
||||
[PALISADE Integer Examples](https://gitlab.com/palisade/palisade-integer-examples)
|
||||
---------------------------
|
||||
|
||||
This repository has a number of examples related to FHE integer operations.
|
||||
Check out the [README](https://gitlab.com/palisade/palisade-integer-examples/-/blob/master/README.md) in the repository for more details.
|
||||
|
||||
|
||||
[PALISADE Encrypted Circuit Emulator](https://gitlab.com/palisade/palisade-encrypted-circuit-emulator)
|
||||
-------------------------------------
|
||||
|
||||
This is a demonstration application using PALISADE's binfhe module for
|
||||
encrypted boolean logic.
|
||||
Check out the [README](https://gitlab.com/palisade/palisade-encrypted-circuit-emulator/-/blob/master/README.md) in the repository for more details.
|
||||
|
||||
[PALISADE Python 3 Demos](https://gitlab.com/palisade/palisade-python-demo)
|
||||
-------------------------
|
||||
|
||||
This repository contains an example python 3 wrapper for PALISADE. It
|
||||
does not expose all functionality of PALISADE, rather it is an example
|
||||
of how to build a specific python application program using a python
|
||||
wrapper, Boost/python bindings and an installed PALISADE library.
|
||||
Check out the [README](https://gitlab.com/palisade/palisade-python-demo/-/blob/master/README.md) in the repository for more details.
|
||||
|
||||
[PALISADE serial examples](https://gitlab.com/palisade/palisade-serial-examples)
|
||||
--------------------------
|
||||
|
||||
Sample programs for Encrypted Processing between cooperating processes.
|
||||
Check out the [README](https://gitlab.com/palisade/palisade-serial-examples/-/blob/master/README.md) in the repository for more details.
|
||||
|
||||
Local Examples
|
||||
--------------
|
||||
|
||||
The examples included with the PALISADE lattice crypto library.
|
||||
Check out the [README](src/pke/examples/README.md) in the repository for more details.
|
||||
283
Code/Duality_Technologies/PALISADE/Governance.md
Normal file
283
Code/Duality_Technologies/PALISADE/Governance.md
Normal file
@ -0,0 +1,283 @@
|
||||
# Palisade Project Main Governance Document v2.0
|
||||
|
||||
Policies and procedures governing the PALISADE community
|
||||
|
||||
# PALISADE Governance
|
||||
|
||||
This document outlines the policies and procedures that manage the
|
||||
PALISADE community.
|
||||
|
||||
## Revision History
|
||||
|
||||
This is a living document and is expected to be updated in order to
|
||||
meet the changing needs as the Palisade organization evolves over
|
||||
time.
|
||||
|
||||
* Version 0.1 Prerelease Placeholder 9/20/2019
|
||||
* Version 0.2 Draft for Steering Team Approval 10/28/2019
|
||||
* Version 1.0 Adopted by Steering Team 1/28/2020
|
||||
* Version 2.0 Adopted by Steering Team 3/21/21
|
||||
* addition of Crypto Team and Advisory Board
|
||||
|
||||
# NumFOCUS Affiliation
|
||||
|
||||
|
||||
PALISADE is a Sponsored Project of NumFOCUS, a 501(c)(3) nonprofit
|
||||
charity in the United States. NumFOCUS provides PALISADE with fiscal,
|
||||
and administrative support to help ensure the health and
|
||||
sustainability of the project. Visit
|
||||
([http://numfocus.org](http://numfocus.org)) for more information.
|
||||
|
||||
Donations to PALISADE are managed by NumFOCUS. For donors in the
|
||||
United States, your gift is tax-deductible to the extent provided by
|
||||
law. As with any donation, you should consult with your tax adviser
|
||||
about your particular tax situation.
|
||||
|
||||
PALISADE has a formal legal and fiscial relationship with DUALITY
|
||||
Technologies.
|
||||
|
||||
# Teams & Roles
|
||||
|
||||
Here are defined the primary teams participating in PALISADE
|
||||
activities. Note, individuals are able to participate in multiple
|
||||
teams. The Steering team shall approve all changes in membership to
|
||||
all PALISADE teams, and maintain a Google Doc listing team member's
|
||||
names, contact info, and date of first inclusion into the team.
|
||||
|
||||
* **Steering:** The Steering team is the governing body
|
||||
over the entire PALISADE organization. Members of the Steering
|
||||
team have full rights over all PALISADE repositories. Members
|
||||
of the Steering team are the face of the project, and are
|
||||
responsible for officially interfacing with external communities,
|
||||
organizations, non-profits, and companies. The Steering team
|
||||
may create new teams, as appropriate. Each member of the Steering
|
||||
team is entitled to one vote on all elected matters.
|
||||
|
||||
* **Crypto:** The Crypto team is a group of members of the Homomorphic
|
||||
Encryption Community who have been invited to participate by the
|
||||
Steering Committee. The team should meet as needed but at least once
|
||||
every three months. If there is a situation requiring an immediate
|
||||
response, such as a newly published attack, the Team may call an
|
||||
“extraordinary” meeting. The Crypto Team recommends actions and
|
||||
responses. All recommendations must be agreed to unanimously by
|
||||
members of the Crypto Team. Recommendations are then passed on to
|
||||
the Steering Team for an immediate vote for adoption. Areas of
|
||||
responsibility of the Crypto Team are outlined as follows:
|
||||
|
||||
* Decide whether a particular scheme/capability should be added or
|
||||
removed from an upcoming PALISADE release.
|
||||
|
||||
* Identify/recommend various hardening techniques, such as PRNG,
|
||||
Gaussian sampling, constant-time samplers, etc.
|
||||
|
||||
* Discuss/recommend the choice and inclusion of new lattice
|
||||
parameter settings, e.g., non-power-of-two cyclotomics.
|
||||
|
||||
* Develop/recommend any patches/fixes related to newly discovered vulnerabilities or attacks, and draft public
|
||||
announcements regarding those attacks and PALISADE'S corresponding response. Note, all resulting draft announcements must
|
||||
then be approved by the Steering Team, which is then responsible for publishing the announcement accordingly.
|
||||
|
||||
|
||||
* **Advisory Board:** The Advisory Board is a group of technologists
|
||||
and thought leaders expert in the HE field or associated application
|
||||
areas who have been invited to participate by the Steering
|
||||
Committee. The Board should meet with the Steering Team in an
|
||||
advisory session no more frequently than once every six months, with a
|
||||
minimum frequency of once every year. The role of the advisory board is to
|
||||
provide input and guidance to the Steering Team regarding emerging
|
||||
technologies, applications, and other agenda topics to be determined
|
||||
by the Steering Team for each meeting.
|
||||
|
||||
* **Pre-release:** The Pre-release team administers the current
|
||||
pre-release branch in the palisade-development repository and is
|
||||
responsible for the review and publication of new pre-releases, as
|
||||
well as updates, patches and bug fixes to these pre-releases as they
|
||||
are evaluated for submission to stable-release status. The
|
||||
Pre-release team determines which features in the master branch of
|
||||
palisade-development are sufficiently mature to be chosen for
|
||||
pre-release. They also are responsible for quality control checking
|
||||
of associated documentation related to the pre-release. The team
|
||||
will follow the guidelines (below) for release numbering.
|
||||
Pre-release of Major releases (i.e. incrementing the initial release
|
||||
number) have significant impact and must be approved by the Steering
|
||||
team.
|
||||
|
||||
* **Stable-release:** The Stable-release team administers the PALISADE
|
||||
stable release repository and is responsible for the review and
|
||||
publication of new stable releases, as well as the physical
|
||||
migration of the candidate pre-release and associated documentation
|
||||
to the stable release repostiory. It also is responsible for
|
||||
updating or patching the stable releases as applicable. The
|
||||
stable-release team will determine at what point in time a current
|
||||
pre-release is stable enough to be moved to the release repository
|
||||
according the the following suggested guidelines:
|
||||
|
||||
* The candidate pre-release has been tested independently by members
|
||||
of the community and no severe issues have been reported. Also no
|
||||
severe issues have been reported by the PALISADE Maintainers team.
|
||||
|
||||
* Sufficient time has passed for such independent review to occur. The
|
||||
duration of this review period is up to the judgement of the
|
||||
stable-release team and should be based on the number of new
|
||||
features and/or scope of patches applied since the last pre-release
|
||||
update.
|
||||
|
||||
* These guidlines are meant to be flexible to the needs of the
|
||||
community while maintaining overall software quality of the
|
||||
PALISADE release. As such, interested users may request an
|
||||
expedited (i.e. shorter) testing period provided they can assist
|
||||
with the required testing and evaluation. Such requests must be
|
||||
reviewd and approved by both the Stable-release team and the
|
||||
Steering team.
|
||||
|
||||
* **Maintainers:** A Maintainer is an individual responsible for the
|
||||
management of the palisade-development repository. Maintainers have
|
||||
the ability to commit/push source code and can handle merge/pull
|
||||
requests into the main branch of the repository with the following caveats:
|
||||
|
||||
* Merge/Pull requests from internal PALISADE Maintatiners require the
|
||||
review of one other member of the Maintainer team (i.e. a Maintainer
|
||||
cannot Merge their own branches).
|
||||
|
||||
* Merge/Pull requests from External contributors require an extra
|
||||
level of review and approval from the entire Maintainer team.
|
||||
|
||||
* **External contributors:** This group encompasses all others who are
|
||||
not on the Steering team, Pre-release, Release or Maintainers
|
||||
teams. This includes first-time contributors, collaborators, and
|
||||
funders. They have no special rights within the PALISADE
|
||||
organization itself. External contributors are strongly encouraged
|
||||
to discuss potential contributions with the Maintainers and/or
|
||||
Steering committee members before proceeding with any major
|
||||
development, in order to ensure their intended work will align with
|
||||
work already in progress, or in planning.
|
||||
|
||||
* **Emeritus status:** Steering team members that are inactive
|
||||
(commits, GitHub comments/issues/reviews, dev meetings and voting on
|
||||
polls) in the past six months will be asked if they want to become
|
||||
Emeritus. Any member of a PALISADE team can also request to become
|
||||
Emeritus if they wish to do so (e.g. taking a sabbatical or long
|
||||
vacation). Emeritus Steering team members can still vote and resume
|
||||
active status anytime, the only difference is that Emeritus-Steering
|
||||
team members will not count against the total Steering team members
|
||||
when computing the necessary votes a poll needs to pass. The
|
||||
membership Google Doc list should be updated when change in the
|
||||
status of a member occurs.
|
||||
|
||||
## Sub-Teams
|
||||
|
||||
The Steering team may elect to create new sub-teams for managing
|
||||
the daily business of the organization. While sub-teams may have
|
||||
non-Steering members, every sub-team must have at least one Steering
|
||||
team member at all times. If a sub-team fails to have a Steering
|
||||
team member for more than 2 weeks, that team is considered to be
|
||||
dissolved. A new sub-team would need to be established by the Steering team in
|
||||
order to reinstate the activity.
|
||||
|
||||
Sub-teams have a charter that is either *dynamic* or *static*.
|
||||
|
||||
* A *dynamic* charter means that the sub-team is self-organizing, with
|
||||
respect to its own internal policies, procedures, and membership. A
|
||||
sub-team may choose to modify its membership independent of the
|
||||
steering committee. For example, a Google Summer of Code team could
|
||||
be a good candidate for a dynamic charter. Alternatively,
|
||||
language-based maintenance teams also have a dynamic charter.
|
||||
|
||||
* A *static* charter means that all membership decisions and
|
||||
non-trivial policies changes must be approved by the steering
|
||||
committee. For example, a finance team may require a static charter.
|
||||
|
||||
All sub-teams must adhere to the governance, policies, and procedures of
|
||||
PALISADE at all times.
|
||||
|
||||
# Voting
|
||||
|
||||
This section presents descriptions and criteria for voting items in
|
||||
the PALISADE community. The Steering team is the only team with voting
|
||||
rights. Other teams may pass recommendations up to the Steering team
|
||||
for a vote. The members of the Steering team may also call a vote on
|
||||
any topic. The restrictions on calling a vote are as follows:
|
||||
|
||||
* There must only be one vote active on a particular item at any time.
|
||||
* The act of calling for a vote cannot itself violate the code of
|
||||
conduct. For example, Sam repeatedly called for votes immediately
|
||||
after a previous vote failed to achieve Sam's result. Sam is
|
||||
attempting to bully other members of core into agreeing, and is thus
|
||||
violating the code of conduct.
|
||||
* Voting yes moves the proposal forward;
|
||||
voting no is the only way to express opposition to the proposal;
|
||||
not voting is discouraged, but non-votes do not count as "no".
|
||||
* There should always be an option to abstain from voting.
|
||||
|
||||
Voting items are labeled as either **standard** or **sensitive**.
|
||||
Standard items are ones where public record and discourse is
|
||||
preferable. Sensitive voting items are ones where the results of the
|
||||
vote should remain private to the voters after the vote has occurred.
|
||||
Sensitive votes should take place on `the Helios voting system
|
||||
<https://vote.heliosvoting.org/>`_ in order retain anonymity.
|
||||
|
||||
The default voting period is 1 week (7 days). This may be modified at
|
||||
the time when a vote is called, but may never be less than 24 hrs.
|
||||
|
||||
Votes can happen on the following topics, with passing
|
||||
contingent on a 2/3 majority. All Steering team members should vote, but abstentions
|
||||
are permitted. Sample voting topics are as follows (but are not limited to this list):
|
||||
|
||||
* Modifications of these governance procedures (including
|
||||
permanently modifying these lists of sample voting topics).
|
||||
* Adding/removing Steering team members Spending project funds
|
||||
* Adding/removing people with commit rights to GitLab repositories
|
||||
* Adding/removing moderators of PALISADE online groups and forums
|
||||
* Adding/removing people to private communication channels
|
||||
* Adding/removing people with rights to post as PALISADE on social
|
||||
* media Establishing sub-committees and roles
|
||||
|
||||
Votes can happen on the following topics with passing contingent on a majority.
|
||||
At least 2/3 of the Steering team members should vote, but abstentions
|
||||
are permitted. Sample voting topics are as follows (but are not limited to this list):
|
||||
|
||||
* Approving an expedited release testing schedule
|
||||
* Approving a Major Pre-release
|
||||
|
||||
The Steering team will maintain a Google Doc that records all votes
|
||||
(but not discussion). Access to the Google Doc will be limited to
|
||||
members of the Steering team.
|
||||
|
||||
# Release numbering
|
||||
|
||||
Releases shall be numbered sequentially using the following triple numbering:
|
||||
|
||||
Major.minor.patch
|
||||
|
||||
Major release number must be incremented when the PALISADE user API
|
||||
changes, requiring user code rewrite.
|
||||
|
||||
Minor release numbers must be incremented when a new capability is
|
||||
added, or old capability is deprecated, but existing user code would
|
||||
still operate without a rewrite.
|
||||
|
||||
Patch release numbers must be incremented when patches/bug fixes are required.
|
||||
|
||||
|
||||
When a Major pre-release is approved, the Major number is incremented
|
||||
from the last release and minor and patch are set to zero.
|
||||
|
||||
When a Minor pre-release is approved the Minor number is incremented
|
||||
from the lasts relese and the patch is set to zero.
|
||||
|
||||
When a pre-release is patched, the pre-release
|
||||
Major and Minor numbers are maintained, and the patch is incremented.
|
||||
|
||||
When a pre-release is approved for stable-release, the pre-release
|
||||
Major and Minor numbers are maintained, and the patch is incremented.
|
||||
|
||||
When a stable-release is patched, the pre-release Major and Minor
|
||||
numbers are maintained, and the patch is incremented. The patches
|
||||
applied to the stable-release are to be applied to the master branch
|
||||
of the development release as appropriate.
|
||||
|
||||
At no time will there be multiple pre-release versions supported. Only
|
||||
the latest pre-release will be considered active.
|
||||
|
||||
Once a pre-release is accepted for stable release, that pre-release
|
||||
is considered inactive.
|
||||
26
Code/Duality_Technologies/PALISADE/LICENSE
Normal file
26
Code/Duality_Technologies/PALISADE/LICENSE
Normal file
@ -0,0 +1,26 @@
|
||||
BSD 2-Clause License
|
||||
|
||||
Copyright (c) 2021, PALISADE
|
||||
|
||||
All rights reserved.
|
||||
|
||||
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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
8
Code/Duality_Technologies/PALISADE/Makefile
Normal file
8
Code/Duality_Technologies/PALISADE/Makefile
Normal file
@ -0,0 +1,8 @@
|
||||
all:
|
||||
@echo "PALISADE has converted to CMake"
|
||||
@echo "Try this:"
|
||||
@echo mkdir build
|
||||
@echo cd build
|
||||
@echo cmake ..
|
||||
@echo make
|
||||
@echo make install \(to install in 'installed'\)
|
||||
84
Code/Duality_Technologies/PALISADE/PalisadeConfig.cmake.in
Normal file
84
Code/Duality_Technologies/PALISADE/PalisadeConfig.cmake.in
Normal file
@ -0,0 +1,84 @@
|
||||
# - Config file for the Palisade package
|
||||
# It defines the following variables
|
||||
# PALISADE_INCLUDE_DIRS - include directories for Palisade
|
||||
# PALISADE_LIBRARIES - libraries to link against
|
||||
|
||||
get_filename_component(PALISADE_CMAKE_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH)
|
||||
|
||||
# Our library dependencies (contains definitions for IMPORTED targets)
|
||||
if(NOT Palisade_BINARY_DIR)
|
||||
include("${PALISADE_CMAKE_DIR}/PalisadeTargets.cmake")
|
||||
endif()
|
||||
|
||||
# These are IMPORTED targets created by PalisadeTargets.cmake
|
||||
set(PALISADE_INCLUDE "@INSTALL_INCLUDE_DIR@")
|
||||
set(PALISADE_LIBDIR "@INSTALL_LIB_DIR@")
|
||||
set(PALISADE_LIBRARIES @PALISADE_PACKAGE_LIBS@ @THIRDPARTYLIBS@ @OpenMP_CXX_FLAGS@)
|
||||
set(PALISADE_STATIC_LIBRARIES @PALISADE_STATIC_LIBS@ @THIRDPARTYLIBS@ @OpenMP_CXX_FLAGS@)
|
||||
set(PALISADE_SHARED_LIBRARIES @PALISADE_SHARED_LIBS@ @THIRDPARTYLIBS@ @OpenMP_CXX_FLAGS@)
|
||||
set(BASE_PALISADE_VERSION @PALISADE_VERSION@)
|
||||
|
||||
|
||||
set(OPENMP_INCLUDES "@OPENMP_INCLUDES@" )
|
||||
set(OPENMP_LIBRARIES "@OPENMP_LIBRARIES@" )
|
||||
|
||||
set(PALISADE_CXX_FLAGS "@CMAKE_CXX_FLAGS@ @OpenMP_CXX_FLAGS@")
|
||||
set(PALISADE_C_FLAGS "@CMAKE_C_FLAGS@ @OpenMP_C_FLAGS@")
|
||||
|
||||
if( "@WITH_NTL@" STREQUAL "Y" )
|
||||
set(PALISADE_CXX_FLAGS "${PALISADE_CXX_FLAGS} -DWITH_NTL" )
|
||||
set(PALISADE_C_FLAGS "${PALISADE_C_FLAGS} -DWITH_NTL")
|
||||
endif()
|
||||
|
||||
set (PALISADE_EXE_LINKER_FLAGS "@CMAKE_EXE_LINKER_FLAGS@ @OpenMP_EXE_LINKER_FLAGS@")
|
||||
|
||||
# CXX info
|
||||
set(PALISADE_CXX_STANDARD "@CMAKE_CXX_STANDARD@")
|
||||
set(PALISADE_CXX_COMPILER_ID "@CMAKE_CXX_COMPILER_ID@")
|
||||
set(PALISADE_CXX_COMPILER_VERSION "@CMAKE_CXX_COMPILER_VERSION@")
|
||||
|
||||
# Build Options
|
||||
set(PALISADE_STATIC "@BUILD_STATIC@")
|
||||
set(PALISADE_SHARED "@BUILD_SHARED@")
|
||||
set(PALISADE_TCM "@WITH_TCM@")
|
||||
set(PALISADE_WITH_INTEL_HEXL "@WITH_INTEL_HEXL@")
|
||||
set(PALISADE_OPENMP "@WITH_OPENMP@")
|
||||
set(PALISADE_NATIVE_SIZE "@NATIVE_SIZE@")
|
||||
set(PALISADE_CKKS_M_FACTOR "@CKKS_M_FACTOR@")
|
||||
set(PALISADE_NATIVEOPT "@WITH_NATIVEOPT@")
|
||||
|
||||
# Math Backend
|
||||
if("@WITH_BE2@")
|
||||
set(PALISADE_BACKEND "BE2")
|
||||
elseif("@WITH_BE4@")
|
||||
set(PALISADE_BACKEND "BE4")
|
||||
elseif("@WITH_NTL@")
|
||||
set(PALISADE_BACKEND "NTL")
|
||||
endif()
|
||||
|
||||
# Build Details
|
||||
set(PALISADE_EMSCRIPTEN "@EMSCRIPTEN@")
|
||||
set(PALISADE_ARCHITECTURE "@ARCHITECTURE@")
|
||||
set(PALISADE_BACKEND_FLAGS_BASE "@PALISADE_BACKEND_FLAGS@")
|
||||
|
||||
# Compile Definitions
|
||||
|
||||
if( "@BUILD_SHARED@" )
|
||||
set(PALISADE_BINFHE_COMPILE_DEFINITIONS "@_pal_binfhe_compile_defs@")
|
||||
set(PALISADE_CORE_COMPILE_DEFINITIONS "@_pal_core_compile_defs@")
|
||||
set(PALISADE_PKE_COMPILE_DEFINITIONS "@_pal_pke_compile_defs@")
|
||||
set(PALISADE_COMPILE_DEFINITIONS
|
||||
${PALISADE_BINFHE_COMPILE_DEFINITIONS}
|
||||
${PALISADE_CORE_COMPILE_DEFINITIONS}
|
||||
${PALISADE_PKE_COMPILE_DEFINITIONS})
|
||||
endif()
|
||||
|
||||
if( "@BUILD_STATIC@" )
|
||||
set(PALISADE_BINFHE_COMPILE_DEFINITIONS_STATIC "@_pal_binfhe_compile_defs_static@")
|
||||
set(PALISADE_CORE_COMPILE_DEFINITIONS_STATIC "@_pal_core_compile_defs_static@")
|
||||
set(PALISADE_PKE_COMPILE_DEFINITIONS_STATIC "@_pal_pke_compile_defs_static@")
|
||||
set(PALISADE_COMPILE_DEFINITIONS_STATIC
|
||||
${PALISADE_BINFHE_COMPILE_DEFINITIONS_STATIC}
|
||||
${PALISADE_CORE_COMPILE_DEFINITIONS_STATIC}
|
||||
${PALISADE_PKE_COMPILE_DEFINITIONS_STATIC})
|
||||
endif()
|
||||
@ -0,0 +1,11 @@
|
||||
set(PACKAGE_VERSION "@PALISADE_VERSION@")
|
||||
|
||||
# Check whether the requested PACKAGE_FIND_VERSION is compatible
|
||||
if("${PACKAGE_VERSION}" VERSION_LESS "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_COMPATIBLE FALSE)
|
||||
else()
|
||||
set(PACKAGE_VERSION_COMPATIBLE TRUE)
|
||||
if ("${PACKAGE_VERSION}" VERSION_EQUAL "${PACKAGE_FIND_VERSION}")
|
||||
set(PACKAGE_VERSION_EXACT TRUE)
|
||||
endif()
|
||||
endif()
|
||||
1
Code/Duality_Technologies/PALISADE/PreLoad.cmake
Normal file
1
Code/Duality_Technologies/PALISADE/PreLoad.cmake
Normal file
@ -0,0 +1 @@
|
||||
set (CMAKE_GENERATOR "Unix Makefiles" CACHE INTERNAL "" FORCE)
|
||||
149
Code/Duality_Technologies/PALISADE/README.md
Normal file
149
Code/Duality_Technologies/PALISADE/README.md
Normal file
@ -0,0 +1,149 @@
|
||||
PALISADE Lattice Cryptography Library
|
||||
=====================================
|
||||
|
||||
PALISADE is a general lattice cryptography library that currently includes efficient implementations of the following lattice cryptography capabilities:
|
||||
* Fully Homomorphic Encryption (FHE)
|
||||
* Brakerski/Fan-Vercauteren (BFV) scheme for integer arithmetic
|
||||
* Brakerski-Gentry-Vaikuntanathan (BGV) scheme for integer arithmetic
|
||||
* Cheon-Kim-Kim-Song (CKKS) scheme for real-number arithmetic
|
||||
* Ducas-Micciancio (FHEW) and Chillotti-Gama-Georgieva-Izabachene (TFHE) schemes for Boolean circuit evaluation
|
||||
* Multi-Party Extensions of FHE (to support multi-key FHE)
|
||||
* Threshold FHE for BGV, BFV, and CKKS schemes
|
||||
* Proxy Re-Encryption for BGV, BFV, and CKKS schemes
|
||||
|
||||
Note as of version 1.11, the following features have been moved to their own repositories in the PALISADE group.
|
||||
|
||||
* Digital Signature (https://gitlab.com/palisade/palisade-signature)
|
||||
* Identity-Based Encryption (https://gitlab.com/palisade/palisade-abe)
|
||||
* Ciphertext-Policy Attribute-Based Encryption (https://gitlab.com/palisade/palisade-abe)
|
||||
|
||||
All the research prototypes for Key-Policy Attributed-Based Encryption and Program Obfuscation have been moved to https://gitlab.com/palisade/palisade-trapdoor)
|
||||
|
||||
PALISADE is a cross-platform C++11 library supporting Linux, Windows, and macOS. The supported compilers are g++ v6.1 or later and clang++ v6.0 or later.
|
||||
|
||||
The library also includes unit tests and sample application demos.
|
||||
|
||||
PALISADE is available under the BSD 2-clause license.
|
||||
|
||||
The library is based on modular architecture with the following layers:
|
||||
|
||||
* Math operations layer supporting low-level modular arithmetic, number theoretic transforms, and integer sampling. This layer is implemented to be portable to multiple hardware computation substrates.
|
||||
* Lattice operations layer supporting lattice operations, ring algebra, and lattice trapdoor sampling.
|
||||
* Crypto layer containing efficient implementations of lattice cryptography schemes.
|
||||
* Encoding layer supporting multiple plaintext encodings for cryptographic schemes.
|
||||
|
||||
A major focus is on the usability of the schemes. For instance, all HE schemes with packing use the same common API, and are implemented using runtime polymorphism.
|
||||
|
||||
PALISADE implements efficient Residue Number System (RNS) algorithms to achieve high performance, e.g., PALISADE was used as the library for a winning genome-wide association studies solution at iDASH’18.
|
||||
|
||||
By default, the library is built without external dependencies. But the user is also provided options to add GMP/NTL, tcmalloc, and/or Intel HEXL third-party libraries if desired.
|
||||
|
||||
Further information about PALISADE:
|
||||
|
||||
[License Information](LICENSE)
|
||||
|
||||
[Library Wiki with documentation](https://gitlab.com/palisade/palisade-development/wikis/home)
|
||||
|
||||
[Webinars](Webinars.md)
|
||||
|
||||
[YouTube Channel PALISADE](https://www.youtube.com/channel/UC1qByOsQina1rpZ8AGl5TZw)
|
||||
|
||||
[Code of Conduct](Code-of-conduct.md)
|
||||
|
||||
[Governance](Governance.md)
|
||||
|
||||
[Contributing to PALISADE](Contributing.md)
|
||||
|
||||
[PALISADE Examples](Examples.md)
|
||||
|
||||
|
||||
Build Instructions
|
||||
=====================================
|
||||
|
||||
We use CMake to build PALISADE. The high-level (platform-independent) procedure for building PALISADE is as follows (for OS-specific instructions, see the section "Detailed information about building PALISADE" at the bottom of this page):
|
||||
|
||||
1. Install system prerequisites (if not already installed), including a C++ compiler with OMP support, cmake, make, and autoconf.
|
||||
|
||||
2. Clone the PALISADE repo to your local machine.
|
||||
|
||||
3. Create a directory where the binaries will be built. The typical choice is a subfolder "build". In this case, the commands are:
|
||||
```
|
||||
mkdir build
|
||||
cd build
|
||||
cmake ..
|
||||
```
|
||||
|
||||
Note that CMake will check for any system dependencies that are needed for the build process. If the CMake build does not complete successfully, please review the error CMake shows at the end. If the error does not go away (even though you installed the dependency), try running "make clean" to clear the CMake cache.
|
||||
|
||||
4. If you want to use any external libraries, such as NTL/GMP or tcmalloc, install these libraries.
|
||||
|
||||
5. Build PALISADE by running the following command (this will take few minutes; using the -j make command-line flag is suggested to speed up the build)
|
||||
```
|
||||
make
|
||||
```
|
||||
If you want to build only library files or some other subset of PALISADE, please review the last paragraph of this page.
|
||||
|
||||
After the "make" completes, you should see the PALISADE library files in the lib folder, binaries of demos in bin/demo, binaries of benchmarks in bib/benchmark, and binaries for unit tests in the unittest folder.
|
||||
|
||||
6. Install PALISADE to a system directory (if desired or for production purposes)
|
||||
```
|
||||
make install
|
||||
```
|
||||
You would probably need to run `sudo make install` unless you are specifying some other install location. You can change the install location by running
|
||||
`cmake -DCMAKE_INSTALL_PREFIX=/your/path ..`. The header files are placed in the "include/palisade" folder of the specified path, and the binaries of the library
|
||||
are copied directly to the "lib" folder. For example, if no installation path is provided in Ubuntu (and many other Unix-based OSes), the header and library
|
||||
binary files will be placed in "/usr/local/include/palisade" and "/usr/local/lib", respectively.
|
||||
|
||||
Testing and cleaning the build
|
||||
-------------------
|
||||
|
||||
Run unit tests to make sure all capabilities operate as expected
|
||||
```
|
||||
make testall
|
||||
```
|
||||
|
||||
Run sample code to test, e.g.,
|
||||
```
|
||||
bin/examples/pke/simple-integers
|
||||
```
|
||||
|
||||
To remove the files built by make, you can execute
|
||||
```
|
||||
make clean
|
||||
```
|
||||
|
||||
Supported Operating Systems
|
||||
--------------------------
|
||||
PALISADE CI continually tests our builds on the following operating systems:
|
||||
|
||||
* Ubuntu [18.04] [20.04]
|
||||
* macOS [Mojave]
|
||||
* Centos 7
|
||||
* NVIDIA Xavier [Linux for Tegra 4.2.2]
|
||||
* MinGW (64-bit) on Windows 10
|
||||
|
||||
PALISADE users have reported successful operation on the following systems:
|
||||
|
||||
* FreeBSD
|
||||
* Ubuntu [16.04]
|
||||
* Arch Linux
|
||||
* Manjaro Linux
|
||||
|
||||
Please let us know the results if you have run PALISADE any additional systems not listed above.
|
||||
|
||||
Detailed information about building PALISADE
|
||||
------------------------------
|
||||
|
||||
More detailed steps for some common platforms are provided in the following Wiki articles:
|
||||
|
||||
[Instructions for building PALISADE in Linux](https://gitlab.com/palisade/palisade-development/wikis/Instructions-for-building-PALISADE-in-Linux)
|
||||
|
||||
[Instructions for building PALISADE in Windows](https://gitlab.com/palisade/palisade-development/wikis/Instructions-for-building-PALISADE-in-Windows)
|
||||
|
||||
[Instructions for building PALISADE in macOS](https://gitlab.com/palisade/palisade-development/wikis/Instructions-for-building-PALISADE-in-macOS)
|
||||
|
||||
PALISADE provides many CMake/make configuration options, such as installing specific modules of the library, compiling only libraries w/o any unit tests and demos, choosing the Debug mode for compilation, turning on/off NTL/GMP. These options are described in detail in the following Wiki article:
|
||||
|
||||
[Use of CMake in PALISADE](https://gitlab.com/palisade/palisade-development/-/wikis/Use-of-CMake-in-PALISADE)
|
||||
|
||||
[Instructions for building user projects that use PALISADE](https://gitlab.com/palisade/palisade-development/wikis/Instructions-for-building-user-projects-that-use-PALISADE)
|
||||
226
Code/Duality_Technologies/PALISADE/Release_Notes.md
Normal file
226
Code/Duality_Technologies/PALISADE/Release_Notes.md
Normal file
@ -0,0 +1,226 @@
|
||||
08/25/2022: PALISADE v1.11.8 (stable) is released in the palisade-release repo
|
||||
* Adds support for RISC-V architecture
|
||||
* Updates 192- and 256-bit parameter sets for FHEW/TFHE
|
||||
|
||||
04/30/2022: PALISADE v1.11.7 (stable) is released in the palisade-release repo
|
||||
* Updates the parameter sets for FHEW/TFHE
|
||||
* Optimizes the BGV AUTO modulus switching mode
|
||||
* Fixes several bugs
|
||||
|
||||
01/28/2022: PALISADE v1.11.6 (stable) is released in the palisade-release repo
|
||||
* Fixes a bug affecting Intel HEXL builds
|
||||
* Updates Intel HEXL to 1.2.3
|
||||
* Fixes a serialization compatibility issue between 32-bit and 64-bit systems (needed for WebAssembly)
|
||||
* Improves runtime of TFHE bootstrapping (by about 1.5x)
|
||||
* Adds the uninstall capability
|
||||
* Fixes other bugs
|
||||
|
||||
09/17/2021: PALISADE v1.11.5 (stable) is released in the palisade-release repo
|
||||
* Fixes a bug affecting Intel HEXL builds
|
||||
* Upgrades HEXL to 1.2.1 (improves performance of AVX-512 acceleration)
|
||||
* Fixes a bug affecting some scenarios of distributed decryption in BGVrns
|
||||
|
||||
08/22/2021: PALISADE v1.11.4 (stable) is released in the palisade-release repo
|
||||
* Fixes WebAssembly compilation for new versions of Emscripten (2.0.23+)
|
||||
* Integrates HEXL v1.2.0 improvements (additional acceleration)
|
||||
* Adds support for Gaussian sampling with standard deviations between 2^32 and 2^59
|
||||
* Fixes several minor bugs
|
||||
|
||||
05/28/2021: PALISADE v1.11.3 (stable) is released in the palisade-release repo
|
||||
* Includes all changes from development releases v1.11.0, v1.11.1, and v1.11.2
|
||||
|
||||
05/26/2021: PALISADE v1.11.2 (development) is released
|
||||
* Adds initial Intel HEXL library integration
|
||||
* Adds support for web assembly
|
||||
* Fixes some bugs for the scenarios with multiple cryptocontexts
|
||||
|
||||
05/04/2021: PALISADE v1.11.1 (development) is released
|
||||
* Fixes some bugs related to serialization
|
||||
|
||||
03/31/2021: PALISADE v1.11.0 (development) is released
|
||||
|
||||
* The abe module is moved to https://gitlab.com/palisade/palisade-abe
|
||||
* The signature module is moved to https://gitlab.com/palisade/palisade-signature
|
||||
* Adds high-precision CKKS (supports the scaling factor of up to 119 bits in size)
|
||||
* Removes old code (Stehle-Steinfeld scheme and prior Matrix functionality)
|
||||
* Applies optimizations for NTT, and hybrid key switching in BGVrns and CKKS
|
||||
* Simplifies the PALISADE installation (gitmodules are now updated automatically)
|
||||
* Adds a Dockerfile for PALISADE
|
||||
* Fixes many bugs reported by the PALISADE community
|
||||
|
||||
12/08/2020: PALISADE v1.10.6 (stable) is released
|
||||
|
||||
* Patches CKKS against the Li-Micciancio attack
|
||||
* Complex-number arithmetic is no longer supported in CKKS
|
||||
* Fixes a bug in the 128-bit mathematical backend
|
||||
* Fixes a rarely occuring exception in the Gaussian sampling procedure
|
||||
|
||||
10/01/2020: PALISADE v1.10.5 (stable) is released
|
||||
|
||||
* Fixes a lattice parameter selection bug for an edge case (for leveled HE schemes)
|
||||
* Fixes a compilation error in Apple clang 12 (XCode 12)
|
||||
|
||||
09/21/2020: PALISADE v1.10.4 (stable) is released
|
||||
|
||||
* Includes all changes from development releases v1.10.0-v1.10.3
|
||||
* Fixes some bugs in BGVrns
|
||||
* Improves error handling
|
||||
|
||||
08/25/2020: PALISADE v1.10.3 (development) is released
|
||||
|
||||
* Fixes a bug in BFVrns for larger plaintext moduli
|
||||
* Fixes bugs in FHEW/TFHE
|
||||
* Fixes bugs affecting the 32-bit and 64-bit native integer backends
|
||||
* Improves error handling
|
||||
* Includes minor documentation cleanup
|
||||
|
||||
07/11/2020: PALISADE v1.10.2 (development) is released
|
||||
|
||||
* Fixes a bug affecting some threshold FHE scenarios
|
||||
* Adds more validation to CMake flags
|
||||
* Includes minor documentation cleanup
|
||||
|
||||
06/26/2020: PALISADE v1.10.1 (development) is released
|
||||
|
||||
* Fixes a bug affecting some clang environments
|
||||
* Fixes a bug related to the BUILD_BENCHMARKS CMake flag
|
||||
|
||||
06/18/2020: PALISADE v1.10.0 (development) is released
|
||||
|
||||
* Adds a usable, full RNS variant of BGV (as a more efficient alternative to BFV RNS variants for integer arithmetic)
|
||||
* Adds a fully functional threshold FHE capability to BGV, BFV, and CKKS to support multi-party computations
|
||||
* Adds an automated rescaling mode to the approximate rescaling RNS variant of CKKS
|
||||
* Improves the performance of both CKKS RNS variants
|
||||
* Improves the performance of both BFV RNS variants
|
||||
* Makes NTL completely optional for all environments (no quad-precision floats are needed anymore)
|
||||
* Improves the support for clang in Linux
|
||||
* Simplifies the CMake procedure for building PALISADE
|
||||
* Fixes many bugs reported by the PALISADE community
|
||||
|
||||
04/24/2020: PALISADE v1.9.2 (stable) is released in the palisade-release repo
|
||||
|
||||
* Includes all changes from development releases v1.8.0, v1.9.0, and v1.9.1
|
||||
* Fixes a bug in BFVrnsB
|
||||
* Fixes a bug with CSPRNG in some multi-threaded environments
|
||||
|
||||
03/03/2020: PALISADE v1.9.1 (development) is released
|
||||
|
||||
* Fixes the performance issue with Ubuntu
|
||||
* Improves the runtime of inverse Number Theoretic Transform for all supported systems
|
||||
|
||||
02/29/2020: PALISADE v1.9.0 (development) is released
|
||||
|
||||
* Adds multiple low-level optimizations, including improved Number Theoretic Transform
|
||||
* Adds a CMake install package for PALISADE
|
||||
* Improves the security and performance of the PRE implementations for BFV, BGV, and CKKS homomorphic encryption schemes
|
||||
* Updates selected parameter sets for FHEW to reduce the probability of decryption error
|
||||
* Includes multiple bug fixes for the issues reported by the PALISADE community
|
||||
|
||||
01/30/2020: PALISADE v1.8.0 (development) is released
|
||||
|
||||
* Adds the Gama-Izabachene-Nguyen-Xie (GINX) bootstrapping to the FHEW implementation
|
||||
* Includes other FHEW optimizations: now the bootstrapping key size is 20x times smaller and runtime about 2.5x faster
|
||||
* Adds XOR and XNOR gates to FHEW
|
||||
|
||||
01/22/2020: PALISADE v1.7.4 (stable) is released in the palisade-release repo
|
||||
|
||||
* includes all changes from development releases v1.7.a to v1.7.d
|
||||
|
||||
01/15/2020: PALISADE v1.7.d (development) is released
|
||||
|
||||
* Replaces the Mersenne Twister PRNG Engine with a cryptographically secure BLAKE2-based PRNG
|
||||
* Fixes a PRNG bug affecting environments where multithreading is done not using OpenMP
|
||||
|
||||
12/26/2019: PALISADE v1.7.c (development) is released
|
||||
|
||||
* Fixes a bug affecting applications using the PALISADE serialization capability
|
||||
* Changes the installation paths for header files and library binary files
|
||||
|
||||
12/19/2019: PALISADE v1.7.b (development) is released
|
||||
|
||||
* Simplifies the development of applications using PALISADE (only one header file is now needed for most applications)
|
||||
* Changes the folder hierarchy of the library header files
|
||||
|
||||
11/15/2019: PALISADE v1.7.a (development) is released
|
||||
|
||||
* Adds an optimized implementation of the CKKS scheme for approximate (real-number) homomorphic encryption. The implementation features automated rescaling/modswitching and hybrid key switching.
|
||||
* Adds an optimized implementation of the FHEW scheme for Boolean-circuit homomorphic encryption, supporting standard HE parameters. Performs bootstrapping for each binary gate, and hence supports the evaluation of arbitrary Boolean circuits.
|
||||
* Adds the ring dimension as an option when generating crypto contexts for BFV variants.
|
||||
* Improves the noise growth of the BEHZ variant of BFV (referred to as the BFVrnsB scheme in PALISADE).
|
||||
* Fixes several bugs.
|
||||
|
||||
9/12/2019: PALISADE v1.6.0 is released
|
||||
|
||||
* Significantly simplifies/automates the PALISADE build/installation process. Now we use CMake.
|
||||
* Serialization/deserialization is now much faster (by 3x to 10x). Both binary and JSON formats are supported.
|
||||
* By default, PALISADE compiles w/o external dependencies in Linux and Windows, i.e., NTL/GMP is now optional for these OSes.
|
||||
* The performance in Windows is now as fast as in Linux (4x to 7x times faster than previously).
|
||||
* Applies several low-level optimizations, and fixes some bugs.
|
||||
|
||||
3/20/2019: PALISADE v1.5.0 is released
|
||||
|
||||
* Fixes the vulnerability found in https://eprint.iacr.org/2017/785 (PKC'19) for the PRE schemes based on BGV/BFV
|
||||
* Adds PRE modes for BGV/BFV that are secure under honest re-reencryption attacks (recommended security for practical use)
|
||||
* Adds support for splitting lattice trapdoor sampling into offline and online phases (used by digital signatures, IBE, and ABE constructions)
|
||||
* Fixes bugs related to the multi-threaded mode of operation
|
||||
|
||||
02/11/2018: PALISADE v1.4.1 is released
|
||||
|
||||
Fixes a bug affecting the IBE and CP-ABE implementations (some unit tests for IBE/CP-ABE were entering in an infinite loop in about 10% of the runs).
|
||||
|
||||
12/31/2018: PALISADE v1.4.0 is released
|
||||
|
||||
* Adds the Gentry-Peikert-Vaikuntanathan (GPV) digital signature scheme
|
||||
* Adds the GPV identity-based encryption scheme
|
||||
* Adds the Zhang-Zhang ciphertext-policy attribute-based encryption scheme
|
||||
* Includes Genise-Micciancio (Eurocrypt'18) lattice trapdoor sampling algorithms and their improvements/generalizations
|
||||
* Fixes bugs that were brought to our attention
|
||||
|
||||
11/26/2018: PALISADE v1.3.1 is released
|
||||
|
||||
* Improves performance of BFVrns
|
||||
* Improves performance of Number Theoretic Transform
|
||||
* Fixes a bug affecting the demo-cross-correlation demo
|
||||
* Fixes other bugs that were brought to our attention
|
||||
|
||||
10/17/2018: PALISADE v1.3.0 is released
|
||||
|
||||
* Added support for the security levels/tables specified by the HomorphicEncryption.org security standard to all variants of the BFV scheme
|
||||
* Optimized the packed encoding (batching)
|
||||
* Simplified the signatures of classes and methods at multiple layers
|
||||
* Fixed bugs that were brought to our attention
|
||||
|
||||
6/15/2018: PALISADE v1.2 is released
|
||||
|
||||
PALISADE v1.2 provides several important advancements and improvements to the library. Most notably, we provide:
|
||||
|
||||
* The Bajard-Eynard-Hasan-Zucca RNS variant of the BFV scheme is added to the library
|
||||
* The implementation of the Halevi-Polyakov-Shoup RNS variant of the BFV scheme is significantly improved
|
||||
* Large multiplicative depths (up to 100 and higher) for both RNS variants are now supported.
|
||||
* Several low-level optimizations, e.g., in Number Theoretic Transform and NTL multiprecision math backend, are implemented.
|
||||
* Multiple improvements in plaintext encodings.
|
||||
* Software engineering improvements: extended batteries of unit tests, cleaner design of the matrix class, better CryptoContext wrapper, etc.
|
||||
* Fixes for bugs which have been brought to our attention.
|
||||
|
||||
1/29/2018: PALISADE v1.1.1 is released
|
||||
|
||||
PALISADE v1.1.1 includes bug fixes and minor optimizations:
|
||||
|
||||
* Fixes minor bugs in NativeInteger and multiprecision backends (BigInteger)
|
||||
* Deals properly with a low-probability rounding error in BFVrns
|
||||
* Fixes a compilation error on some CentOS systems
|
||||
* Improves the performance of NativeInteger
|
||||
* Fixes a couple of other minor bugs
|
||||
|
||||
12/29/2017: PALISADE v1.1 is released
|
||||
|
||||
PALISADE v1.1 includes the following new capabilities, library enhancements, and optimizations:
|
||||
|
||||
* New efficient homomorphic scheme: BFVrns
|
||||
* Newly supported homomorphic operations for multi-depth computations
|
||||
* Type checking, type safety, and improved error handling
|
||||
* Faster/more capable Gaussian sampling
|
||||
* NTL integration as a new option for the multiprecision arithmetic backend
|
||||
* And more...
|
||||
|
||||
07/15/2017: PALISADE v1.0 is released
|
||||
9
Code/Duality_Technologies/PALISADE/Security.md
Normal file
9
Code/Duality_Technologies/PALISADE/Security.md
Normal file
@ -0,0 +1,9 @@
|
||||
# General Notes on Homomorphic Encryption
|
||||
|
||||
All homomorphic encryption schemes implemented in PALISADE are IND-CPA secure, and hence are expected to be used under the honest-but-curios (a.k.a., semi-honest) model. In this model, the adversary cannot corrupt/tamper with ciphertexts (and perform related active attacks) but can only use the API of PALISADE to perform valid operations.
|
||||
|
||||
# Notes specific to the CKKS scheme
|
||||
|
||||
Li and Micciancio recently showed that the IND-CPA model may not be sufficient for the CKKS scheme in some scenarios because a decryption result can be used to perform a key recovery attack. This attack applies to the setting where decryption results need to be shared between multiple parties, e.g., in the the threshold FHE setting. To mitigate the Li-Micciancio attack, we extended the original CKKS (starting with v1.10.6) to a stronger adversarial model where decryption results may still be shared between multiple parties. By default, PALISADE chooses a configuration where a relatively large number of decryption queries of the same or related ciphertexts can be tolerated. The lower bound for the tolerated number of such decryption queries is N_d = 128 (but in practical computations, N_d is at least 10,000). We consider this default setting sufficient to prevent passive attacks (where a normal homomorphic encryption computation protocol is followed).
|
||||
|
||||
In scenarios where an even stronger adversarial model is needed (uncommon scenarios), the user can increase the number of shared decryptions of the same or related ciphertexts to a higher number by increasing the `CKKS_M_FACTOR` CMake parameter (a compile-level flag). The minimum number of decryption results in this case becomes N_d x (`CKKS_M_FACTOR` + 1) / 2. Please note that increasing `CKKS_M_FACTOR` from the default value of 1 will decrease the precision of CKKS ciphertexts by 0.5 x (log2(`CKKS_M_FACTOR` + 1) - 1) bits. Hence increasing `CKKS_M_FACTOR` is only suggested when a stronger adversarial model is needed.
|
||||
18
Code/Duality_Technologies/PALISADE/Webinars.md
Normal file
18
Code/Duality_Technologies/PALISADE/Webinars.md
Normal file
@ -0,0 +1,18 @@
|
||||
PALISADE Webinars
|
||||
=================
|
||||
|
||||
The PALISADE library has a YouTube channel! Full of rich detailed content on repository, examples, and general homomorphic encryption! Please visit [PALISADE Homomorphic Encryption Library](https://www.youtube.com/channel/UC1qByOsQina1rpZ8AGl5TZw) and subscribe for the latest videos!
|
||||
|
||||
Webinar List
|
||||
------------
|
||||
|
||||
- [PALISADE Webinar #1 - Introducing PALISADE](https://youtu.be/FLGeMd3eiQY)
|
||||
- [PALISADE Webinar #2 A - HE Tutorial Series Part 1: Introduction to Homomorphic Encryption](https://youtu.be/rMDoZdH53ZM)
|
||||
- [PALISADE Webinar #2 B - HE Tutorial Series Part 2: Boolean Arithmetic with Applications](https://youtu.be/aKcf5vd8lLs)
|
||||
- [PALISADE Webinar #3 A - HE Tutorial Series Part 3: Integer Arithmetic](https://youtu.be/1a7yxnLj4PE)
|
||||
- [PALISADE Webinar #3 B - HE Tutorial Series Part 4: Integer Applications](https://youtu.be/7Rpeb1YNSRs)
|
||||
- [PALISADE Webinar #4 - HE Tutorial Series Part 5: Introduction to Multiparty Homomorphic Encryption](https://youtu.be/9Fa6rFUyQ_w)
|
||||
- [PALISADE Webinar #5 - HE Serialization for Applications](https://youtu.be/-2zaJ2C4Guo)
|
||||
- [PALISADE Webinar #6 - HE Tutorial Series Part 6: Introduction to Approximate Homomorphic Encryption](https://youtu.be/_s1B128sqaI)
|
||||
- [PALISADE Webinar #7 A - Secure Large-Scale Genome-Wide Association Studies using Homomorphic Encryption](https://youtu.be/rTmL1Iaoslo)
|
||||
- [PALISADE Webinar #7 B - Best Practices for Building Efficient Homomorphic Encryption Solutions](https://youtu.be/oxJGOhqLd-E)
|
||||
39
Code/Duality_Technologies/PALISADE/benchmark/CMakeLists.txt
Normal file
39
Code/Duality_Technologies/PALISADE/benchmark/CMakeLists.txt
Normal file
@ -0,0 +1,39 @@
|
||||
include_directories( ../src/core/include )
|
||||
include_directories( ../src/core/lib )
|
||||
include_directories( ../src/pke/include )
|
||||
include_directories( ../src/binfhe/include )
|
||||
|
||||
set( REGEX_FLAG -DHAVE_STD_REGEX )
|
||||
|
||||
if ( "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
|
||||
set( WARNING_FLAG "" )
|
||||
else()
|
||||
set( WARNING_FLAG -Wno-unused-but-set-variable )
|
||||
endif()
|
||||
|
||||
if( BUILD_SHARED )
|
||||
set (BMLIBS PUBLIC PALISADEpke PUBLIC PALISADEbinfhe PUBLIC PALISADEcore ${THIRDPARTYLIBS} PUBLIC benchmark ${OpenMP_CXX_FLAGS})
|
||||
endif()
|
||||
|
||||
if( BUILD_STATIC )
|
||||
set (BMLIBS ${BMLIBS} PUBLIC PALISADEpke_static PUBLIC PALISADEbinfhe_static PUBLIC PALISADEcore_static ${THIRDPARTYSTATICLIBS} PUBLIC benchmark ${OpenMP_CXX_FLAGS})
|
||||
endif()
|
||||
|
||||
set (BMAPPS "")
|
||||
file (GLOB BMARK_SRC_FILES CONFIGURE_DEPENDS src/*.cpp)
|
||||
foreach (app ${BMARK_SRC_FILES})
|
||||
get_filename_component ( exe ${app} NAME_WE )
|
||||
add_executable ( ${exe} ${app} )
|
||||
set_property(TARGET ${exe} PROPERTY RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin/benchmark)
|
||||
target_include_directories( ${exe} PUBLIC ../third-party/google-benchmark/include )
|
||||
set_target_properties( ${exe} PROPERTIES COMPILE_FLAGS
|
||||
"${REGEX_FLAG} -DHAVE_STEADY_CLOCK -DNDEBUG ${WARNING_FLAG}" )
|
||||
target_link_libraries ( ${exe} ${BMLIBS} )
|
||||
set (BMAPPS ${BMAPPS} ${exe})
|
||||
endforeach()
|
||||
|
||||
add_custom_target( allbenchmark )
|
||||
add_dependencies( allbenchmark ${BMAPPS} )
|
||||
|
||||
add_custom_command( OUTPUT benchmarkinfocmd COMMAND echo Builds benchmark lib and these apps: ${BMAPPS} )
|
||||
add_custom_target( benchmarkinfo DEPENDS benchmarkinfocmd )
|
||||
7
Code/Duality_Technologies/PALISADE/benchmark/CPPLINT.cfg
Normal file
7
Code/Duality_Technologies/PALISADE/benchmark/CPPLINT.cfg
Normal file
@ -0,0 +1,7 @@
|
||||
|
||||
# Ignore all filters for now
|
||||
filter=-build
|
||||
filter=-legal
|
||||
filter=-readability
|
||||
filter=-runtime
|
||||
filter=-whitespace
|
||||
191
Code/Duality_Technologies/PALISADE/benchmark/src/Encoding.cpp
Normal file
191
Code/Duality_Technologies/PALISADE/benchmark/src/Encoding.cpp
Normal file
@ -0,0 +1,191 @@
|
||||
/*
|
||||
* @author TPOC: contact@palisade-crypto.org
|
||||
*
|
||||
* @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
|
||||
* All rights reserved.
|
||||
* 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#define _USE_MATH_DEFINES
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
bool runOnlyOnce = true;
|
||||
|
||||
#include "palisade.h"
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
|
||||
#include "cryptocontextgen.h"
|
||||
#include "cryptocontexthelper.h"
|
||||
|
||||
#include "encoding/encodings.h"
|
||||
#include "lattice/elemparamfactory.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
void BM_encoding_CoefPacked(benchmark::State &state) {
|
||||
Plaintext plaintext;
|
||||
usint m = 1024;
|
||||
PlaintextModulus ptm = 128;
|
||||
PlaintextModulus half = ptm / 2;
|
||||
|
||||
shared_ptr<ILParams> lp = ElemParamFactory::GenElemParams<ILParams>(m);
|
||||
EncodingParams ep(new EncodingParamsImpl(ptm));
|
||||
|
||||
vector<int64_t> intvec;
|
||||
for (usint ii = 0; ii < m / 2; ii++) intvec.push_back(rand() % half);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
plaintext.reset(new CoefPackedEncoding(lp, ep, intvec));
|
||||
plaintext->Encode();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_encoding_CoefPacked);
|
||||
|
||||
void BM_encoding_PackedIntPlaintext(benchmark::State &state) {
|
||||
Plaintext plaintext;
|
||||
shared_ptr<ILParams> lp;
|
||||
EncodingParams ep;
|
||||
|
||||
std::vector<int64_t> vectorOfInts1 = {1, 2, 3, 4, 5, 6, 7, 8, 0, 0};
|
||||
|
||||
usint m = 22;
|
||||
PlaintextModulus p = 89;
|
||||
BigInteger modulusP(p);
|
||||
BigInteger modulusQ("955263939794561");
|
||||
BigInteger squareRootOfRoot("941018665059848");
|
||||
BigInteger bigmodulus("80899135611688102162227204937217");
|
||||
BigInteger bigroot("77936753846653065954043047918387");
|
||||
|
||||
auto cycloPoly = GetCyclotomicPolynomial<BigVector>(m, modulusQ);
|
||||
ChineseRemainderTransformArb<BigVector>::SetCylotomicPolynomial(cycloPoly,
|
||||
modulusQ);
|
||||
|
||||
lp.reset(new ILParams(m, modulusQ, squareRootOfRoot, bigmodulus, bigroot));
|
||||
ep.reset(new EncodingParamsImpl(p, 8));
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
plaintext.reset(new PackedEncoding(lp, ep, vectorOfInts1));
|
||||
|
||||
plaintext->Encode();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_encoding_PackedIntPlaintext);
|
||||
|
||||
void BM_encoding_PackedIntPlaintext_SetParams(benchmark::State &state) {
|
||||
Plaintext plaintext;
|
||||
shared_ptr<ILParams> lp;
|
||||
EncodingParams ep;
|
||||
|
||||
usint m = 22;
|
||||
PlaintextModulus p = 89;
|
||||
BigInteger modulusP(p);
|
||||
|
||||
std::vector<int64_t> vectorOfInts1 = {1, 2, 3, 4, 5, 6, 7, 8, 0, 0};
|
||||
|
||||
if (state.thread_index == 0) {
|
||||
BigInteger modulusQ("955263939794561");
|
||||
BigInteger squareRootOfRoot("941018665059848");
|
||||
BigInteger bigmodulus("80899135611688102162227204937217");
|
||||
BigInteger bigroot("77936753846653065954043047918387");
|
||||
|
||||
auto cycloPoly = GetCyclotomicPolynomial<BigVector>(m, modulusQ);
|
||||
ChineseRemainderTransformArb<BigVector>::SetCylotomicPolynomial(cycloPoly,
|
||||
modulusQ);
|
||||
|
||||
lp.reset(new ILParams(m, modulusQ, squareRootOfRoot, bigmodulus, bigroot));
|
||||
ep.reset(new EncodingParamsImpl(p, 8));
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
PackedEncoding::SetParams(m, ep);
|
||||
state.PauseTiming();
|
||||
PackedEncoding::Destroy();
|
||||
state.ResumeTiming();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_encoding_PackedIntPlaintext_SetParams);
|
||||
|
||||
void BM_Encoding_String(benchmark::State &state) { // benchmark
|
||||
CryptoContext<Poly> cc;
|
||||
Plaintext plaintext;
|
||||
|
||||
usint m = 1024;
|
||||
PlaintextModulus ptm = 256;
|
||||
|
||||
shared_ptr<ILParams> lp = ElemParamFactory::GenElemParams<ILParams>(m);
|
||||
EncodingParams ep(new EncodingParamsImpl(ptm));
|
||||
|
||||
auto randchar = []() -> char {
|
||||
const char charset[] =
|
||||
"0123456789"
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||||
"abcdefghijklmnopqrstuvwxyz";
|
||||
const size_t max_index = (sizeof(charset) - 1);
|
||||
return charset[rand() % max_index];
|
||||
};
|
||||
|
||||
string fullStr(m / 2, 0);
|
||||
std::generate_n(fullStr.begin(), m / 2, randchar);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
plaintext.reset(new StringEncoding(lp, ep, fullStr));
|
||||
plaintext->Encode();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_Encoding_String);
|
||||
|
||||
void BM_encoding_PackedCKKSPlaintext(benchmark::State &state) {
|
||||
Plaintext plaintext;
|
||||
shared_ptr<ILDCRTParams<BigInteger>> lp;
|
||||
EncodingParams ep;
|
||||
|
||||
std::vector<complex<double>> vectorOfComplex = {
|
||||
{1, 0}, {2, 0}, {3, 0}, {4, 0}, {5, 0},
|
||||
{6, 0}, {7, 0}, {8, 0}, {0, 0}, {0, 0}};
|
||||
|
||||
usint m = 1024;
|
||||
usint numPrimes = 1;
|
||||
uint64_t p = 50;
|
||||
usint relinWin = 0;
|
||||
usint batch = 8;
|
||||
|
||||
auto cc = GenCryptoContextCKKS<DCRTPoly>(m, numPrimes, p, relinWin, batch,
|
||||
MODE::OPTIMIZED, BV, APPROXRESCALE);
|
||||
lp = cc->GetElementParams();
|
||||
ep = cc->GetEncodingParams();
|
||||
auto scalingFactor = cc->GetEncodingParams()->GetPlaintextModulus();
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
plaintext.reset(
|
||||
new CKKSPackedEncoding(lp, ep, vectorOfComplex, 1, 0, scalingFactor));
|
||||
plaintext->Encode();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_encoding_PackedCKKSPlaintext);
|
||||
|
||||
// execute the benchmarks
|
||||
BENCHMARK_MAIN();
|
||||
334
Code/Duality_Technologies/PALISADE/benchmark/src/IntegerMath.cpp
Normal file
334
Code/Duality_Technologies/PALISADE/benchmark/src/IntegerMath.cpp
Normal file
@ -0,0 +1,334 @@
|
||||
/*
|
||||
* @author TPOC: contact@palisade-crypto.org
|
||||
*
|
||||
* @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
|
||||
* All rights reserved.
|
||||
* 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
Description:
|
||||
This code benchmarks functions of the math directory of the PALISADE lattice
|
||||
encryption library.
|
||||
*/
|
||||
#define _USE_MATH_DEFINES
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
#include "palisade.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
#define DO_BENCHMARK_TEMPLATE(X, Y) \
|
||||
BENCHMARK_TEMPLATE(X, Y)->Unit(benchmark::kMicrosecond);
|
||||
|
||||
// four simple benchmarks to test constructing BigInts
|
||||
// typically the code to benchmark is in a 'function' that is then
|
||||
// called within the actual benchmark.
|
||||
|
||||
// test BigInt constants
|
||||
template <typename I>
|
||||
static void make_BigInt_constants(void) { // function
|
||||
I one(1);
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
void BM_BigInt_constants(benchmark::State& state) { // benchmark
|
||||
while (state.KeepRunning()) {
|
||||
make_BigInt_constants<I>();
|
||||
}
|
||||
}
|
||||
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_constants, M2Integer)
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_constants, M4Integer)
|
||||
#ifdef WITH_NTL
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_constants, M6Integer)
|
||||
#endif
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_constants, NativeInteger)
|
||||
|
||||
template <typename I>
|
||||
static void make_BigInt_small_variables(void) { // function
|
||||
I a("10403"), b("103");
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
void BM_BigInt_small_variables(benchmark::State& state) { // benchmark
|
||||
while (state.KeepRunning()) {
|
||||
make_BigInt_small_variables<I>();
|
||||
}
|
||||
}
|
||||
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_small_variables, M2Integer)
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_small_variables, M4Integer)
|
||||
#ifdef WITH_NTL
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_small_variables, M6Integer)
|
||||
#endif
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_small_variables, NativeInteger)
|
||||
|
||||
template <typename I>
|
||||
static void make_BigInt_large_variables(void) { // function
|
||||
I a("18446744073709551616"), b("18446744073709551617");
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
void BM_BigInt_large_variables(benchmark::State& state) { // benchmark
|
||||
while (state.KeepRunning()) {
|
||||
make_BigInt_large_variables<I>();
|
||||
}
|
||||
}
|
||||
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_large_variables, M2Integer)
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_large_variables, M4Integer)
|
||||
#ifdef WITH_NTL
|
||||
DO_BENCHMARK_TEMPLATE(BM_BigInt_large_variables, M6Integer)
|
||||
#endif
|
||||
|
||||
static string smalla("10403"), smallb("103");
|
||||
static string largea("18446744073709551616"), largeb("18446744073709551617");
|
||||
|
||||
// add
|
||||
template <typename I>
|
||||
static void add_BigInt(const I& a, const I& b) { // function
|
||||
__attribute__((unused)) I c = a + b;
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_Add(benchmark::State& state) { // benchmark
|
||||
I a(state.range(0) == 0 ? smalla : largea);
|
||||
I b(state.range(0) == 0 ? smallb : largeb);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
add_BigInt(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Add, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
|
||||
// +=
|
||||
template <typename I>
|
||||
static void addeq_BigInt(I& a, const I& b) { // function
|
||||
a += b;
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_Addeq(benchmark::State& state) { // benchmark
|
||||
I b(state.range(0) == 0 ? smallb : largeb);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
I a(state.range(0) == 0 ? smalla : largea);
|
||||
addeq_BigInt(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Addeq, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
|
||||
// mult
|
||||
template <typename I>
|
||||
static void mult_BigInt(const I& a, const I& b) { // function
|
||||
__attribute__((unused)) I c1 = a * b;
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_Mult(benchmark::State& state) { // benchmark
|
||||
I a(state.range(0) == 0 ? smalla : largea);
|
||||
I b(state.range(0) == 0 ? smallb : largeb);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
mult_BigInt(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Mult, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
|
||||
// *=
|
||||
template <typename I>
|
||||
static void multeq_BigInt(I& a, const I& b) { // function
|
||||
a *= b;
|
||||
}
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_Multeq(benchmark::State& state) { // benchmark
|
||||
I b(state.range(0) == 0 ? smallb : largeb);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
I a(state.range(0) == 0 ? smalla : largea);
|
||||
multeq_BigInt(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Large")
|
||||
->Arg(1);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_Multeq, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond)
|
||||
->ArgName("Small")
|
||||
->Arg(0);
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_ModInverse(benchmark::State& state) { // benchmark
|
||||
while (state.KeepRunning()) {
|
||||
I c = I(3017).ModInverse(I(108));
|
||||
PALISADE_UNUSED(c);
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverse, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverse, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverse, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverse, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
|
||||
template <typename I>
|
||||
static void BM_BigInt_ModInverseEq(benchmark::State& state) { // benchmark
|
||||
while (state.KeepRunning()) {
|
||||
I(3017).ModInverseEq(I(108));
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverseEq, M2Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverseEq, M4Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
#ifdef WITH_NTL
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverseEq, M6Integer)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
#endif
|
||||
BENCHMARK_TEMPLATE(BM_BigInt_ModInverseEq, NativeInteger)
|
||||
->Unit(benchmark::kMicrosecond);
|
||||
|
||||
// execute the benchmarks
|
||||
BENCHMARK_MAIN();
|
||||
545
Code/Duality_Technologies/PALISADE/benchmark/src/Lattice.cpp
Normal file
545
Code/Duality_Technologies/PALISADE/benchmark/src/Lattice.cpp
Normal file
@ -0,0 +1,545 @@
|
||||
/*
|
||||
* @author TPOC: contact@palisade-crypto.org
|
||||
*
|
||||
* @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
|
||||
* All rights reserved.
|
||||
* 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
|
||||
Description:
|
||||
This code benchmarks functions of the src/lib/lattoce directory of the
|
||||
PALISADE lattice encryption library.
|
||||
*/
|
||||
|
||||
#define _USE_MATH_DEFINES
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
#include "palisade.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
#include "vechelper.h"
|
||||
|
||||
#include "lattice/dcrtpoly.cpp"
|
||||
#include "lattice/elemparamfactory.h"
|
||||
#include "lattice/elemparams.cpp"
|
||||
#include "lattice/ildcrtparams.cpp"
|
||||
#include "lattice/ilparams.cpp"
|
||||
#include "lattice/poly.cpp"
|
||||
#include "math/discretegaussiangenerator.cpp"
|
||||
#include "math/discreteuniformgenerator.cpp"
|
||||
#include "math/nbtheory.cpp"
|
||||
#include "math/transfrm.cpp"
|
||||
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
namespace lbcrypto {
|
||||
|
||||
template <typename E>
|
||||
static E makeElement(
|
||||
shared_ptr<lbcrypto::ILParamsImpl<typename E::Integer>> params) {
|
||||
typename E::Vector vec = makeVector<typename E::Vector>(
|
||||
params->GetRingDimension(), params->GetModulus());
|
||||
E elem(params);
|
||||
|
||||
elem.SetValues(vec, elem.GetFormat());
|
||||
return elem;
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
static E makeElement(
|
||||
shared_ptr<lbcrypto::ILDCRTParams<typename E::Integer>> p) {
|
||||
shared_ptr<ILParamsImpl<typename E::Integer>> params(
|
||||
new ILParamsImpl<typename E::Integer>(p->GetCyclotomicOrder(),
|
||||
p->GetModulus(), 1));
|
||||
typename E::Vector vec = makeVector<typename E::Vector>(
|
||||
params->GetRingDimension(), params->GetModulus());
|
||||
|
||||
typename E::PolyLargeType bigE(params);
|
||||
bigE.SetValues(vec, bigE.GetFormat());
|
||||
|
||||
E elem(bigE, p);
|
||||
return elem;
|
||||
}
|
||||
|
||||
static vector<usint> o({16, 1024, 2048, 4096, 8192, 16384, 32768});
|
||||
static const usint DCRTBITS = 28;
|
||||
|
||||
template <typename P>
|
||||
static void GenerateParms(map<usint, shared_ptr<P>> &parmArray) {
|
||||
for (usint v : o) {
|
||||
shared_ptr<P> value;
|
||||
try {
|
||||
value = ElemParamFactory::GenElemParams<P>(v);
|
||||
} catch (...) {
|
||||
break;
|
||||
}
|
||||
parmArray[v] = value;
|
||||
}
|
||||
}
|
||||
|
||||
template <typename P>
|
||||
static void GenerateDCRTParms(map<usint, shared_ptr<P>> &parmArray) {
|
||||
for (usint v : o) {
|
||||
size_t idx = ElemParamFactory::GetNearestIndex(v);
|
||||
M2Integer primeq(ElemParamFactory::DefaultSet[idx].q);
|
||||
|
||||
usint bits = primeq.GetMSB();
|
||||
usint ntowers = bits / DCRTBITS + 1;
|
||||
|
||||
parmArray[v] = ElemParamFactory::GenElemParams<P>(v, 28, ntowers);
|
||||
}
|
||||
}
|
||||
|
||||
template <typename P, typename E>
|
||||
static void GeneratePolys(map<usint, shared_ptr<P>> &parmArray,
|
||||
map<usint, vector<E>> &polyArray) {
|
||||
for (auto &pair : parmArray) {
|
||||
for (int i = 0; i < 2; i++)
|
||||
polyArray[pair.first].push_back(makeElement<E>(parmArray[pair.first]));
|
||||
}
|
||||
}
|
||||
|
||||
} // namespace lbcrypto
|
||||
|
||||
map<usint, shared_ptr<ILNativeParams>> Nativeparms;
|
||||
map<usint, shared_ptr<M2Params>> BE2parms;
|
||||
map<usint, shared_ptr<M2DCRTParams>> BE2dcrtparms;
|
||||
map<usint, shared_ptr<M4Params>> BE4parms;
|
||||
map<usint, shared_ptr<M4DCRTParams>> BE4dcrtparms;
|
||||
#ifdef WITH_NTL
|
||||
map<usint, shared_ptr<M6Params>> BE6parms;
|
||||
map<usint, shared_ptr<M6DCRTParams>> BE6dcrtparms;
|
||||
#endif
|
||||
map<usint, vector<NativePoly>> Nativepolys;
|
||||
map<usint, vector<M2Poly>> BE2polys;
|
||||
map<usint, vector<M2DCRTPoly>> BE2DCRTpolys;
|
||||
map<usint, vector<M4Poly>> BE4polys;
|
||||
map<usint, vector<M4DCRTPoly>> BE4DCRTpolys;
|
||||
#ifdef WITH_NTL
|
||||
map<usint, vector<M6Poly>> BE6polys;
|
||||
map<usint, vector<M6DCRTPoly>> BE6DCRTpolys;
|
||||
#endif
|
||||
|
||||
class Setup {
|
||||
public:
|
||||
Setup() {
|
||||
GenerateParms<ILNativeParams>(Nativeparms);
|
||||
GenerateParms<M2Params>(BE2parms);
|
||||
GenerateDCRTParms<M2DCRTParams>(BE2dcrtparms);
|
||||
GenerateParms<M4Params>(BE4parms);
|
||||
GenerateDCRTParms<M4DCRTParams>(BE4dcrtparms);
|
||||
#ifdef WITH_NTL
|
||||
GenerateParms<M6Params>(BE6parms);
|
||||
GenerateDCRTParms<M6DCRTParams>(BE6dcrtparms);
|
||||
#endif
|
||||
GeneratePolys<ILNativeParams, NativePoly>(Nativeparms, Nativepolys);
|
||||
GeneratePolys<M2Params, M2Poly>(BE2parms, BE2polys);
|
||||
GeneratePolys<M4Params, M4Poly>(BE4parms, BE4polys);
|
||||
#ifdef WITH_NTL
|
||||
GeneratePolys<M6Params, M6Poly>(BE6parms, BE6polys);
|
||||
#endif
|
||||
GeneratePolys<M2DCRTParams, M2DCRTPoly>(BE2dcrtparms, BE2DCRTpolys);
|
||||
GeneratePolys<M4DCRTParams, M4DCRTPoly>(BE4dcrtparms, BE4DCRTpolys);
|
||||
#ifdef WITH_NTL
|
||||
GeneratePolys<M6DCRTParams, M6DCRTPoly>(BE6dcrtparms, BE6DCRTpolys);
|
||||
#endif
|
||||
}
|
||||
|
||||
template <typename P>
|
||||
shared_ptr<P> GetParm(usint o);
|
||||
|
||||
template <typename E>
|
||||
const E &GetPoly(usint o, int p);
|
||||
} TestParameters;
|
||||
|
||||
template <>
|
||||
shared_ptr<ILNativeParams> Setup::GetParm(usint o) {
|
||||
return Nativeparms[o];
|
||||
}
|
||||
|
||||
template <>
|
||||
shared_ptr<M2Params> Setup::GetParm(usint o) {
|
||||
return BE2parms[o];
|
||||
}
|
||||
|
||||
template <>
|
||||
shared_ptr<M2DCRTParams> Setup::GetParm(usint o) {
|
||||
return BE2dcrtparms[o];
|
||||
}
|
||||
|
||||
template <>
|
||||
shared_ptr<M4Params> Setup::GetParm(usint o) {
|
||||
return BE4parms[o];
|
||||
}
|
||||
|
||||
template <>
|
||||
shared_ptr<M4DCRTParams> Setup::GetParm(usint o) {
|
||||
return BE4dcrtparms[o];
|
||||
}
|
||||
|
||||
#ifdef WITH_NTL
|
||||
template <>
|
||||
shared_ptr<M6Params> Setup::GetParm(usint o) {
|
||||
return BE6parms[o];
|
||||
}
|
||||
|
||||
template <>
|
||||
shared_ptr<M6DCRTParams> Setup::GetParm(usint o) {
|
||||
return BE6dcrtparms[o];
|
||||
}
|
||||
#endif
|
||||
|
||||
template <>
|
||||
const NativePoly &Setup::GetPoly(usint o, int p) {
|
||||
return Nativepolys[o][p];
|
||||
}
|
||||
template <>
|
||||
const M2Poly &Setup::GetPoly(usint o, int p) {
|
||||
return BE2polys[o][p];
|
||||
}
|
||||
template <>
|
||||
const M4Poly &Setup::GetPoly(usint o, int p) {
|
||||
return BE4polys[o][p];
|
||||
}
|
||||
#ifdef WITH_NTL
|
||||
template <>
|
||||
const M6Poly &Setup::GetPoly(usint o, int p) {
|
||||
return BE6polys[o][p];
|
||||
}
|
||||
#endif
|
||||
template <>
|
||||
const M2DCRTPoly &Setup::GetPoly(usint o, int p) {
|
||||
return BE2DCRTpolys[o][p];
|
||||
}
|
||||
template <>
|
||||
const M4DCRTPoly &Setup::GetPoly(usint o, int p) {
|
||||
return BE4DCRTpolys[o][p];
|
||||
}
|
||||
#ifdef WITH_NTL
|
||||
template <>
|
||||
const M6DCRTPoly &Setup::GetPoly(usint o, int p) {
|
||||
return BE6DCRTpolys[o][p];
|
||||
}
|
||||
#endif
|
||||
|
||||
#define DO_NATIVEPOLY_BENCHMARK(X) \
|
||||
BENCHMARK_TEMPLATE(X, NativePoly) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_16") \
|
||||
->Arg(16); \
|
||||
BENCHMARK_TEMPLATE(X, NativePoly) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_1024") \
|
||||
->Arg(1024); \
|
||||
BENCHMARK_TEMPLATE(X, NativePoly) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_2048") \
|
||||
->Arg(2048);
|
||||
|
||||
#define DO_POLY_BENCHMARK_TEMPLATE(X, Y) \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_16") \
|
||||
->Arg(16); \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_1024") \
|
||||
->Arg(1024); \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_2048") \
|
||||
->Arg(2048); \
|
||||
/*BENCHMARK_TEMPLATE(X,Y)->Unit(benchmark::kMicrosecond)->ArgName("parm_4096")->Arg(4096);*/ \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_8192") \
|
||||
->Arg(8192); \
|
||||
/*BENCHMARK_TEMPLATE(X,Y)->Unit(benchmark::kMicrosecond)->ArgName("parm_16384")->Arg(16384);*/ \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_32768") \
|
||||
->Arg(32768);
|
||||
|
||||
// benchmark just a declaration of an empty
|
||||
template <typename E>
|
||||
static void make_LATTICE_empty(shared_ptr<typename E::Params> params) {
|
||||
E v1(params);
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
void BM_LATTICE_empty(benchmark::State &state) { // benchmark
|
||||
if (state.thread_index == 0) {
|
||||
;
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
make_LATTICE_empty<E>(
|
||||
TestParameters.GetParm<typename E::Params>(state.range(0)));
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_LATTICE_empty)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_empty, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
template <typename E>
|
||||
static void make_LATTICE_vector(
|
||||
benchmark::State &state,
|
||||
shared_ptr<typename E::Params> params) { // function
|
||||
E elem = makeElement<E>(params);
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
void BM_LATTICE_makevector(benchmark::State &state) { // benchmark
|
||||
if (state.thread_index == 0) {
|
||||
;
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
make_LATTICE_vector<E>(
|
||||
state, TestParameters.GetParm<typename E::Params>(state.range(0)));
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_LATTICE_makevector)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_LATTICE_makevector, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
// plus
|
||||
template <typename E>
|
||||
static void add_LATTICE(const E &a, const E &b) {
|
||||
E c1;
|
||||
benchmark::DoNotOptimize(c1 = a + b);
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
static void BM_add_LATTICE(benchmark::State &state) { // benchmark
|
||||
E a;
|
||||
E b;
|
||||
|
||||
if (state.thread_index == 0) {
|
||||
a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
b = TestParameters.GetPoly<E>(state.range(0), 1);
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
add_LATTICE<E>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_add_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_add_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
// plus=
|
||||
template <typename E>
|
||||
static void addeq_LATTICE(E &a, const E &b) {
|
||||
benchmark::DoNotOptimize(a += b);
|
||||
}
|
||||
|
||||
template <typename E>
|
||||
static void BM_addeq_LATTICE(benchmark::State &state) { // benchmark
|
||||
E a;
|
||||
E b;
|
||||
|
||||
if (state.thread_index == 0) {
|
||||
b = TestParameters.GetPoly<E>(state.range(0), 1);
|
||||
a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
// a = TestParameters.GetPoly<E>(state.range(0),0);
|
||||
addeq_LATTICE<E>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_addeq_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_addeq_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
template <class E>
|
||||
static void mult_LATTICE(const E &a, const E &b) { // function
|
||||
|
||||
E c1;
|
||||
benchmark::DoNotOptimize(c1 = a * b);
|
||||
}
|
||||
|
||||
template <class E>
|
||||
static void BM_mult_LATTICE(benchmark::State &state) {
|
||||
E a, b;
|
||||
|
||||
if (state.thread_index == 0) {
|
||||
a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
b = TestParameters.GetPoly<E>(state.range(0), 1);
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
mult_LATTICE<E>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_mult_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_mult_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
template <class E>
|
||||
static void multeq_LATTICE(E &a, const E &b) { // function
|
||||
|
||||
benchmark::DoNotOptimize(a *= b);
|
||||
}
|
||||
|
||||
template <class E>
|
||||
static void BM_multeq_LATTICE(benchmark::State &state) { // benchmark
|
||||
E a, b;
|
||||
|
||||
if (state.thread_index == 0) {
|
||||
b = TestParameters.GetPoly<E>(state.range(0), 1);
|
||||
a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
// a = TestParameters.GetPoly<E>(state.range(0),0);
|
||||
multeq_LATTICE<E>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_multeq_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_multeq_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
template <class E>
|
||||
static void switchformat_LATTICE(benchmark::State &state,
|
||||
shared_ptr<typename E::Params> params) {
|
||||
E a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
a.SwitchFormat();
|
||||
}
|
||||
|
||||
template <class E>
|
||||
static void BM_switchformat_LATTICE(benchmark::State &state) { // benchmark
|
||||
if (state.thread_index == 0) {
|
||||
;
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
switchformat_LATTICE<E>(
|
||||
state, TestParameters.GetParm<typename E::Params>(state.range(0)));
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_switchformat_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_switchformat_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
template <class E>
|
||||
static void doubleswitchformat_LATTICE(benchmark::State &state,
|
||||
shared_ptr<typename E::Params> params) {
|
||||
E a = TestParameters.GetPoly<E>(state.range(0), 0);
|
||||
|
||||
a.SwitchFormat();
|
||||
a.SwitchFormat();
|
||||
}
|
||||
|
||||
template <class E>
|
||||
static void BM_doubleswitchformat_LATTICE(
|
||||
benchmark::State &state) { // benchmark
|
||||
if (state.thread_index == 0) {
|
||||
;
|
||||
}
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
doubleswitchformat_LATTICE<E>(
|
||||
state, TestParameters.GetParm<typename E::Params>(state.range(0)));
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEPOLY_BENCHMARK(BM_doubleswitchformat_LATTICE)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M2Poly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M4Poly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M6Poly)
|
||||
#endif
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M2DCRTPoly)
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M4DCRTPoly)
|
||||
#ifdef WITH_NTL
|
||||
DO_POLY_BENCHMARK_TEMPLATE(BM_doubleswitchformat_LATTICE, M6DCRTPoly)
|
||||
#endif
|
||||
|
||||
// execute the benchmarks
|
||||
BENCHMARK_MAIN();
|
||||
403
Code/Duality_Technologies/PALISADE/benchmark/src/NbTheory.cpp
Normal file
403
Code/Duality_Technologies/PALISADE/benchmark/src/NbTheory.cpp
Normal file
@ -0,0 +1,403 @@
|
||||
/*
|
||||
* Description:
|
||||
* This code benchmarks functions of the number theory directory of the
|
||||
* PALISADE lattice encryption library.
|
||||
* @author TPOC: contact@palisade-crypto.org
|
||||
*
|
||||
* @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
|
||||
* All rights reserved.
|
||||
* 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
|
||||
#define _USE_MATH_DEFINES
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "palisade.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
//==================================
|
||||
// GCD benchmarks
|
||||
|
||||
// this benchmark returns a reference to a BBI which can be used for output
|
||||
static BigInteger GCD_equals_small_numbers(void) { // function
|
||||
BigInteger a("10403"), b("103");
|
||||
BigInteger c(lbcrypto::GreatestCommonDivisor(a, b));
|
||||
return (c);
|
||||
}
|
||||
|
||||
// this benchmark sets the output label with a result from the function
|
||||
static void BM_GCD1(benchmark::State &state) { // benchmark
|
||||
int out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
benchmark::DoNotOptimize(GCD_equals_small_numbers());
|
||||
}
|
||||
// Prevent compiler optimizations (note I haven't seen the complier optimize
|
||||
// code out if we leave this out... )
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str()); // label attached to output
|
||||
}
|
||||
|
||||
BENCHMARK(BM_GCD1); // register benchmark
|
||||
|
||||
// this benchmark returns an int. In some cases the return BBI value
|
||||
// cannot be converted to an int (too big) so you need to return a
|
||||
// reference to the BBI instead. this time we can use an int.
|
||||
static int GCD_equals_powers_of_two_numbers(void) {
|
||||
BigInteger a("1048576"), b("4096");
|
||||
BigInteger c(lbcrypto::GreatestCommonDivisor(a, b));
|
||||
return (c.ConvertToInt());
|
||||
}
|
||||
|
||||
static void BM_GCD2(benchmark::State &state) { // benchmark
|
||||
|
||||
int out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
out = GCD_equals_powers_of_two_numbers();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_GCD2); // register benchmark
|
||||
|
||||
//===================================================
|
||||
// the following benchmark MillerRabinPrimalityTest for various inputs
|
||||
//
|
||||
// returns boolean
|
||||
static bool MRP_is_prime_small_prime(void) { // function
|
||||
BigInteger prime("24469");
|
||||
return (lbcrypto::MillerRabinPrimalityTest(prime));
|
||||
}
|
||||
|
||||
static void BM_MRP1(benchmark::State &state) { // benchmark
|
||||
|
||||
int out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
out = MRP_is_prime_small_prime();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_MRP1); // register benchmark
|
||||
|
||||
//
|
||||
static bool MRP_is_prime_big_prime(void) { // function
|
||||
BigInteger prime("952229140957");
|
||||
return (lbcrypto::MillerRabinPrimalityTest(prime));
|
||||
}
|
||||
|
||||
static void BM_MRP2(benchmark::State &state) { // benchmark
|
||||
|
||||
bool out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
out = MRP_is_prime_big_prime();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_MRP2); // register benchmark
|
||||
|
||||
//
|
||||
static bool MRP_is_not_prime_small_composite_number(void) { // function
|
||||
BigInteger isNotPrime("10403");
|
||||
return (lbcrypto::MillerRabinPrimalityTest(isNotPrime));
|
||||
}
|
||||
|
||||
static void BM_MRP3(benchmark::State &state) { // benchmark
|
||||
|
||||
bool out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
out = MRP_is_not_prime_small_composite_number();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_MRP3); // register benchmark
|
||||
|
||||
//
|
||||
static bool MRP_is_not_prime_big_composite_number(void) { // function
|
||||
BigInteger isNotPrime("952229140959");
|
||||
return (lbcrypto::MillerRabinPrimalityTest(isNotPrime));
|
||||
}
|
||||
|
||||
static void BM_MRP4(benchmark::State &state) { // benchmark
|
||||
|
||||
bool out = 0;
|
||||
while (state.KeepRunning()) {
|
||||
out = MRP_is_not_prime_big_composite_number();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_MRP4); // register benchmark
|
||||
|
||||
//========================================
|
||||
|
||||
// the following does not return anything..
|
||||
static void factorize_returns_factors(void) {
|
||||
BigInteger comp("53093040");
|
||||
std::set<BigInteger> factors;
|
||||
lbcrypto::PrimeFactorize(comp, factors);
|
||||
}
|
||||
|
||||
static void BM_FACT1(benchmark::State &state) {
|
||||
while (state.KeepRunning()) {
|
||||
// note you cannot use benchmark::DoNotOptimize() here because
|
||||
// factorize_returns_factors() is a void, it must return a value
|
||||
factorize_returns_factors();
|
||||
}
|
||||
}
|
||||
|
||||
BENCHMARK(BM_FACT1); // register benchmark
|
||||
|
||||
//======================================
|
||||
// Prime Modulus tests
|
||||
//
|
||||
static BigInteger PM_foundPrimeModulus(void) {
|
||||
const usint m = 2048;
|
||||
const usint nBits = 30;
|
||||
|
||||
return lbcrypto::FirstPrime<BigInteger>(nBits, m);
|
||||
}
|
||||
|
||||
static void BM_PM1(benchmark::State &state) { // benchmark
|
||||
BigInteger out;
|
||||
while (state.KeepRunning()) {
|
||||
out = PM_foundPrimeModulus();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out.ToString();
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_PM1); // register benchmark
|
||||
|
||||
#if 0 // this benchmark has not been tested
|
||||
|
||||
|
||||
//note this returns a refrence to BBI
|
||||
static BigInteger& PM_returns_higher_bit_length(void){
|
||||
usint m=4096;
|
||||
usint nBits=49;
|
||||
|
||||
BigInteger primeModulus = lbcrypto::FirstPrime<BigInteger>(nBits, m);
|
||||
return (primeModulus);
|
||||
}
|
||||
|
||||
// saving the reference to BBI for output adds some copy overhead
|
||||
static void BM_PM2(benchmark::State& state) {
|
||||
|
||||
BigInteger out;
|
||||
while (state.KeepRunning()) {
|
||||
out = PM_returns_higher_bit_length();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out.ToString();
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_PM2); // register benchmark
|
||||
#endif
|
||||
|
||||
// Note this benchmark returns two BBIs so we return a string and suffer
|
||||
// some overhead
|
||||
static string PROU_equals_m_not_equals_mbytwo(void) {
|
||||
usint m = 4096;
|
||||
usint nBits = 33;
|
||||
|
||||
BigInteger primeModulus = lbcrypto::FirstPrime<BigInteger>(nBits, m);
|
||||
BigInteger primitiveRootOfUnity =
|
||||
lbcrypto::RootOfUnity<BigInteger>(m, primeModulus);
|
||||
|
||||
BigInteger M(std::to_string(m)), MbyTwo(M.DividedBy(2));
|
||||
|
||||
BigInteger wpowerm = primitiveRootOfUnity.ModExp(M, primeModulus);
|
||||
BigInteger wpowermbytwo = primitiveRootOfUnity.ModExp(MbyTwo, primeModulus);
|
||||
return (wpowerm.ToString() + " " + wpowermbytwo.ToString());
|
||||
}
|
||||
|
||||
static void BM_PROU1(benchmark::State &state) {
|
||||
string out;
|
||||
while (state.KeepRunning()) {
|
||||
out = PROU_equals_m_not_equals_mbytwo();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
BENCHMARK(BM_PROU1); // register benchmark
|
||||
|
||||
#if 0 // this takes a long time to run so comment out for quick check
|
||||
//similarly this outputs 3 values with a string
|
||||
static string PROU_equals_m_not_equals_mbytwo_mbyfour_single_input(void){
|
||||
|
||||
const usint n=2048;
|
||||
const usint m=2*n;
|
||||
const usint nBits=43;
|
||||
const int ITERATIONS = m*2;
|
||||
|
||||
BigInteger M(std::to_string(m)),
|
||||
MbyTwo(M.DividedBy(BigInteger::TWO)),
|
||||
MbyFour(MbyTwo.DividedBy(BigInteger::TWO));
|
||||
|
||||
BigInteger primeModulus = lbcrypto::FirstPrime<BigInteger>(nBits, m);
|
||||
|
||||
BigInteger wpowerm("0");
|
||||
BigInteger wpowermbytwo("0");
|
||||
BigInteger wpowermbyfour("0");
|
||||
|
||||
for(int i=0; i<ITERATIONS; i++) {
|
||||
BigInteger primitiveRootOfUnity = lbcrypto::RootOfUnity<BigInteger>(m, primeModulus);
|
||||
|
||||
wpowerm = primitiveRootOfUnity.ModExp(M, primeModulus);
|
||||
wpowermbytwo = primitiveRootOfUnity.ModExp(MbyTwo, primeModulus);
|
||||
wpowermbyfour = primitiveRootOfUnity.ModExp(MbyFour, primeModulus);
|
||||
}
|
||||
return(wpowerm.ToString() + " " +
|
||||
wpowermbytwo.ToString() + " " +
|
||||
wpowermbyfour.ToString());
|
||||
}
|
||||
|
||||
|
||||
static void BM_PROU2(benchmark::State& state) {
|
||||
|
||||
string out;
|
||||
while (state.KeepRunning()) {
|
||||
out = PROU_equals_m_not_equals_mbytwo_mbyfour_single_input();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_PROU2);
|
||||
#endif
|
||||
|
||||
// similarly this outputs 3 values with a string
|
||||
static string PROU_equals_m_not_equals_mbytwo_mbyfour_multiple_inputs(void) {
|
||||
usint nqBitsArray[] = {
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
20,
|
||||
1024,
|
||||
30,
|
||||
2048,
|
||||
31,
|
||||
2048,
|
||||
33,
|
||||
2048,
|
||||
40,
|
||||
2048,
|
||||
41
|
||||
// const usint BIT_LENGTH = 200 and const usint FRAGMENTATION_FACTOR = 27
|
||||
// ,2048, 51
|
||||
,
|
||||
4096,
|
||||
32,
|
||||
4096,
|
||||
43
|
||||
// ,4096, 53
|
||||
,
|
||||
8192,
|
||||
33,
|
||||
8192,
|
||||
44
|
||||
// ,8192, 55
|
||||
,
|
||||
16384,
|
||||
34,
|
||||
16384,
|
||||
46
|
||||
// ,16384, 57
|
||||
,
|
||||
32768,
|
||||
35,
|
||||
32768,
|
||||
47
|
||||
// ,32768, 59
|
||||
};
|
||||
int length = sizeof(nqBitsArray) / sizeof(nqBitsArray[0]);
|
||||
|
||||
usint n, qBits, m;
|
||||
BigInteger wpowerm("0");
|
||||
BigInteger wpowermbytwo("0");
|
||||
BigInteger wpowermbyfour("0");
|
||||
|
||||
for (int i = 2; i < length; i += 2) {
|
||||
n = nqBitsArray[i];
|
||||
qBits = nqBitsArray[i + 1];
|
||||
m = 2 * n;
|
||||
|
||||
BigInteger M(std::to_string(m)), MbyTwo(M.DividedBy(2)),
|
||||
MbyFour(MbyTwo.DividedBy(2));
|
||||
|
||||
BigInteger primeModulus = lbcrypto::FirstPrime<BigInteger>(qBits, m);
|
||||
BigInteger primitiveRootOfUnity(
|
||||
lbcrypto::RootOfUnity<BigInteger>(m, primeModulus));
|
||||
wpowerm = primitiveRootOfUnity.ModExp(M, primeModulus);
|
||||
wpowermbytwo = primitiveRootOfUnity.ModExp(MbyTwo, primeModulus);
|
||||
wpowermbyfour = primitiveRootOfUnity.ModExp(MbyFour, primeModulus);
|
||||
}
|
||||
return (wpowerm.ToString() + " " + wpowermbytwo.ToString() + " " +
|
||||
wpowermbyfour.ToString());
|
||||
}
|
||||
|
||||
static void BM_PROU3(benchmark::State &state) { // benchmark
|
||||
|
||||
string out;
|
||||
while (state.KeepRunning()) {
|
||||
out = PROU_equals_m_not_equals_mbytwo_mbyfour_multiple_inputs();
|
||||
}
|
||||
// Prevent compiler optimizations
|
||||
std::stringstream ss;
|
||||
ss << out;
|
||||
state.SetLabel(ss.str().c_str());
|
||||
}
|
||||
|
||||
BENCHMARK(BM_PROU3); // register benchmark
|
||||
|
||||
// execute the benchmarks
|
||||
BENCHMARK_MAIN();
|
||||
148
Code/Duality_Technologies/PALISADE/benchmark/src/README.md
Normal file
148
Code/Duality_Technologies/PALISADE/benchmark/src/README.md
Normal file
@ -0,0 +1,148 @@
|
||||
# Benchmarking
|
||||
|
||||
Palisade uses the [Google microbenchmark support library](https://github.com/google/benchmark#running-benchmarks) to measure performance. Performance testing code can be found in `/benchmark/src`. After building, binaries are written to `/your_build_folder/bin/benchmark`. To build only tests and their dependencies, use the following command in the build folder:
|
||||
|
||||
```
|
||||
make allbenchmark
|
||||
```
|
||||
|
||||
To run the benchmark `benchmark-to-run` from the build folder for linux or macOS, run:
|
||||
|
||||
```
|
||||
./bin/benchmark/benchmark-to-run
|
||||
```
|
||||
|
||||
For Windows run:
|
||||
|
||||
```
|
||||
bin/benchmark/benchmark-to-run.exe
|
||||
```
|
||||
|
||||
By default each benchmark is run once and that single result is reported. However benchmarks are often noisy and a single result may not be representative of the overall behavior. For this reason it's possible to repeatedly rerun the benchmark.
|
||||
|
||||
The number of runs of each benchmark is specified globally by the `--benchmark_repetitions` command-line flag or on a per benchmark basis by calling Repetitions on the registered benchmark object. When a benchmark is run more than once, the mean, median and standard deviation of the runs are reported.
|
||||
|
||||
Additionally the `--benchmark_report_aggregates_only={true|false}`, `--benchmark_display_aggregates_only={true|false}` flags can be used to change how repeated tests are reported. By default the result of each repeated run is reported. When the report aggregates only option is true, only the aggregates (i.e. mean, median and standard deviation, maybe complexity measurements if they were requested) of the runs are reported, to both reporters - standard output (console), and the file. However, when only the display aggregates only option is true, only the aggregates are displayed in the standard output, while the file output still contains everything.
|
||||
|
||||
OMP can also affect the benchmarking time. In order to reduce noise, it is advisable to set the number of threads not higher than the number of physical cores (as hyperthreading introduces a lot of variability).
|
||||
|
||||
```
|
||||
export OMP_NUM_THREADS=number_of_cores
|
||||
```
|
||||
|
||||
In order to remove the noise related to multithreading, set the number of threads to 1
|
||||
|
||||
```
|
||||
export OMP_NUM_THREADS=1
|
||||
```
|
||||
|
||||
## lib-benchmark
|
||||
|
||||
[lib-benchmark](lib-benchmark.cpp) is the main PALISADE library benchmark that contains performance tests for standard operations in the following schemes: BFVrns, CKKS, BGVrns. It also contains several performance tests for NTT and INTT transformations.
|
||||
|
||||
An example output after running `lib-benchmark` is as follows:
|
||||
|
||||
```
|
||||
-------------------------------------------------------------------
|
||||
Benchmark Time CPU Iterations
|
||||
-------------------------------------------------------------------
|
||||
NTTTransform1024 10.1 us 10.1 us 69178
|
||||
INTTTransform1024 10.6 us 10.6 us 66271
|
||||
NTTTransform4096 47.6 us 47.6 us 14695
|
||||
INTTTransform4096 49.3 us 49.3 us 14199
|
||||
NTTTransformInPlace1024 9.51 us 9.51 us 73678
|
||||
INTTTransformInPlace1024 10.4 us 10.4 us 67144
|
||||
NTTTransformInPlace4096 44.9 us 44.9 us 15595
|
||||
INTTTransformInPlace4096 48.3 us 48.3 us 14501
|
||||
BFVrns_KeyGen 2349 us 2349 us 298
|
||||
BFVrns_MultKeyGen 3807 us 3807 us 183
|
||||
BFVrns_EvalAtIndexKeyGen 3909 us 3909 us 179
|
||||
BFVrns_Encryption 2258 us 2258 us 310
|
||||
BFVrns_Decryption 539 us 539 us 1300
|
||||
BFVrns_Add 33.9 us 33.9 us 20603
|
||||
BFVrns_AddInPlace 24.0 us 24.0 us 29269
|
||||
BFVrns_MultNoRelin 7399 us 7398 us 95
|
||||
BFVrns_MultRelin 8593 us 8592 us 82
|
||||
BFVrns_EvalAtIndex 1035 us 1034 us 674
|
||||
CKKS_KeyGen 2320 us 2320 us 302
|
||||
CKKS_MultKeyGen 5931 us 5931 us 117
|
||||
CKKS_EvalAtIndexKeyGen 5846 us 5845 us 118
|
||||
CKKS_Encryption 2002 us 2002 us 349
|
||||
CKKS_Decryption 922 us 922 us 759
|
||||
CKKS_Add 35.2 us 35.2 us 19807
|
||||
CKKS_AddInPlace 23.8 us 23.8 us 29181
|
||||
CKKS_MultNoRelin 214 us 214 us 3254
|
||||
CKKS_MultRelin 3160 us 3160 us 222
|
||||
CKKS_Relin 3021 us 3021 us 232
|
||||
CKKS_RelinInPlace 2958 us 2958 us 236
|
||||
CKKS_Rescale 546 us 546 us 1287
|
||||
CKKS_RescaleInPlace 534 us 534 us 1308
|
||||
CKKS_EvalAtIndex 2758 us 2758 us 252
|
||||
BGVrns_KeyGen 2329 us 2329 us 300
|
||||
BGVrns_MultKeyGen 5926 us 5925 us 118
|
||||
BGVrns_EvalAtIndexKeyGen 5987 us 5987 us 117
|
||||
BGVrns_Encryption 2252 us 2252 us 311
|
||||
BGVrns_Decryption 398 us 398 us 1754
|
||||
BGVrns_Add 44.6 us 44.6 us 15682
|
||||
BGVrns_AddInPlace 35.9 us 35.9 us 19671
|
||||
BGVrns_MultNoRelin 208 us 208 us 3356
|
||||
BGVrns_MultRelin 3205 us 3205 us 218
|
||||
BGVrns_Relin 3091 us 3091 us 227
|
||||
BGVrns_RelinInPlace 3029 us 3029 us 231
|
||||
BGVrns_ModSwitch 549 us 549 us 1275
|
||||
BGVrns_ModSwitchInPlace 539 us 539 us 1298
|
||||
BGVrns_EvalAtIndex 2806 us 2805 us 249
|
||||
```
|
||||
|
||||
## poly-benchmark
|
||||
|
||||
[poly-1k](poly-benchmark-1k.cpp), [poly-4k](poly-benchmark-4k.cpp), [poly-16k](poly-benchmark-16k.cpp), [poly-64k](poly-test-64k.cpp)
|
||||
contains performance tests for primitive polynomial operations with ring sizes 1k, 4k, 16k, 64k, respectively.
|
||||
|
||||
The following operations are used to evaluate the performance: addition, Hadamard (component-wise) multiplication, NTT and INTT. These operations (especially NTT and iNTT) are the main bottleneck operations for all lattice cryptographic capabilities.
|
||||
|
||||
All operations are performed for NativePoly and DCRTPoly with settings for 1, 2, 4 and 8 towers (`tower` is the number of residues in the RNS representation of each large integer).
|
||||
|
||||
An example output after running `poly-benchmark-xk` is as follows:
|
||||
|
||||
```
|
||||
-------------------------------------------------------------
|
||||
Benchmark Time CPU Iterations
|
||||
-------------------------------------------------------------
|
||||
Native_add 0.936 us 0.936 us 748048
|
||||
DCRT_add/towers:1 1.16 us 1.16 us 602138
|
||||
DCRT_add/towers:2 2.25 us 2.25 us 311691
|
||||
DCRT_add/towers:4 4.30 us 4.30 us 162618
|
||||
DCRT_add/towers:8 8.77 us 8.77 us 79828
|
||||
Native_mul 2.94 us 2.94 us 237968
|
||||
DCRT_mul/towers:1 3.16 us 3.16 us 221648
|
||||
DCRT_mul/towers:2 6.22 us 6.22 us 112086
|
||||
DCRT_mul/towers:4 12.3 us 12.3 us 57139
|
||||
DCRT_mul/towers:8 24.7 us 24.7 us 28305
|
||||
Native_ntt 9.61 us 9.61 us 72903
|
||||
DCRT_ntt/towers:1 9.80 us 9.80 us 71486
|
||||
DCRT_ntt/towers:2 19.5 us 19.5 us 35900
|
||||
DCRT_ntt/towers:4 38.8 us 38.8 us 18029
|
||||
DCRT_ntt/towers:8 77.8 us 77.8 us 9001
|
||||
Native_intt 10.5 us 10.5 us 66770
|
||||
DCRT_intt/towers:1 10.7 us 10.7 us 65778
|
||||
DCRT_intt/towers:2 21.3 us 21.3 us 32912
|
||||
DCRT_intt/towers:4 42.3 us 42.3 us 16532
|
||||
DCRT_intt/towers:8 84.9 us 84.9 us 8242
|
||||
```
|
||||
|
||||
## other
|
||||
|
||||
There are several other benchmarking tests:
|
||||
|
||||
* [basic_test](basic_test.cpp) - trivial benchmarking
|
||||
* [binfhe-ap](binfhe-ap.cpp) - boolean functions performance tests for **FHEW** scheme with AP bootstrapping technique. Please see "Bootstrapping in FHEW-like Cryptosystems" for details on both bootstrapping techniques
|
||||
* [binfhe-ginx](binfhe-ginx.cpp) - boolean functions performance tests for **FHEW** scheme with GINX bootstrapping technique. Please see "Bootstrapping in FHEW-like Cryptosystems" for details on both bootstrapping techniques
|
||||
* [compare-bfvrns-vs-bfvrnsB](compare-bfvrns-vs-bfvrnsB.cpp) - performance comparison between **BFVrns** and **BFVrnsB** schemes for similar parameter sets
|
||||
* [compare-bfvrns-vs-bgvrns](compare-bfvrns-vs-bgvrns.cpp) - performance comparison between **BFVrns** and **BGVrns** schemes for similar parameter sets
|
||||
* [Encoding](Encoding.cpp) - performance tests for different encoding techniques
|
||||
* [IntegerMath](IntegerMath.cpp) - performance tests for the big integer operations
|
||||
* [Lattice](Lattice.cpp) - performance tests for the Lattice operations.
|
||||
* [NbTheory](NbTheory.cpp) - performance tests of number theory functions
|
||||
* [Serialization](serialize-ckks.cpp) - performance tests of CKKS serialization
|
||||
* [VectorMath](VectorMath.cpp) - performance tests for the big vector operations
|
||||
197
Code/Duality_Technologies/PALISADE/benchmark/src/VectorMath.cpp
Normal file
197
Code/Duality_Technologies/PALISADE/benchmark/src/VectorMath.cpp
Normal file
@ -0,0 +1,197 @@
|
||||
/*
|
||||
* @author TPOC: contact@palisade-crypto.org
|
||||
*
|
||||
* @copyright Copyright (c) 2019, New Jersey Institute of Technology (NJIT)
|
||||
* All rights reserved.
|
||||
* 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 COPYRIGHT HOLDERS AND CONTRIBUTORS "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 COPYRIGHT HOLDER OR CONTRIBUTORS 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.
|
||||
*
|
||||
*/
|
||||
/*
|
||||
This code benchmarks functions of the math directory of the PALISADE lattice
|
||||
encryption library.
|
||||
*/
|
||||
#define _USE_MATH_DEFINES
|
||||
#include "benchmark/benchmark.h"
|
||||
|
||||
#include "palisade.h"
|
||||
|
||||
#include <iostream>
|
||||
|
||||
#include "vechelper.h"
|
||||
|
||||
#include "lattice/dcrtpoly.cpp"
|
||||
#include "lattice/elemparamfactory.h"
|
||||
#include "lattice/elemparams.cpp"
|
||||
#include "lattice/ildcrtparams.cpp"
|
||||
#include "lattice/ilparams.cpp"
|
||||
#include "lattice/poly.cpp"
|
||||
#include "math/discretegaussiangenerator.cpp"
|
||||
#include "math/discreteuniformgenerator.cpp"
|
||||
#include "math/nbtheory.cpp"
|
||||
#include "math/transfrm.cpp"
|
||||
|
||||
using namespace std;
|
||||
using namespace lbcrypto;
|
||||
|
||||
#define DO_NATIVEVECTOR_BENCHMARK(X) \
|
||||
BENCHMARK_TEMPLATE(X, NativeVector) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_16") \
|
||||
->Arg(16); \
|
||||
BENCHMARK_TEMPLATE(X, NativeVector) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_1024") \
|
||||
->Arg(1024); \
|
||||
BENCHMARK_TEMPLATE(X, NativeVector) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_2048") \
|
||||
->Arg(2048);
|
||||
|
||||
#define DO_VECTOR_BENCHMARK_TEMPLATE(X, Y) \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_16") \
|
||||
->Arg(16); \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_1024") \
|
||||
->Arg(1024); \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_2048") \
|
||||
->Arg(2048); \
|
||||
/*BENCHMARK_TEMPLATE(X,Y)->Unit(benchmark::kMicrosecond)->ArgName("parm_4096")->Arg(4096);*/ \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_8192") \
|
||||
->Arg(8192); \
|
||||
/*BENCHMARK_TEMPLATE(X,Y)->Unit(benchmark::kMicrosecond)->ArgName("parm_16384")->Arg(16384);*/ \
|
||||
BENCHMARK_TEMPLATE(X, Y) \
|
||||
->Unit(benchmark::kMicrosecond) \
|
||||
->ArgName("parm_32768") \
|
||||
->Arg(32768);
|
||||
|
||||
// add
|
||||
template <typename V>
|
||||
static void add_BigVec(const V &a, const V &b) {
|
||||
V c = a + b;
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
static void BM_BigVec_Add(benchmark::State &state) { // benchmark
|
||||
auto p = state.range(0);
|
||||
size_t idx = ElemParamFactory::GetNearestIndex(p);
|
||||
typename V::Integer q(ElemParamFactory::DefaultSet[idx].q);
|
||||
V a = makeVector<V>(p, q);
|
||||
V b = makeVector<V>(p, q);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
add_BigVec<V>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEVECTOR_BENCHMARK(BM_BigVec_Add)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Add, M2Vector)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Add, M4Vector)
|
||||
#ifdef WITH_NTL
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Add, M6Vector)
|
||||
#endif
|
||||
|
||||
// +=
|
||||
template <typename V>
|
||||
static void addeq_BigVec(V &a, const V &b) {
|
||||
a += b;
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
static void BM_BigVec_Addeq(benchmark::State &state) { // benchmark
|
||||
auto p = state.range(0);
|
||||
size_t idx = ElemParamFactory::GetNearestIndex(p);
|
||||
typename V::Integer q(ElemParamFactory::DefaultSet[idx].q);
|
||||
V b = makeVector<V>(p, q);
|
||||
V a = makeVector<V>(p, q);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
// V a = makeVector<V>(p, q);
|
||||
addeq_BigVec<V>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEVECTOR_BENCHMARK(BM_BigVec_Addeq)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Addeq, M2Vector)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Addeq, M4Vector)
|
||||
#ifdef WITH_NTL
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Addeq, M6Vector)
|
||||
#endif
|
||||
|
||||
// mult
|
||||
template <typename V>
|
||||
static void mult_BigVec(const V &a, const V &b) { // function
|
||||
V c = a * b;
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
static void BM_BigVec_Mult(benchmark::State &state) { // benchmark
|
||||
auto p = state.range(0);
|
||||
size_t idx = ElemParamFactory::GetNearestIndex(p);
|
||||
typename V::Integer q(ElemParamFactory::DefaultSet[idx].q);
|
||||
V a = makeVector<V>(p, q);
|
||||
V b = makeVector<V>(p, q);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
mult_BigVec<V>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEVECTOR_BENCHMARK(BM_BigVec_Mult)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Mult, M2Vector)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Mult, M4Vector)
|
||||
#ifdef WITH_NTL
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Mult, M6Vector)
|
||||
#endif
|
||||
|
||||
// mult
|
||||
template <typename V>
|
||||
static void multeq_BigVec(V &a, const V &b) {
|
||||
a *= b;
|
||||
}
|
||||
|
||||
template <typename V>
|
||||
static void BM_BigVec_Multeq(benchmark::State &state) { // benchmark
|
||||
auto p = state.range(0);
|
||||
size_t idx = ElemParamFactory::GetNearestIndex(p);
|
||||
typename V::Integer q(ElemParamFactory::DefaultSet[idx].q);
|
||||
V b = makeVector<V>(p, q);
|
||||
V a = makeVector<V>(p, q);
|
||||
|
||||
while (state.KeepRunning()) {
|
||||
// V a = makeVector<V>(p, q);
|
||||
multeq_BigVec<V>(a, b);
|
||||
}
|
||||
}
|
||||
|
||||
DO_NATIVEVECTOR_BENCHMARK(BM_BigVec_Multeq)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Multeq, M2Vector)
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Multeq, M4Vector)
|
||||
#ifdef WITH_NTL
|
||||
DO_VECTOR_BENCHMARK_TEMPLATE(BM_BigVec_Multeq, M6Vector)
|
||||
#endif
|
||||
|
||||
// execute the benchmarks
|
||||
BENCHMARK_MAIN();
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user