abc-0.65/ 0000775 0000000 0000000 00000000000 15200543000 0012156 5 ustar 00root root 0000000 0000000 abc-0.65/.gitcommit 0000664 0000000 0000000 00000000051 15200543000 0014147 0 ustar 00root root 0000000 0000000 5d51a5e420f5de493d07bf61109a977248c86ffb
abc-0.65/.github/ 0000775 0000000 0000000 00000000000 15200543000 0013516 5 ustar 00root root 0000000 0000000 abc-0.65/.github/scripts/ 0000775 0000000 0000000 00000000000 15200543000 0015205 5 ustar 00root root 0000000 0000000 abc-0.65/.github/scripts/abcexe.vcxproj 0000664 0000000 0000000 00000006346 15200543000 0020062 0 ustar 00root root 0000000 0000000
Release
Win32
17.0
{6B6D7E0F-1234-4567-89AB-CDEF01234568}
Win32Proj
abcexe
abc
Application
false
v143
true
MultiByte
_TEST\
ReleaseExe\
Level3
4146;4334;4996;4703;%(DisableSpecificWarnings)
true
true
true
WIN32;WINDOWS;NDEBUG;_CONSOLE;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)
true
stdcpp17
src
/Zc:strictStrings- %(AdditionalOptions)
Console
true
true
true
kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;lib\x86\pthreadVC2.lib;%(AdditionalDependencies)
{6B6D7E0F-1234-4567-89AB-CDEF01234567}
abc-0.65/.github/scripts/abclib.vcxproj.template 0000664 0000000 0000000 00000005147 15200543000 0021657 0 ustar 00root root 0000000 0000000
Release
Win32
17.0
{6B6D7E0F-1234-4567-89AB-CDEF01234567}
Win32Proj
abclib
StaticLibrary
false
v143
true
MultiByte
lib\
ReleaseLib\
Level3
4146;4334;4996;4703;%(DisableSpecificWarnings)
true
true
true
WIN32;WINDOWS;NDEBUG;_LIB;ABC_DLL=ABC_DLLEXPORT;_CRT_SECURE_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;ABC_USE_PTHREADS;ABC_USE_CUDD;HAVE_STRUCT_TIMESPEC;_WINSOCKAPI_;%(PreprocessorDefinitions)
true
stdcpp17
src
/Zc:strictStrings- %(AdditionalOptions)
$(OutDir)abcr.lib
{{SOURCE_FILES}}
abc-0.65/.github/scripts/abcspace.sln 0000664 0000000 0000000 00000002124 15200543000 0017463 0 ustar 00root root 0000000 0000000 Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.0.31903.59
MinimumVisualStudioVersion = 10.0.40219.1
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abclib", "abclib.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234567}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "abcexe", "abcexe.vcxproj", "{6B6D7E0F-1234-4567-89AB-CDEF01234568}"
ProjectSection(ProjectDependencies) = postProject
{6B6D7E0F-1234-4567-89AB-CDEF01234567} = {6B6D7E0F-1234-4567-89AB-CDEF01234567}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Release|Win32 = Release|Win32
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.ActiveCfg = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234567}.Release|Win32.Build.0 = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.ActiveCfg = Release|Win32
{6B6D7E0F-1234-4567-89AB-CDEF01234568}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
EndGlobal
abc-0.65/.github/workflows/ 0000775 0000000 0000000 00000000000 15200543000 0015553 5 ustar 00root root 0000000 0000000 abc-0.65/.github/workflows/build-posix-cmake.yml 0000664 0000000 0000000 00000003330 15200543000 0021612 0 ustar 00root root 0000000 0000000 name: Build Posix CMake
on:
push:
pull_request:
jobs:
build-posix-cmake:
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
use_namespace: [false, true]
runs-on: ${{ matrix.os }}
env:
CMAKE_ARGS: ${{ matrix.use_namespace && '-DABC_USE_NAMESPACE=xxx' || '' }}
DEMO_ARGS: ${{ matrix.use_namespace && '-DABC_NAMESPACE=xxx' || '' }}
DEMO_GCC: ${{ matrix.use_namespace && 'g++ -x c++' || 'gcc' }}
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install brew dependencies
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install readline ninja
if: ${{ contains(matrix.os, 'macos') }}
- name: Install APT dependencies
run: |
sudo apt install -y libreadline-dev ninja-build
if: ${{ !contains(matrix.os, 'macos') }}
- name: Configure CMake
run: |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Release ${CMAKE_ARGS} -B build
- name: Build CMake
run: |
cmake --build build
- name: Run Unit Tests
run: |
ctest --output-on-failure
- name: Test Executable
run: |
./build/abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
- name: Test Library
run: |
${DEMO_GCC} ${DEMO_ARGS} -Wall -c src/demo.c -o demo.o
g++ -o demo demo.o build/libabc.a -lm -ldl -lreadline -lpthread
./demo i10.aig
- name: Stage Executable
run: |
mkdir staging
cp build/abc build/libabc.a staging/
- name: Upload pacakge artifact
uses: actions/upload-artifact@v4
with:
name: package-cmake-${{ matrix.os }}-${{ matrix.use_namespace }}
path: staging/
abc-0.65/.github/workflows/build-posix.yml 0000664 0000000 0000000 00000003073 15200543000 0020540 0 ustar 00root root 0000000 0000000 name: Build Posix
on:
push:
pull_request:
jobs:
build-posix:
strategy:
matrix:
os: [macos-latest, ubuntu-latest]
use_namespace: [false, true]
runs-on: ${{ matrix.os }}
env:
MAKE_ARGS: ${{ matrix.use_namespace && 'ABC_USE_NAMESPACE=xxx' || '' }}
DEMO_ARGS: ${{ matrix.use_namespace && '-DABC_NAMESPACE=xxx' || '' }}
DEMO_GCC: ${{ matrix.use_namespace && 'g++ -x c++' || 'gcc' }}
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install brew dependencies
run: |
HOMEBREW_NO_AUTO_UPDATE=1 brew install readline
if: ${{ contains(matrix.os, 'macos') }}
- name: Install APT dependencies
run: |
sudo apt install -y libreadline-dev
if: ${{ !contains(matrix.os, 'macos') }}
- name: Build Executable
run: |
make -j3 ${MAKE_ARGS} abc
- name: Test Executable
run: |
./abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
- name: Build Library
run: |
make -j3 ${MAKE_ARGS} libabc.a
- name: Test Library
run: |
${DEMO_GCC} ${DEMO_ARGS} -Wall -c src/demo.c -o demo.o
g++ -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread
./demo i10.aig
- name: Stage Executable
run: |
mkdir staging
cp abc libabc.a staging/
- name: Upload pacakge artifact
uses: actions/upload-artifact@v4
with:
name: package-posix-${{ matrix.os }}-${{ matrix.use_namespace }}
path: staging/
abc-0.65/.github/workflows/build-windows.yml 0000664 0000000 0000000 00000004532 15200543000 0021071 0 ustar 00root root 0000000 0000000 name: Build Windows
on:
push:
pull_request:
jobs:
build-windows:
runs-on: windows-2025
steps:
- name: Git Checkout
uses: actions/checkout@v4
with:
submodules: recursive
- name: Setup MSVC
uses: ilammy/msvc-dev-cmd@v1
with:
arch: x86
- name: Copy project files from scripts
run: |
copy .github\scripts\abcspace.sln .
copy .github\scripts\abcexe.vcxproj .
- name: Generate abclib.vcxproj from dsp
shell: powershell
run: |
# Parse source files from abclib.dsp
$dspContent = Get-Content "abclib.dsp" -Raw
$sourceFiles = [regex]::Matches($dspContent, 'SOURCE=\.\\([^\r\n]+)') | ForEach-Object { $_.Groups[1].Value } | Sort-Object -Unique
Write-Host "Found $($sourceFiles.Count) source files"
# Build source file items
$sourceItems = ""
foreach ($src in $sourceFiles) {
if ($src -match '\.c$') {
$sourceItems += " `r`n"
} elseif ($src -match '\.(cpp|cc)$') {
$sourceItems += " `r`n"
} elseif ($src -match '\.h$') {
$sourceItems += " `r`n"
}
}
# Read template and replace placeholder
$template = Get-Content ".github\scripts\abclib.vcxproj.template" -Raw
$vcxproj = $template -replace '\{\{SOURCE_FILES\}\}', $sourceItems
Set-Content "abclib.vcxproj" $vcxproj -NoNewline
Write-Host "abclib.vcxproj generated successfully"
- name: Build
run: |
msbuild abcspace.sln /m /nologo /v:m /p:Configuration=Release /p:Platform=Win32 /p:UseMultiToolTask=true
if ($LASTEXITCODE -ne 0) { throw "Build failed with exit code $LASTEXITCODE" }
- name: Test Executable
run: |
copy lib\x86\pthreadVC2.dll _TEST\
.\_TEST\abc.exe -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
if ($LASTEXITCODE -ne 0) { throw "Test failed with exit code $LASTEXITCODE" }
- name: Stage Executable
run: |
mkdir staging
copy _TEST\abc.exe staging\
- name: Upload package artifact
uses: actions/upload-artifact@v4
with:
name: package-windows
path: staging/ abc-0.65/.gitignore 0000664 0000000 0000000 00000000760 15200543000 0014151 0 ustar 00root root 0000000 0000000 DebugLib/
DebugExe/
DebugExt/
ReleaseLib/
ReleaseExe/
ReleaseExt/
_/
_TEST/
lib/abc*
lib/m114*
lib/bip*
docs/
.cache/
src/ext*
src/xxx/
src/aig/au/
src/aig/ssm/
src/aig/ddb/
*~
*.orig
*.[od]
*.ncb
*.opt
*.plg
*.zip
*.DS_Store
abcspaceext.dsw
abcext.dsp
abcexe.vcproj*
abclib.vcproj*
/abcspace.sln
abcspace.suo
*.pyc
src/python/build
src/python/bdist
src/python/pyabc.py
src/python/pyabc_wrap.*
.idea/
build/
*.rej
*.orig
tags
/libabc.a
/abc
/arch_flags
/cmake
/cscope
abc.history abc-0.65/.hgignore 0000664 0000000 0000000 00000000756 15200543000 0013771 0 ustar 00root root 0000000 0000000 syntax:glob
DebugLib/
DebugExe/
DebugExt/
ReleaseLib/
ReleaseExe/
ReleaseExt/
_TEST/
lib/abc*
lib/m114*
lib/bip*
docs/
src/ext*
src/xxx/
src/aig/au/
src/aig/ssm/
src/aig/ddb/
*~
*.orig
*.[od]
*.ncb
*.opt
*.plg
*.zip
abcspaceext.dsw
abcext.dsp
abcexe.vcproj*
abclib.vcproj*
abcspace.sln
abcspace.suo
*.pyc
src/python/build
src/python/bdist
src/python/pyabc.py
src/python/pyabc_wrap.*
.idea/
build/
*.rej
*.orig
tags
syntax: regexp
^libabc.a$
^abc$
^arch_flags$
^cmake
^cscope
abc-0.65/CMakeLists.txt 0000664 0000000 0000000 00000010756 15200543000 0014727 0 ustar 00root root 0000000 0000000 cmake_minimum_required(VERSION 3.5.0)
include(CMakeParseArguments)
include(CheckCCompilerFlag)
include(CheckCXXCompilerFlag)
# Generate compilation database compile_commands.json
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
# Default c++ standard used unless otherwise specified in target_compile_features.
set(CMAKE_CXX_STANDARD 17 CACHE STRING "the C++ standard to use for this project")
set(CMAKE_CXX_STANDARD_REQUIRED ON)
function(addprefix var prefix)
foreach( s ${ARGN} )
list(APPEND tmp "-I${s}")
endforeach()
set(${var} ${tmp} PARENT_SCOPE)
endfunction()
# filter out flags that are not appropriate for the compiler being used
function(target_compile_options_filtered target visibility)
foreach( flag ${ARGN} )
if( flag MATCHES "^-D.*" )
target_compile_options( ${target} ${visibility} ${flag} )
else()
check_c_compiler_flag( ${flag} C_COMPILER_SUPPORTS__${flag} )
if( C_COMPILER_SUPPORTS__${flag} )
target_compile_options( ${target} ${visibility} $<$:${flag}> )
endif()
check_cxx_compiler_flag( ${flag} CXX_COMPILER_SUPPORTS__${flag} )
if( CXX_COMPILER_SUPPORTS__${flag} )
target_compile_options( ${target} ${visibility} $<$:${flag}> )
endif()
endif()
endforeach()
endfunction()
project(abc)
if(READLINE_FOUND MATCHES TRUE)
addprefix(ABC_READLINE_INCLUDES_FLAGS "-I" ${READLINE_INCLUDE})
string(REPLACE ";" " " ABC_READLINE_INCLUDES_FLAGS "${ABC_READLINE_INCLUDES_FLAGS}")
list(APPEND ABC_READLINE_FLAGS "ABC_READLINE_INCLUDES=${ABC_READLINE_INCLUDES_FLAGS}")
string(REPLACE ";" " " ABC_READLINE_LIBRARIES_FLAGS "${READLINE_LIBRARIES}")
list(APPEND ABC_READLINE_FLAGS "ABC_READLINE_LIBRARIES=${ABC_READLINE_LIBRARIES_FLAGS}")
elseif(READLINE_FOUND MATCHES FALSE)
list(APPEND ABC_READLINE_FLAGS "ABC_USE_NO_READLINE=1")
endif()
if(ABC_USE_NAMESPACE)
set(ABC_USE_NAMESPACE_FLAGS "ABC_USE_NAMESPACE=${ABC_USE_NAMESPACE}")
endif()
if( APPLE )
set(make_env ${CMAKE_COMMAND} -E env SDKROOT=${CMAKE_OSX_SYSROOT})
endif()
# run make to extract compiler options, linker options and list of source files
execute_process(
COMMAND
${make_env}
make
${ABC_READLINE_FLAGS}
${ABC_USE_NAMESPACE_FLAGS}
ARCHFLAGS_EXE=${CMAKE_CURRENT_BINARY_DIR}/abc_arch_flags_program.exe
ABC_MAKE_NO_DEPS=1
CC=${CMAKE_C_COMPILER}
CXX=${CMAKE_CXX_COMPILER}
LD=${CMAKE_CXX_COMPILER}
cmake_info
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
OUTPUT_VARIABLE MAKE_OUTPUT
)
# extract options from make output
function(extract_var SEPARATOR DEST_VARIABLE MAKE_OUTPUT)
string(REGEX MATCH "${SEPARATOR} .* ${SEPARATOR}" TMP "${MAKE_OUTPUT}")
string(REGEX REPLACE "${SEPARATOR} (.*) ${SEPARATOR}" "\\1" TMP "${TMP}")
separate_arguments(TMP)
set(${DEST_VARIABLE} ${TMP} PARENT_SCOPE)
endfunction()
extract_var(SEPARATOR_SRC ABC_SRC ${MAKE_OUTPUT})
extract_var(SEPARATOR_LIBS ABC_LIBS ${MAKE_OUTPUT})
extract_var(SEPARATOR_CFLAGS ABC_CFLAGS ${MAKE_OUTPUT})
extract_var(SEPARATOR_CXXFLAGS ABC_CXXFLAGS ${MAKE_OUTPUT})
if(ABC_USE_NAMESPACE)
set_source_files_properties(${ABC_SRC} PROPERTIES LANGUAGE CXX)
endif()
function(abc_properties target visibility)
target_include_directories(${target} ${visibility} ${CMAKE_CURRENT_SOURCE_DIR}/src )
target_compile_options_filtered(${target} ${visibility} ${ABC_CFLAGS} ${ABC_CXXFLAGS} -Wno-unused-but-set-variable )
target_link_libraries(${target} ${visibility} ${ABC_LIBS})
endfunction()
set(ABC_MAIN_SRC src/base/main/main.c)
list(REMOVE_ITEM ABC_SRC ${ABC_MAIN_SRC})
add_library(libabc EXCLUDE_FROM_ALL ${ABC_SRC})
abc_properties(libabc PUBLIC)
set_property(TARGET libabc PROPERTY OUTPUT_NAME abc)
add_executable(abc ${ABC_MAIN_SRC})
target_link_libraries(abc PRIVATE libabc)
abc_properties(abc PRIVATE)
add_library(libabc-pic EXCLUDE_FROM_ALL ${ABC_SRC})
abc_properties(libabc-pic PUBLIC)
set_property(TARGET libabc-pic PROPERTY POSITION_INDEPENDENT_CODE ON)
set_property(TARGET libabc-pic PROPERTY OUTPUT_NAME abc-pic)
if(NOT DEFINED ABC_SKIP_TESTS)
enable_testing()
include(FetchContent)
FetchContent_Declare(
googletest
DOWNLOAD_EXTRACT_TIMESTAMP TRUE
# Specify the commit you depend on and update it regularly.
URL "https://github.com/google/googletest/archive/refs/tags/v1.14.0.zip"
)
FetchContent_MakeAvailable(googletest)
include(GoogleTest)
add_subdirectory(test)
endif() abc-0.65/Makefile 0000664 0000000 0000000 00000017025 15200543000 0013623 0 ustar 00root root 0000000 0000000
CC := gcc
CXX := g++
AR := ar
LD := $(CXX)
# Auto-enable ccache if available
CCACHE := $(shell command -v ccache 2>/dev/null)
ifneq ($(CCACHE),)
CC := $(CCACHE) $(CC)
CXX := $(CCACHE) $(CXX)
endif
MSG_PREFIX ?=
ABCSRC ?= .
VPATH = $(ABCSRC)
# whether to print build options, tools, and echo commands while building
ifdef ABC_MAKE_VERBOSE
VERBOSE=
abc_info = $(info $(1))
else
VERBOSE=@
abc_info =
endif
$(call abc_info,$(MSG_PREFIX)Using CC=$(CC))
$(call abc_info,$(MSG_PREFIX)Using CXX=$(CXX))
$(call abc_info,$(MSG_PREFIX)Using AR=$(AR))
$(call abc_info,$(MSG_PREFIX)Using LD=$(LD))
PROG := abc
OS := $(shell uname -s)
MODULES := \
$(wildcard src/ext*) \
src/base/abc src/base/abci src/base/cmd src/base/io src/base/main src/base/exor \
src/base/ver src/base/wlc src/base/wln src/base/acb src/base/bac src/base/cba src/base/pla src/base/test \
src/map/mapper src/map/mio src/map/super src/map/if src/map/if/acd \
src/map/amap src/map/cov src/map/scl src/map/mpm src/map/emap \
src/misc/extra src/misc/mvc src/misc/st src/misc/util src/misc/nm \
src/misc/vec src/misc/hash src/misc/tim src/misc/bzlib src/misc/zlib \
src/misc/mem src/misc/bar src/misc/bbl src/misc/parse src/misc/btor \
src/opt/cut src/opt/fxu src/opt/fxch src/opt/rwr src/opt/mfs src/opt/sim \
src/opt/ret src/opt/fret src/opt/res src/opt/lpk src/opt/nwk src/opt/rwt src/opt/rar \
src/opt/cgt src/opt/csw src/opt/dar src/opt/dau src/opt/dsc src/opt/sfm src/opt/sbd src/opt/eslim src/opt/ufar src/opt/untk src/opt/util \
src/sat/bsat src/sat/xsat src/sat/satoko src/sat/csat src/sat/msat src/sat/psat src/sat/cnf src/sat/bmc src/sat/glucose src/sat/glucose2 src/sat/kissat src/sat/cadical \
src/bool/bdc src/bool/deco src/bool/dec src/bool/kit src/bool/lucky \
src/bool/rsb src/bool/rpo \
src/proof/pdr src/proof/abs src/proof/live src/proof/ssc src/proof/int \
src/proof/cec src/proof/acec src/proof/dch src/proof/fraig src/proof/fra src/proof/ssw \
src/aig/aig src/aig/saig src/aig/gia src/aig/ioa src/aig/ivy src/aig/hop \
src/aig/miniaig
all: $(PROG)
default: $(PROG)
ARCHFLAGS_EXE ?= ./arch_flags
$(ARCHFLAGS_EXE) : arch_flags.c
$(CC) $< -o $(ARCHFLAGS_EXE)
INCLUDES += -I$(ABCSRC)/src
# Use C99 stdint.h header for platform-dependent types
ifdef ABC_USE_STDINT_H
ARCHFLAGS ?= -DABC_USE_STDINT_H=1
else
ARCHFLAGS ?= $(shell $(CC) $(ABCSRC)/arch_flags.c -o $(ARCHFLAGS_EXE) && $(ARCHFLAGS_EXE))
endif
ARCHFLAGS := $(ARCHFLAGS)
OPTFLAGS ?= -g -O
CFLAGS += -Wall -Wno-unused-function -Wno-write-strings -Wno-sign-compare $(ARCHFLAGS)
ifneq ($(findstring arm,$(shell uname -m)),)
CFLAGS += -DABC_MEMALIGN=4
endif
# compile ABC using the C++ compiler and put everything in the namespace $(ABC_NAMESPACE)
ifdef ABC_USE_NAMESPACE
CFLAGS += -DABC_NAMESPACE=$(ABC_USE_NAMESPACE) -fpermissive -x c++
CC := $(CXX)
$(call abc_info,$(MSG_PREFIX)Compiling in namespace $(ABC_USE_NAMESPACE))
endif
# compile CUDD with ABC
ifndef ABC_USE_NO_CUDD
CFLAGS += -DABC_USE_CUDD=1
MODULES += src/bdd/cudd src/bdd/extrab src/bdd/dsd src/bdd/epd src/bdd/mtr src/bdd/reo src/bdd/cas src/bdd/bbr src/bdd/llb
$(call abc_info,$(MSG_PREFIX)Compiling with CUDD)
endif
ABC_READLINE_INCLUDES ?=
ABC_READLINE_LIBRARIES ?= -lreadline
# whether to use libreadline
ifndef ABC_USE_NO_READLINE
CFLAGS += -DABC_USE_READLINE $(ABC_READLINE_INCLUDES)
LIBS += $(ABC_READLINE_LIBRARIES)
ifeq ($(OS), FreeBSD)
CFLAGS += -I/usr/local/include
LDFLAGS += -L/usr/local/lib
endif
$(call abc_info,$(MSG_PREFIX)Using libreadline)
endif
# whether to compile with thread support
ifndef ABC_USE_NO_PTHREADS
CFLAGS += -DABC_USE_PTHREADS
LIBS += -lpthread
$(call abc_info,$(MSG_PREFIX)Using pthreads)
endif
# whether to compile into position independent code
ifdef ABC_USE_PIC
CFLAGS += -fPIC
LIBS += -fPIC
$(call abc_info,$(MSG_PREFIX)Compiling position independent code)
endif
# Set -Wno-unused-bug-set-variable for GCC 4.6.0 and greater only
ifneq ($(or $(findstring gcc,$(CC)),$(findstring g++,$(CC))),)
empty:=
space:=$(empty) $(empty)
GCC_VERSION=$(shell $(CC) -dumpversion)
GCC_MAJOR=$(word 1,$(subst .,$(space),$(GCC_VERSION)))
GCC_MINOR=$(word 2,$(subst .,$(space),$(GCC_VERSION)))
$(call abc_info,$(MSG_PREFIX)Found GCC_VERSION $(GCC_VERSION))
ifeq ($(findstring $(GCC_MAJOR),0 1 2 3),)
ifeq ($(GCC_MAJOR),4)
$(call abc_info,$(MSG_PREFIX)Found GCC_MAJOR==4)
ifeq ($(findstring $(GCC_MINOR),0 1 2 3 4 5),)
$(call abc_info,$(MSG_PREFIX)Found GCC_MINOR>=6)
CFLAGS += -Wno-unused-but-set-variable
endif
else
$(call abc_info,$(MSG_PREFIX)Found GCC_MAJOR>=5)
CFLAGS += -Wno-unused-but-set-variable
endif
endif
endif
# LIBS := -ldl -lrt
LIBS += -lm
ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD))
LIBS += -ldl
endif
ifneq ($(OS), $(filter $(OS), FreeBSD OpenBSD NetBSD Darwin))
LIBS += -lrt
endif
ifdef ABC_USE_LIBSTDCXX
LIBS += -lstdc++
$(call abc_info,$(MSG_PREFIX)Using explicit -lstdc++)
endif
$(call abc_info,$(MSG_PREFIX)Using CFLAGS=$(CFLAGS))
CXXFLAGS += $(CFLAGS) -std=c++17 -fno-exceptions
SRC :=
GARBAGE := core core.* *.stackdump ./tags $(PROG) arch_flags
.PHONY: all default tags clean docs cmake_info
include $(patsubst %, $(ABCSRC)/%/module.make, $(MODULES))
OBJ := \
$(patsubst %.cc, %.o, $(filter %.cc, $(SRC))) \
$(patsubst %.cpp, %.o, $(filter %.cpp, $(SRC))) \
$(patsubst %.c, %.o, $(filter %.c, $(SRC))) \
$(patsubst %.y, %.o, $(filter %.y, $(SRC)))
LIBOBJ := $(filter-out src/base/main/main.o,$(OBJ))
DEP := $(OBJ:.o=.d)
# implicit rules
%.o: %.c
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CC) -c $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< -o $@
%.o: %.cc
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CXX) -c $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
%.o: %.cpp
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CXX) -c $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< -o $@
%.d: %.c
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
$(VERBOSE)$(ABCSRC)/depends.sh "$(CC)" `dirname $*.c` $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< > $@
%.d: %.cc
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
$(VERBOSE)$(ABCSRC)/depends.sh "$(CXX)" `dirname $*.cc` $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< > $@
%.d: %.cpp
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Generating dependency:" $(LOCAL_PATH)/$<
$(VERBOSE)$(ABCSRC)/depends.sh "$(CXX)" `dirname $*.cpp` $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< > $@
ifndef ABC_MAKE_NO_DEPS
-include $(DEP)
endif
# Actual targets
depend: $(DEP)
clean:
@echo "$(MSG_PREFIX)\`\` Cleaning up..."
$(VERBOSE)rm -rvf $(PROG) lib$(PROG).a
$(VERBOSE)rm -rvf $(OBJ)
$(VERBOSE)rm -rvf $(GARBAGE)
$(VERBOSE)rm -rvf $(OBJ:.o=.d)
@if [ -n "$(CCACHE)" ]; then echo "$(MSG_PREFIX)ccache available: $(CCACHE)"; fi
tags:
etags `find . -type f -regex '.*\.\(c\|h\)'`
$(PROG): $(OBJ)
@echo "$(MSG_PREFIX)\`\` Building binary:" $(notdir $@)
$(VERBOSE)$(LD) -o $@ $^ $(LDFLAGS) $(LIBS)
lib$(PROG).a: $(LIBOBJ)
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
$(VERBOSE)$(AR) rsv $@ $?
lib$(PROG).so: $(LIBOBJ)
@echo "$(MSG_PREFIX)\`\` Linking:" $(notdir $@)
$(VERBOSE)$(CXX) -shared -o $@ $^ $(LIBS)
docs:
@echo "$(MSG_PREFIX)\`\` Building documentation." $(notdir $@)
$(VERBOSE)doxygen doxygen.conf
cmake_info:
@echo SEPARATOR_CFLAGS $(CFLAGS) SEPARATOR_CFLAGS
@echo SEPARATOR_CXXFLAGS $(CXXFLAGS) SEPARATOR_CXXFLAGS
@echo SEPARATOR_LIBS $(LIBS) SEPARATOR_LIBS
@echo SEPARATOR_SRC $(SRC) SEPARATOR_SRC
abc-0.65/README.md 0000664 0000000 0000000 00000015103 15200543000 0013435 0 ustar 00root root 0000000 0000000 [](https://github.com/berkeley-abc/abc/actions/workflows/build-posix.yml)
[](https://github.com/berkeley-abc/abc/actions/workflows/build-windows.yml)
[](https://github.com/berkeley-abc/abc/actions/workflows/build-posix-cmake.yml)
# ABC: System for Sequential Logic Synthesis and Formal Verification
ABC is always changing but the current snapshot is believed to be stable.
## ABC fork with new features
Here is a [fork](https://github.com/yongshiwo/abc.git) of ABC containing Agdmap, a novel technology mapper for LUT-based FPGAs. Agdmap is based on a technology mapping algorithm with adaptive gate decomposition [1]. It is a cut enumeration based mapping algorithm with bin packing for simultaneous wide gate decomposition, which is a patent pending technology.
The mapper is developed and maintained by Longfei Fan and Prof. Chang Wu at Fudan University in Shanghai, China. The experimental results presented in [1] indicate that Agdmap can substantially improve area (by 10% or more) when compared against the best LUT mapping solutions in ABC, such as command "if".
The source code is provided for research and evaluation only. For commercial usage, please contact Prof. Chang Wu at wuchang@fudan.edu.cn.
References:
[1] L. Fan and C. Wu, "FPGA technology mapping with adaptive gate decompostion", ACM/SIGDA FPGA International Symposium on FPGAs, 2023.
## Compiling:
To compile ABC as a binary, download and unzip the code, then type `make`.
To compile ABC as a static library, type `make libabc.a`.
When ABC is used as a static library, two additional procedures, `Abc_Start()`
and `Abc_Stop()`, are provided for starting and quitting the ABC framework in
the calling application. A simple demo program (file src/demo.c) shows how to
create a stand-alone program performing DAG-aware AIG rewriting, by calling
APIs of ABC compiled as a static library.
To build the demo program
* Copy demo.c and libabc.a to the working directory
* Run `gcc -Wall -g -c demo.c -o demo.o`
* Run `g++ -g -o demo demo.o libabc.a -lm -ldl -lreadline -lpthread`
To run the demo program, give it a file with the logic network in AIGER or BLIF. For example:
[...] ~/abc> demo i10.aig
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Networks are equivalent.
Reading = 0.00 sec Rewriting = 0.18 sec Verification = 0.41 sec
The same can be produced by running the binary in the command-line mode:
[...] ~/abc> ./abc
UC Berkeley, ABC 1.01 (compiled Oct 6 2012 19:05:18)
abc 01> r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Networks are equivalent.
or in the batch mode:
[...] ~/abc> ./abc -c "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec"
ABC command line: "r i10.aig; b; ps; b; rw -l; rw -lz; b; rw -lz; b; ps; cec".
i10 : i/o = 257/ 224 lat = 0 and = 2396 lev = 37
i10 : i/o = 257/ 224 lat = 0 and = 1851 lev = 35
Networks are equivalent.
## Compiling as C or C++
The current version of ABC can be compiled with C compiler or C++ compiler.
* To compile as C code (default): make sure that `CC=gcc` and `ABC_NAMESPACE` is not defined.
* To compile as C++ code without namespaces: make sure that `CC=g++` and `ABC_NAMESPACE` is not defined.
* To compile as C++ code with namespaces: make sure that `CC=g++` and `ABC_NAMESPACE` is set to
the name of the requested namespace. For example, add `-DABC_NAMESPACE=xxx` to OPTFLAGS.
## Building a shared library
* Compile the code as position-independent by adding `ABC_USE_PIC=1`.
* Build the `libabc.so` target:
make ABC_USE_PIC=1 libabc.so
## Bug reporting:
Please try to reproduce all the reported bugs and unexpected features using the latest
version of ABC available from https://github.com/berkeley-abc/abc
If the bug still persists, please provide the following information:
1. ABC version (when it was downloaded from GitHub)
1. Linux distribution and version (32-bit or 64-bit)
1. The exact command-line and error message when trying to run the tool
1. The output of the `ldd` command run on the exeutable (e.g. `ldd abc`).
1. Versions of relevant tools or packages used.
## Troubleshooting:
1. If compilation does not start because of the cyclic dependency check,
try touching all files as follows: `find ./ -type f -exec touch "{}" \;`
1. If compilation fails because readline is missing, install 'readline' library or
compile with `make ABC_USE_NO_READLINE=1`
1. If compilation fails because pthreads are missing, install 'pthread' library or
compile with `make ABC_USE_NO_PTHREADS=1`
* See http://sourceware.org/pthreads-win32/ for pthreads on Windows
* Precompiled DLLs are available from ftp://sourceware.org/pub/pthreads-win32/dll-latest
1. If compilation fails in file "src/base/main/libSupport.c", try the following:
* Remove "src/base/main/libSupport.c" from "src/base/main/module.make"
* Comment out calls to `Libs_Init()` and `Libs_End()` in "src/base/main/mainInit.c"
1. On some systems, readline requires adding '-lcurses' to Makefile.
The following comment was added by Krish Sundaresan:
"I found that the code does compile correctly on Solaris if gcc is used (instead of
g++ that I was using for some reason). Also readline which is not available by default
on most Sol10 systems, needs to be installed. I downloaded the readline-5.2 package
from sunfreeware.com and installed it locally. Also modified CFLAGS to add the local
include files for readline and LIBS to add the local libreadline.a. Perhaps you can
add these steps in the readme to help folks compiling this on Solaris."
The following tutorial is kindly offered by Ana Petkovska from EPFL:
https://www.dropbox.com/s/qrl9svlf0ylxy8p/ABC_GettingStarted.pdf
## Final remarks:
Unfortunately, there is no comprehensive regression test. Good luck!
This system is maintained by Alan Mishchenko . Consider also
using ZZ framework developed by Niklas Een: https://bitbucket.org/niklaseen/abc-zz (or https://github.com/berkeley-abc/abc-zz)
abc-0.65/abc.rc 0000664 0000000 0000000 00000012061 15200543000 0013231 0 ustar 00root root 0000000 0000000 # global parameters
set check # checks intermediate networks
#set checkfio # prints warnings when fanins/fanouts are duplicated
#unset checkread # does not check new networks after reading from file
#set backup # saves backup networks retrived by "undo" and "recall"
#set savesteps 1 # sets the maximum number of backup networks to save
#set progressbar # display the progress bar
# program names for internal calls
set dotwin dot.exe
set dotunix dot
set gsviewwin gsview32.exe
set gsviewunix gv
set siswin sis.exe
set sisunix sis
set mvsiswin mvsis.exe
set mvsisunix mvsis
set capowin MetaPl-Capo10.1-Win32.exe
set capounix MetaPl-Capo10.1
set gnuplotwin wgnuplot.exe
set gnuplotunix gnuplot
# Niklas Een's commands
#load_plugin C:\_projects\abc\lib\bip_win.exe "BIP"
# standard aliases
alias hi history
alias b balance
alias cg clockgate
alias cl cleanup
alias clp collapse
alias cs care_set
alias el eliminate
alias esd ext_seq_dcs
alias f fraig
alias fs fraig_sweep
alias fsto fraig_store
alias fres fraig_restore
alias fr fretime
alias ft fraig_trust
alias ic indcut
alias lp lutpack
alias pcon print_cone
alias pd print_dsd
alias pex print_exdc -d
alias pf print_factor
alias pfan print_fanio
alias pg print_gates
alias pl print_level
alias plat print_latch
alias pio print_io
alias pk print_kmap
alias pm print_miter
alias ps print_stats
alias psb print_stats -b
alias psu print_supp
alias psy print_symm
alias pun print_unate
alias q quit
alias r read
alias ra read_aiger
alias r3 retime -M 3
alias r3f retime -M 3 -f
alias r3b retime -M 3 -b
alias ren renode
alias rh read_hie
alias ri read_init
alias rl read_blif
alias rb read_bench
alias ret retime
alias dret dretime
alias rp read_pla
alias rt read_truth
alias rv read_verilog
alias rvl read_verlib
alias rsup read_super mcnc5_old.super
alias rlib read_library
alias rlibc read_library cadence.genlib
alias rty read_liberty
alias rlut read_lut
alias rw rewrite
alias rwz rewrite -z
alias rf refactor
alias rfz refactor -z
alias re restructure
alias rez restructure -z
alias rs resub
alias rsz resub -z
alias sa set autoexec ps
alias scl scleanup
alias sif if -s
alias so source -x
alias st strash
alias sw sweep
alias ssw ssweep
alias tr0 trace_start
alias tr1 trace_check
alias trt "r c.blif; st; tr0; b; tr1"
alias u undo
alias w write
alias wa write_aiger
alias wb write_bench
alias wc write_cnf
alias wh write_hie
alias wl write_blif
alias wp write_pla
alias wv write_verilog
# standard scripts
alias resyn "b; rw; rwz; b; rwz; b"
alias resyn2 "b; rw; rf; b; rw; rwz; b; rfz; rwz; b"
alias resyn2a "b; rw; b; rw; rwz; b; rwz; b"
alias resyn3 "b; rs; rs -K 6; b; rsz; rsz -K 6; b; rsz -K 5; b"
alias compress "b -l; rw -l; rwz -l; b -l; rwz -l; b -l"
alias compress2 "b -l; rw -l; rf -l; b -l; rw -l; rwz -l; b -l; rfz -l; rwz -l; b -l"
alias choice "fraig_store; resyn; fraig_store; resyn2; fraig_store; fraig_restore"
alias choice2 "fraig_store; balance; fraig_store; resyn; fraig_store; resyn2; fraig_store; resyn2; fraig_store; fraig_restore"
alias rwsat "st; rw -l; b -l; rw -l; rf -l"
alias drwsat2 "st; drw; b -l; drw; drf; ifraig -C 20; drw; b -l; drw; drf"
alias share "st; multi -m; sop; fx; resyn2"
alias addinit "read_init; undc; strash; zero"
alias blif2aig "undc; strash; zero"
alias v2p "&vta_gla; &ps; &gla_derive; &put; w 1.aig; pdr -v"
alias g2p "&ps; &gla_derive; &put; w 2.aig; pdr -v"
alias &sw_ "&put; sweep; st; &get"
alias &fx_ "&put; sweep; sop; fx; st; &get"
alias &dc3 "&b; &jf -K 6; &b; &jf -K 4; &b"
alias &dc4 "&b; &jf -K 7; &fx; &b; &jf -K 5; &fx; &b"
# resubstitution scripts for the IWLS paper
alias src_rw "st; rw -l; rwz -l; rwz -l"
alias src_rs "st; rs -K 6 -N 2 -l; rs -K 9 -N 2 -l; rs -K 12 -N 2 -l"
alias src_rws "st; rw -l; rs -K 6 -N 2 -l; rwz -l; rs -K 9 -N 2 -l; rwz -l; rs -K 12 -N 2 -l"
alias resyn2rs "b; rs -K 6; rw; rs -K 6 -N 2; rf; rs -K 8; b; rs -K 8 -N 2; rw; rs -K 10; rwz; rs -K 10 -N 2; b; rs -K 12; rfz; rs -K 12 -N 2; rwz; b"
alias r2rs "b; rs -K 6; rw; rs -K 6 -N 2; rf; rs -K 8; b; rs -K 8 -N 2; rw; rs -K 10; rwz; rs -K 10 -N 2; b; rs -K 12; rfz; rs -K 12 -N 2; rwz; b"
alias compress2rs "b -l; rs -K 6 -l; rw -l; rs -K 6 -N 2 -l; rf -l; rs -K 8 -l; b -l; rs -K 8 -N 2 -l; rw -l; rs -K 10 -l; rwz -l; rs -K 10 -N 2 -l; b -l; rs -K 12 -l; rfz -l; rs -K 12 -N 2 -l; rwz -l; b -l"
alias c2rs "b -l; rs -K 6 -l; rw -l; rs -K 6 -N 2 -l; rf -l; rs -K 8 -l; b -l; rs -K 8 -N 2 -l; rw -l; rs -K 10 -l; rwz -l; rs -K 10 -N 2 -l; b -l; rs -K 12 -l; rfz -l; rs -K 12 -N 2 -l; rwz -l; b -l"
alias &resyn2rs "&put; resyn2rs; &get"
alias &compress2rs "&put; compress2rs; &get"
# use this script to convert 1-valued and DC-valued flops for an AIG
alias fix_aig "logic; undc; strash; zero"
# use this script to convert 1-valued and DC-valued flops for a logic network coming from BLIF
alias fix_blif "undc; strash; zero"
# lazy man's synthesis
alias recadd3 "st; rec_add3; b; rec_add3; dc2; rec_add3; if -K 8; bidec; st; rec_add3; dc2; rec_add3; if -g -K 6; st; rec_add3"
abc-0.65/abcexe.dsp 0000664 0000000 0000000 00000011341 15200543000 0014115 0 ustar 00root root 0000000 0000000 # Microsoft Developer Studio Project File - Name="abcexe" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Console Application" 0x0103
CFG=abcexe - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "abcexe.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "abcexe.mak" CFG="abcexe - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "abcexe - Win32 Release" (based on "Win32 (x86) Console Application")
!MESSAGE "abcexe - Win32 Debug" (based on "Win32 (x86) Console Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "abcexe - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ReleaseExe"
# PROP BASE Intermediate_Dir "ReleaseExe"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "ReleaseExe"
# PROP Intermediate_Dir "ReleaseExe"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "src" /D "WIN32" /D "WINDOWS" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D ABC_DLL=ABC_DLLEXPORT /D "_CRT_SECURE_NO_DEPRECATE" /D "ABC_USE_PTHREADS" /D "ABC_USE_CUDD" /D "HAVE_STRUCT_TIMESPEC" /D "_WINSOCKAPI_" /FR /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib lib\x86\pthreadVC2.lib /nologo /subsystem:console /incremental:yes /debug /machine:I386 /out:"_TEST/abc.exe"
# SUBTRACT LINK32 /profile
!ELSEIF "$(CFG)" == "abcexe - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "DebugExe"
# PROP BASE Intermediate_Dir "DebugExe"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "DebugExe"
# PROP Intermediate_Dir "DebugExe"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "src" /D "WIN32" /D "WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D ABC_DLL=ABC_DLLEXPORT /D "_CRT_SECURE_NO_DEPRECATE" /D "ABC_USE_PTHREADS" /D "ABC_USE_CUDD" /D "HAVE_STRUCT_TIMESPEC" /D "_WINSOCKAPI_" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib lib\x86\pthreadVC2.lib /nologo /subsystem:console /debug /machine:I386 /out:"_TEST/abc.exe"
!ENDIF
# Begin Target
# Name "abcexe - Win32 Release"
# Name "abcexe - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\src\base\main\main.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project
abc-0.65/abclib.dsp 0000664 0000000 0000000 00000424302 15200543000 0014107 0 ustar 00root root 0000000 0000000 # Microsoft Developer Studio Project File - Name="abclib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=abclib - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "abclib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "abclib.mak" CFG="abclib - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "abclib - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "abclib - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "abclib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "ReleaseLib"
# PROP BASE Intermediate_Dir "ReleaseLib"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "ReleaseLib"
# PROP Intermediate_Dir "ReleaseLib"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /MD /W3 /GX /O2 /I "src" /D "WIN32" /D "WINDOWS" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /D ABC_DLL=ABC_DLLEXPORT /D "_CRT_SECURE_NO_DEPRECATE" /D "ABC_USE_PTHREADS" /D "ABC_USE_CUDD" /D "HAVE_STRUCT_TIMESPEC" /D "_WINSOCKAPI_" /FR /YX /FD /c
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"lib\abcr.lib"
!ELSEIF "$(CFG)" == "abclib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "DebugLib"
# PROP BASE Intermediate_Dir "DebugLib"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "DebugLib"
# PROP Intermediate_Dir "DebugLib"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /MDd /W3 /Gm /GX /ZI /Od /I "src" /D "WIN32" /D "WINDOWS" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /D ABC_DLL=ABC_DLLEXPORT /D "_CRT_SECURE_NO_DEPRECATE" /D "ABC_USE_PTHREADS" /D "ABC_USE_CUDD" /D "HAVE_STRUCT_TIMESPEC" /D "_WINSOCKAPI_" /FR /YX /FD /GZ /c
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo /out:"lib\abcd.lib"
!ENDIF
# Begin Target
# Name "abclib - Win32 Release"
# Name "abclib - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Group "base"
# PROP Default_Filter ""
# Begin Group "abc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\abc\abc.h
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcAig.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcBarBuf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcBlifMv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcFanio.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcFanOrder.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcFunc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcHie.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcHieCec.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcHieGia.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcHieNew.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcInt.h
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcLatch.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcLib.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcMinBase.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcNames.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcNetlist.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcObj.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcRefs.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcShow.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcSop.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abc\abcUtil.c
# End Source File
# End Group
# Begin Group "abci"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\abci\abc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcAttach.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcAuto.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcBalance.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcBidec.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcBm.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcBmc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcCas.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcCascade.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcCollapse.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcCut.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDar.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDebug.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDec.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDetect.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDress.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDress2.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDress3.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcEco.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcExact.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcExtract.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcFraig.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcFx.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcFxu.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcGen.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcHaig.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcIf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcIfif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcIfMux.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcIvy.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcLog.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcLut.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcLutmin.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMap.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMeasure.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMffc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMfs.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMini.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMiter.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMulti.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcMv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcNpn.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcNpnSave.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcNtbdd.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcOdc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcOrder.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcOrchestration.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcPart.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcPrint.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcProve.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcQbf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcQuant.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcReach.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRec3.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcReconv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRefactor.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRenode.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcReorder.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRestruct.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcResub.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRewrite.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRpo.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcRunGen.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSat.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSaucy.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcScorr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSense.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSpeedup.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcStrash.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSweep.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcSymm.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcTim.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcTiming.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcUnate.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcUnreach.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcVerify.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcXsim.c
# End Source File
# Begin Source File
SOURCE=.\src\base\abci\abcTopo.c
# End Source File
# End Group
# Begin Group "cmd"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\cmd\cmd.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmd.h
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdAlias.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdApi.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdAuto.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdFlag.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdHist.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdInt.h
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdLoad.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdPlugin.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdStarter.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cmd\cmdUtils.c
# End Source File
# End Group
# Begin Group "io"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\io\io.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioabc.h
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioInt.h
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioJson.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadAiger.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBaf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBblif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBench.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBlifAig.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadBlifMv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadEdif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadEqn.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadPla.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadPlaMo.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioReadVerilog.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteAiger.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBaf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBblif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBench.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBlifMv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteBook.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteDot.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteEdgelist.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteEqn.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteGml.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteHMetis.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteList.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWritePla.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteSmv.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioWriteVerilog.c
# End Source File
# Begin Source File
SOURCE=.\src\base\io\ioJsonc.c
# End Source File
# End Group
# Begin Group "main"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\main\abcapis.h
# End Source File
# Begin Source File
SOURCE=.\src\base\main\libSupport.c
# End Source File
# Begin Source File
SOURCE=.\src\base\main\main.h
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainFrame.c
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainInit.c
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainInt.h
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainLib.c
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainReal.c
# End Source File
# Begin Source File
SOURCE=.\src\base\main\mainUtils.c
# End Source File
# End Group
# Begin Group "ver"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\ver\ver.h
# End Source File
# Begin Source File
SOURCE=.\src\base\ver\verCore.c
# End Source File
# Begin Source File
SOURCE=.\src\base\ver\verFormula.c
# End Source File
# Begin Source File
SOURCE=.\src\base\ver\verParse.c
# End Source File
# Begin Source File
SOURCE=.\src\base\ver\verStream.c
# End Source File
# End Group
# Begin Group "test"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\test\test.c
# End Source File
# End Group
# Begin Group "wlc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\wlc\wlc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlc.h
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcAbs.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcAbs2.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcBlast.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcGraft.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcJson.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcMem.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcNdr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcPth.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcReadSmt.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcReadVer.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcShow.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcSim.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcStdin.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcUif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcWin.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wlc\wlcWriteVer.c
# End Source File
# End Group
# Begin Group "pla"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\pla\pla.h
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaHash.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaMan.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaRead.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaSimple.c
# End Source File
# Begin Source File
SOURCE=.\src\base\pla\plaWrite.c
# End Source File
# End Group
# Begin Group "bac"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\bac\bac.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bac.h
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacBac.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacBlast.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacLib.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacOper.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrs.h
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrsBuild.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPrsTrans.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPtr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacPtrAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadSmt.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacReadVer.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteSmt.c
# End Source File
# Begin Source File
SOURCE=.\src\base\bac\bacWriteVer.c
# End Source File
# End Group
# Begin Group "cba"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\cba\cba.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cba.h
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaBlast.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaCba.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaPrs.h
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaReadBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaReadVer.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaTypes.h
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaWriteBlif.c
# End Source File
# Begin Source File
SOURCE=.\src\base\cba\cbaWriteVer.c
# End Source File
# End Group
# Begin Group "exor"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\exor\exor.c
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exor.h
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exorBits.c
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exorCubes.c
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exorLink.c
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exorList.c
# End Source File
# Begin Source File
SOURCE=.\src\base\exor\exorUtil.c
# End Source File
# End Group
# Begin Group "acb"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\acb\acb.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acb.h
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbAig.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbFunc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbMfs.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbPar.h
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbPush.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbSets.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbSets.h
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbTest.c
# End Source File
# Begin Source File
SOURCE=.\src\base\acb\acbUtil.c
# End Source File
# End Group
# Begin Group "wln"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\base\wln\wln.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wln.h
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnBlast.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnCom.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnGuide.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnMem.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnNdr.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnObj.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnRead.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnRetime.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnRtl.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnWlc.c
# End Source File
# Begin Source File
SOURCE=.\src\base\wln\wlnWriteVer.c
# End Source File
# End Group
# End Group
# Begin Group "bdd"
# PROP Default_Filter ""
# Begin Group "extrab"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBdd.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraLutCas.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddAuto.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddCas.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddImage.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddKmap.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddMaxMin.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddMisc.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddSet.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddSymm.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddThresh.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddTime.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\extrab\extraBddUnate.c
# End Source File
# End Group
# Begin Group "llb"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\llb\llb.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Cluster.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Constr.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Core.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Group.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Hint.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Man.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Matrix.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Pivot.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Reach.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb1Sched.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Bad.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Core.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Driver.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Dump.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Flow.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb2Image.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb3Image.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb3Nonlin.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Cex.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Cluster.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Image.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Map.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Nonlin.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llb4Sweep.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\llb\llbInt.h
# End Source File
# End Group
# Begin Group "bbr"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\bbr\bbr.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\bbr\bbrCex.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\bbr\bbrImage.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\bbr\bbrNtbdd.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\bbr\bbrReach.c
# End Source File
# End Group
# Begin Group "cas"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\cas\cas.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cas\casCore.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cas\casDec.c
# End Source File
# End Group
# Begin Group "reo"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\reo\reo.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoApi.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoCore.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoProfile.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoShuffle.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoSift.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoSwap.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoTest.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoTransfer.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\reo\reoUnits.c
# End Source File
# End Group
# Begin Group "dsd"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\dsd\dsd.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdApi.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdInt.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdLocal.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdMan.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdProc.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\dsd\dsdTree.c
# End Source File
# End Group
# Begin Group "mtr"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\mtr\mtr.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\mtr\mtrBasic.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\mtr\mtrGroup.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\mtr\mtrInt.h
# End Source File
# End Group
# Begin Group "epd"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\epd\epd.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\epd\epd.h
# End Source File
# End Group
# Begin Group "cudd"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bdd\cudd\cudd.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddAbs.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddApply.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddFind.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddInv.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddIte.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddNeg.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAddWalsh.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAndAbs.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAnneal.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddApa.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddAPI.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddApprox.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddBddAbs.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddBddCorr.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddBddIte.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddBridge.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddCache.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddClip.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddCof.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddCompose.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddDecomp.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddEssent.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddExact.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddExport.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddGenCof.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddGenetic.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddGroup.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddHarwell.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddInit.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddInt.h
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddInteract.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddLCache.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddLevelQ.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddLinear.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddLiteral.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddMatMult.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddPriority.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddRead.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddRef.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddReorder.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSat.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSign.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSolve.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSplit.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSubsetHB.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSubsetSP.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddSymmetry.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddTable.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddWindow.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddCount.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddFuncs.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddGroup.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddIsop.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddLin.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddMisc.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddPort.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddReord.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddSetop.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddSymm.c
# End Source File
# Begin Source File
SOURCE=.\src\bdd\cudd\cuddZddUtil.c
# End Source File
# End Group
# End Group
# Begin Group "sat"
# PROP Default_Filter ""
# Begin Group "msat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\msat\msat.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatActivity.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatClause.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatClauseVec.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatInt.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatMem.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatOrderH.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatQueue.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatRead.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatSolverApi.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatSolverCore.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatSolverIo.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatSolverSearch.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatSort.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\msat\msatVec.c
# End Source File
# End Group
# Begin Group "csat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\csat\csat_apis.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\csat\csat_apis.h
# End Source File
# End Group
# Begin Group "bsat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\bsat\satClause.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satInter.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satInterA.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satInterB.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satInterP.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satMem.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satMem.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satProof.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satProof2.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver2.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver2.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver2i.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver3.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satSolver3.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satStore.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satStore.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satTrace.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satTruth.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bsat\satVec.h
# End Source File
# End Group
# Begin Group "proof"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\proof\pr.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\proof\pr.h
# End Source File
# End Group
# Begin Group "psat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\psat\m114p.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\psat\m114p_types.h
# End Source File
# End Group
# Begin Group "lsat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\lsat\solver.h
# End Source File
# End Group
# Begin Group "cnf"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\cnf\cnf.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfCore.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfCut.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfData.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfFast.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfMan.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfMap.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfPost.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cnf\cnfWrite.c
# End Source File
# End Group
# Begin Group "bmc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\bmc\bmc.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmc.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBCore.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmc.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmc2.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmc3.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmcAnd.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmcG.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmci.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcBmcS.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexCare.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexCut.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexDepth.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexMin1.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexMin2.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcCexTools.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcChain.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcClp.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcEco.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcExpand.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcFault.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcFx.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcGen.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcICheck.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcInse.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcLoad.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj2.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj3.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaxi.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMesh.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMesh2.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMulti.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcUnroll.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj7.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj8.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\bmc\bmcMaj9.c
# End Source File
# End Group
# Begin Group "bsat2"
# PROP Default_Filter ""
# End Group
# Begin Group "satoko"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\satoko\act_clause.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\act_var.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\b_queue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\cdb.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\clause.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\cnf_reader.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\heap.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\mem.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\misc.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\satoko.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\sdbl.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\solver.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\solver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\solver_api.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\sort.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\types.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\vec\vec_char.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\vec\vec_flt.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\vec\vec_int.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\utils\vec\vec_uint.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\satoko\watch_list.h
# End Source File
# End Group
# Begin Group "xsat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\xsat\xsat.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatBQueue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatClause.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatCnfReader.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatHeap.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatMemory.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatSolver.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatSolver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatSolverAPI.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatUtils.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\xsat\xsatWatchList.h
# End Source File
# End Group
# Begin Group "glucose"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\glucose\AbcGlucose.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\AbcGlucose.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\AbcGlucoseCmd.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Alg.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Alloc.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\BoundedQueue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Constants.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Dimacs.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Glucose.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Heap.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\IntTypes.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Map.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Options.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Options.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\ParseUtils.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\pstdint.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Queue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\SimpSolver.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\SimpSolver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Solver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\SolverTypes.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Sort.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\System.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\System.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\Vec.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose\XAlloc.h
# End Source File
# End Group
# Begin Group "glucose2"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\glucose2\AbcGlucose2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\AbcGlucose2.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\AbcGlucoseCmd2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Alg.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Alloc.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\BoundedQueue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\CGlucose.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\CGlucoseCore.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Constants.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Dimacs.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Glucose2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Heap.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\IntTypes.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Map.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Options.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Options2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\ParseUtils.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\pstdint.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Queue.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\SimpSolver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\SimpSolver2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Solver.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\SolverTypes.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Sort.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\System.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\System2.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\Vec.h
# End Source File
# Begin Source File
SOURCE=.\src\sat\glucose2\XAlloc.h
# End Source File
# End Group
# Begin Group "kissat"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\kissat\allocate.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\analyze.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\ands.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\arena.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\assign.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\averages.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\backbone.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\backtrack.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\build.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\bump.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\check.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\classify.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\clause.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\collect.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\colors.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\compact.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\config.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\congruence.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\decide.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\deduce.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\definition.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\dense.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\dump.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\eliminate.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\equivalences.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\error.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\extend.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\factor.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\fastel.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\file.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\flags.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\format.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\forward.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\gates.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\heap.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\ifthenelse.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\import.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\internal.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kimits.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kissatSolver.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kissatTest.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kitten.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kptions.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\krite.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\kucky.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\learn.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\logging.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\minimize.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\mode.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\phases.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\preprocess.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\print.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\probe.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\profile.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\promote.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\proof.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\propbeyond.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\propdense.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\propinitially.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\proprobe.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\propsearch.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\queue.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\reduce.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\reluctant.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\reorder.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\rephase.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\report.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\resize.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\resolve.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\resources.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\restart.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\search.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\shrink.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\smooth.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\sort.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\stack.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\statistics.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\strengthen.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\substitute.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\sweep.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\terminate.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\tiers.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\trail.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\transitive.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\utilities.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\vector.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\vivify.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\walk.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\warmup.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\watch.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\kissat\weaken.c
# End Source File
# End Group
# Begin Group "cadical"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_kitten.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_analyze.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_arena.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_assume.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_averages.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_backbone.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_backtrack.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_backward.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_bins.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_block.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_ccadical.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_checker.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_clause.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_collect.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_compact.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_condition.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_config.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_congruence.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_constrain.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_contract.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_cover.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_decide.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_decompose.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_deduplicate.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_definition.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_drattracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_elim.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_elimfast.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_ema.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_extend.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_external.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_external_propagate.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_factor.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_file.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_flags.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_flip.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_format.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_frattracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_gates.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_idruptracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_instantiate.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_internal.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_ipasir.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_lidruptracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_limit.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_logging.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_lookahead.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_lratchecker.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_lrattracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_lucky.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_message.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_minimize.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_occs.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_options.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_parse.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_phases.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_probe.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_profile.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_proof.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_propagate.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_queue.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_random.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_reap.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_reduce.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_rephase.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_report.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_resources.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_restart.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_restore.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_score.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_shrink.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_signal.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_solution.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_solver.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_stable.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_stats.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_subsume.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_sweep.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_terminal.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_ternary.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_tier.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_transred.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_unstable.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_util.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_var.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_veripbtracer.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_version.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_vivify.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_walk.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_walk_full_occs.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_warmup.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadical_watch.cpp
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadicalSolver.c
# End Source File
# Begin Source File
SOURCE=.\src\sat\cadical\cadicalTest.c
# End Source File
# End Group
# End Group
# Begin Group "opt"
# PROP Default_Filter ""
# Begin Group "fxu"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\fxu\fxu.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxu.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuCreate.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuHeapD.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuHeapS.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuList.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuMatrix.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuPair.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuPrint.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuReduce.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuSelect.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuSingle.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxu\fxuUpdate.c
# End Source File
# Begin Group "untk"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\untk\NtkCmd.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\untk\Netlist.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\untk\NtkNtk.cpp
# End Source File
# End Group
# Begin Group "ufar"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\ufar\UfarCmd.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\ufar\UfarMgr.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\ufar\UfarPth.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\ufar\UfarPth.h
# End Source File
# End Group
# Begin Group "util"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\util\util.cpp
# End Source File
# End Group
# Begin Group "rar"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\rar\rewireMap.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireMiaig.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireRar.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireRng.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireTime.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireTt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireVec.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireMap.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireMiaig.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireRar.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rar\rewireRng.c
# End Source File
# End Group
# Begin Group "rwr"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\rwr\rwr.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrDec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrEva.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrExp.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrLib.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrPrint.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrTemp.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwr\rwrUtil.c
# End Source File
# End Group
# Begin Group "cut"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\cut\cut.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutApi.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutCut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutExpand.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutList.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutNode.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutOracle.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutPre22.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutSeq.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cut\cutTruth.c
# End Source File
# End Group
# Begin Group "sim"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\sim\sim.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSeq.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSupp.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSwitch.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSym.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSymSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSymSim.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simSymStr.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sim\simUtils.c
# End Source File
# End Group
# Begin Group "ret"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\ret\retArea.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retDelay.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retFlow.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retIncrem.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retInit.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\ret\retLvalue.c
# End Source File
# End Group
# Begin Group "res"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\res\res.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resDivs.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resFilter.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resSim.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resStrash.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\res\resWin.c
# End Source File
# End Group
# Begin Group "lpk"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\lpk\lpk.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkAbcDec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkAbcDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkAbcMux.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkAbcUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkCut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkMap.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkMulti.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkMux.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\lpk\lpkSets.c
# End Source File
# End Group
# Begin Group "mfs"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\mfs\mfs.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsDiv.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsInter.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsResub.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsStrash.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\mfs\mfsWin.c
# End Source File
# End Group
# Begin Group "cgt"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\cgt\cgt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtAig.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtDecide.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\cgt\cgtSat.c
# End Source File
# End Group
# Begin Group "csw"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\csw\csw.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\csw\cswCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\csw\cswCut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\csw\cswInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\csw\cswMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\csw\cswTable.c
# End Source File
# End Group
# Begin Group "dar"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\dar\dar.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darBalance.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darCut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darData.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darLib.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darPrec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darRefact.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darResub.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dar\darScript.c
# End Source File
# End Group
# Begin Group "rwt"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\rwt\rwt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwt\rwtDec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwt\rwtMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\rwt\rwtUtil.c
# End Source File
# End Group
# Begin Group "nwk"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\nwk\ntlnwk.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwk.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkAig.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkBidec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkFanio.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkFlow.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkMap.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkMerge.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkObj.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkSpeedup.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkStrash.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkTiming.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\nwk\nwkUtil.c
# End Source File
# End Group
# Begin Group "dau"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\dau\dau.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dau.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauCount.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauDivs.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauEnum.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauGia.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauNonDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauNpn.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauNpn2.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dau\dauTree.c
# End Source File
# End Group
# Begin Group "sfm"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\sfm\sfm.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmArea.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmDec.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmLib.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmMit.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmNtk.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmTim.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sfm\sfmWin.c
# End Source File
# End Group
# Begin Group "fret"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\fret\fretFlow.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fret\fretime.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\fret\fretInit.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fret\fretMain.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fret\fretTime.c
# End Source File
# End Group
# Begin Group "fxch"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\fxch\Fxch.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxch\Fxch.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxch\FxchDiv.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxch\FxchMan.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\fxch\FxchSCHashTable.c
# End Source File
# End Group
# Begin Group "dsc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\dsc\dsc.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\dsc\dsc.h
# End Source File
# End Group
# Begin Group "sbd"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\sbd\sbd.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbd.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdCore.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdCut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdCut2.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdInt.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdLut.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdPath.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdSat.c
# End Source File
# Begin Source File
SOURCE=.\src\opt\sbd\sbdWin.c
# End Source File
# End Group
# Begin Group "eslim"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\opt\eslim\areaEngine.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\areaEngine.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\cadicalSolver.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\delayEngine.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\delayEngine.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\eSLIM.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\eSLIM.h
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\eslimCirMan.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\eslimCirMan.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\eSLIMMan.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\relationGeneration.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\relationGeneration.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\relationSynthesiser.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\relationSynthesiser.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\selectionStrategies.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\subcircuit.cpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\subcircuit.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\synthesisEngines.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\tabooList.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\utils.hpp
# End Source File
# Begin Source File
SOURCE=.\src\opt\eslim\windowMan.hpp
# End Source File
# End Group
# End Group
# Begin Group "map"
# PROP Default_Filter ""
# Begin Group "mapper"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\mapper\mapper.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapper.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperCore.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperCreate.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperCut.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperCutUtils.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperFanout.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperInt.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperLib.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperMatch.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperRefs.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperSuper.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperSwitch.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperTable.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperTime.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperTree.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperUtils.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mapper\mapperVec.c
# End Source File
# End Group
# Begin Group "mio"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\mio\exp.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mio.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mio.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioApi.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioFunc.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioInt.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioParse.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioRead.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioSop.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mio\mioUtils.c
# End Source File
# End Group
# Begin Group "super"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\super\super.c
# End Source File
# Begin Source File
SOURCE=.\src\map\super\super.h
# End Source File
# Begin Source File
SOURCE=.\src\map\super\superAnd.c
# End Source File
# Begin Source File
SOURCE=.\src\map\super\superGate.c
# End Source File
# Begin Source File
SOURCE=.\src\map\super\superInt.h
# End Source File
# End Group
# Begin Group "if"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\if\if.h
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifCache.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifCom.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifCore.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifCount.h
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifCut.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifData2.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec07.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec08.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec10.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec16.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec66.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDec75.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDelay.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifLibBox.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifLibLut.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifMan.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifMap.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifMatch2.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifReduce.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifSat.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifSelect.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifSeq.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifTest.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifTime.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifTune.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\acd\ac_wrapper.cpp
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifTrace.c
# End Source File
# Begin Source File
SOURCE=.\src\map\if\ifDecJ.c
# End Source File
# End Group
# Begin Group "amap"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\amap\amap.h
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapCore.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapGraph.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapInt.h
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapLib.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapLiberty.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapMan.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapMatch.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapMerge.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapOutput.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapParse.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapPerm.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapRead.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapRule.c
# End Source File
# Begin Source File
SOURCE=.\src\map\amap\amapUniq.c
# End Source File
# End Group
# Begin Group "cov"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\cov\cov.h
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covBuild.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covCore.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covInt.h
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covMan.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covMinEsop.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covMinMan.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covMinSop.c
# End Source File
# Begin Source File
SOURCE=.\src\map\cov\covMinUtil.c
# End Source File
# End Group
# Begin Group "scl"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\scl\scl.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\scl.h
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclBuffer.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclBufSize.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclCon.h
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclDnsize.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclLib.h
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclLiberty.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclLibScl.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclLibUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclLoad.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclSize.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclSize.h
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclTime.h
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclUpsize.c
# End Source File
# Begin Source File
SOURCE=.\src\map\scl\sclUtil.c
# End Source File
# End Group
# Begin Group "mpm"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\mpm\mpm.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpm.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmCore.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmGates.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmInt.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmLib.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmMan.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmMap.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmMig.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmMig.h
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmPre.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\map\mpm\mpmUtil.c
# End Source File
# End Group
# Begin Group "emap"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\map\emap\emap.c
# End Source File
# Begin Source File
SOURCE=.\src\map\emap\emap.h
# End Source File
# Begin Source File
SOURCE=.\src\map\emap\emapCore.c
# End Source File
# End Group
# End Group
# Begin Group "misc"
# PROP Default_Filter ""
# Begin Group "extra"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\extra\extra.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilBitMatrix.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilCfs.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilCube.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilEnum.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilFile.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilGen.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilMacc.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilMaj.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilMemory.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilMisc.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilMult.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilPath.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilPerm.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilPrime.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilProgress.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilReader.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilSupp.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\extra\extraUtilUtil.c
# End Source File
# End Group
# Begin Group "st"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\st\st.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\st\st.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\st\stmm.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\st\stmm.h
# End Source File
# End Group
# Begin Group "mvc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\mvc\mvc.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvc.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcApi.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcCompare.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcContain.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcCover.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcCube.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcDivide.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcDivisor.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcList.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcLits.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcMan.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcOpAlg.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcOpBool.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcPrint.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcSort.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mvc\mvcUtils.c
# End Source File
# End Group
# Begin Group "vec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\vec\vec.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecAtt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecBit.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecFlt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecHash.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecHsh.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecInt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecMem.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecPtr.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecQue.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecSet.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecStr.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecVec.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecWec.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\vec\vecWrd.h
# End Source File
# End Group
# Begin Group "util"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\util\abc_global.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\util_hack.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilBridge.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilBSet.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilCex.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilCex.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilColor.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilDouble.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilFile.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilFloat.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilIsop.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilMem.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilMem.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilNam.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilNam.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilPth.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilPrefix.cpp
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilSignal.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilSignal.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilSort.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilTruth.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilBipart.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilLinear.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilMiniver.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilMulSim.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilAigSim.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\util\utilNet.c
# End Source File
# End Group
# Begin Group "nm"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\nm\nm.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\nm\nmApi.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\nm\nmInt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\nm\nmTable.c
# End Source File
# End Group
# Begin Group "hash"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\hash\hash.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\hash\hashFlt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\hash\hashInt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\hash\hashPtr.h
# End Source File
# End Group
# Begin Group "bzlib"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\bzlib\blocksort.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\bzlib.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\bzlib.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\bzlib_private.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\compress.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\crctable.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\decompress.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\huffman.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bzlib\randtable.c
# End Source File
# End Group
# Begin Group "zlib"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\zlib\adler32.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\compress_.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\crc32.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\crc32.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\deflate.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\deflate.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\gzclose.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\gzguts.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\gzlib.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\gzread.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\gzwrite.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\infback.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inffast.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inffast.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inffixed.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inflate.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inflate.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inftrees.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\inftrees.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\trees.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\trees.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\uncompr.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\zconf.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\zlib.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\zutil.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\zlib\zutil.h
# End Source File
# End Group
# Begin Group "bar"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\bar\bar.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bar\bar.h
# End Source File
# End Group
# Begin Group "bbl"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\bbl\bblif.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\bbl\bblif.h
# End Source File
# End Group
# Begin Group "mem"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\mem\mem.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\mem\mem.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\mem\mem2.h
# End Source File
# End Group
# Begin Group "tim"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\tim\tim.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\tim.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timBox.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timDump.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timInt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timMan.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timTime.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\tim\timTrav.c
# End Source File
# End Group
# Begin Group "parse"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\parse\parseEqn.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\parse\parseInt.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\parse\parseStack.c
# End Source File
# End Group
# Begin Group "btor"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\misc\btor\btor2mem.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\btor\btor2parser.c
# End Source File
# Begin Source File
SOURCE=.\src\misc\btor\btor2parser.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\btor\btor2stack.h
# End Source File
# Begin Source File
SOURCE=.\src\misc\btor\catbtor.c
# End Source File
# End Group
# End Group
# Begin Group "ai"
# PROP Default_Filter ""
# Begin Group "hop"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\hop\hop.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopBalance.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopMan.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopMem.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopObj.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopOper.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopTable.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\hop\hopUtil.c
# End Source File
# End Group
# Begin Group "ivy"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\ivy\ivy.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyBalance.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyCut.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyCutTrav.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyFanout.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyFastMap.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyFraig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyHaig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyMan.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyMem.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyMulti.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyObj.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyOper.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyResyn.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyRwr.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivySeq.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyShow.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyTable.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ivy\ivyUtil.c
# End Source File
# End Group
# Begin Group "ioa"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\ioa\ioa.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\ioa\ioaReadAig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ioa\ioaUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\ioa\ioaWriteAig.c
# End Source File
# End Group
# Begin Group "aig"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\aig\aig.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigCuts.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigDoms.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigDup.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigFact.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigFanout.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigFrames.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigInter.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigJust.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigMan.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigMem.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigMffc.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigObj.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigOper.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigOrder.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigPack.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigPart.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigPartReg.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigPartSat.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigRepr.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigRet.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigRetF.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigScl.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigShow.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigSplit.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigTable.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigTiming.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigTsim.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\aig\aigWin.c
# End Source File
# End Group
# Begin Group "saig"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\saig\saig.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigCone.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigConstr.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigConstr2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigDual.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigDup.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigInd.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigIoa.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigIso.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigIsoFast.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigIsoSlow.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigMiter.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigOutDec.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigPhase.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigRetFwd.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigRetMin.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigRetStep.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigScl.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigSimFast.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigSimMv.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigSimSeq.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigStrSim.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigSwitch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigSynch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigTempor.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigTrans.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\saig\saigWnd.c
# End Source File
# End Group
# Begin Group "gia"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\gia\gia.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\gia.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaAig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaAig.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaAiger.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaAigerExt.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBalAig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBalLut.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBalMap.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBidec.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBound.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaBsFind.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCCof.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCex.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaClp.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCof.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCone.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSat.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSat2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSat3.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSatOld.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSatP.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCSatP.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCTas.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaCut.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaDecs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaDeep.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaDfs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaDup.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEdge.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEmbed.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEnable.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEquiv.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEra.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEra2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaEsop.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaExist.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaFalse.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaFanout.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaForce.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaFrames.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaFront.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaFx.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaGen.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaGig.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaGlitch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaHash.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIff.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIiff.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIiff.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIso.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIso2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaIso3.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaJf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaKf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaLf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMan.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMem.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMfs.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMini.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMinLut.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMinLut2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMulFind.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMuxes.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaNewBdd.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaNewTt.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaNf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaOf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaPack.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaPat.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaPat2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaPf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaQbf.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaReshape1.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaReshape2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaResub.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaResub2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaResub3.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaResub6.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaRetime.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaRex.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaRrr.cpp
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSat3.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatEdge.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatLE.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatLut.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatMap.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatoko.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSatSyn.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaScl.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaScript.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaShow.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaShrink.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaShrink6.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaShrink7.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSif.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSim.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSim2.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSimBase.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSort.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSpeedup.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSplit.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaStg.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaStoch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaStr.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSupMin.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSupp.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSupps.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSweep.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSweeper.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaSwitch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTim.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTis.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTruth.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTsim.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTtopt.cpp
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTransduction.cpp
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTransduction.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaTranStoch.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaUnate.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaDecGraph.cpp
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaAgi.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaLutCas.c
# End Source File
# Begin Source File
SOURCE=.\src\aig\gia\giaMulFind3.c
# End Source File
# End Group
# Begin Group "miniaig"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\aig\miniaig\abcOper.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\miniaig\miniaig.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\miniaig\minilut.h
# End Source File
# Begin Source File
SOURCE=.\src\aig\miniaig\ndr.h
# End Source File
# End Group
# End Group
# Begin Group "bool"
# PROP Default_Filter ""
# Begin Group "bdc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\bdc\bdc.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\bdc\bdcCore.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\bdc\bdcDec.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\bdc\bdcInt.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\bdc\bdcSpfd.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\bdc\bdcTable.c
# End Source File
# End Group
# Begin Group "dec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\dec\dec.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\dec\decAbc.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\dec\decFactor.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\dec\decMan.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\dec\decPrint.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\dec\decUtil.c
# End Source File
# End Group
# Begin Group "deco"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\deco\deco.h
# End Source File
# End Group
# Begin Group "kit"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\kit\cloud.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\cloud.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kit.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitAig.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitBdd.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitCloud.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitDec.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitDsd.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitFactor.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitGraph.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitHop.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitIsop.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitPerm.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitPla.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitSop.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\kit\kitTruth.c
# End Source File
# End Group
# Begin Group "lucky"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\lucky\lucky.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\lucky.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckyFast16.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckyFast6.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckyInt.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckyRead.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckySimple.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckySwap.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\lucky\luckySwapIJ.c
# End Source File
# End Group
# Begin Group "rsb"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\rsb\rsb.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\rsb\rsbDec6.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\rsb\rsbInt.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\rsb\rsbMan.c
# End Source File
# End Group
# Begin Group "rpo"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\bool\rpo\literal.h
# End Source File
# Begin Source File
SOURCE=.\src\bool\rpo\rpo.c
# End Source File
# Begin Source File
SOURCE=.\src\bool\rpo\rpo.h
# End Source File
# End Group
# Begin Group "prove"
# PROP Default_Filter ""
# Begin Group "cec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\cec\cec.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecCec.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecChoice.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecCorr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecCorrIncr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecIso.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecPat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecProve.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSatG.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSatG2.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSatG3.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSeq.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSolve.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSolveG.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSplit.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSweep.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\cec\cecSynth.c
# End Source File
# End Group
# End Group
# Begin Group "dch"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\dch\dch.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchAig.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchChoice.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchSim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchSimSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\dch\dchSweep.c
# End Source File
# End Group
# Begin Group "fra"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\fra\fra.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraBmc.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraCec.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraClau.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraClaus.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraHot.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraImp.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraInd.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraIndVer.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraLcr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraPart.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraSec.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fra\fraSim.c
# End Source File
# End Group
# Begin Group "fraig"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\fraig\fraig.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigApi.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigCanon.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigChoice.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigFanout.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigFeed.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigMem.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigNode.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigPrime.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigTable.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\fraig\fraigVec.c
# End Source File
# End Group
# Begin Group "int"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\int\int.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intCheck.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intContain.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intCtrex.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intDup.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intFrames.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intInter.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intM114.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\int\intUtil.c
# End Source File
# End Group
# Begin Group "live"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\live\arenaViolation.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\combination.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\disjunctiveMonotone.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\kLiveConstraints.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\kliveness.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\liveness.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\liveness_sim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\ltl_parser.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\live\monotone.c
# End Source File
# End Group
# Begin Group "pdr"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\pdr\pdr.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrIncr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrInv.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrTsim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrTsim2.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrTsim3.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\pdr\pdrUtil.c
# End Source File
# End Group
# Begin Group "ssw"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\ssw\ssw.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswAig.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswBmc.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswCnf.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswConstr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswDyn.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswFilter.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswIslands.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswLcorr.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswMan.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswPairs.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswPart.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswRarity.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswRarity2.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswSemi.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswSim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswSimSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswSweep.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssw\sswUnique.c
# End Source File
# End Group
# Begin Group "abs"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\abs\abs.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\abs.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absDup.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absGla.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absGlaOld.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absIter.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absOldCex.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absOldRef.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absOldSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absOldSim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absOut.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absPth.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absRef.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absRef.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absRefSelect.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absRpm.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absRpmOld.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\abs\absVta.c
# End Source File
# End Group
# Begin Group "ssc"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\ssc\ssc.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscClass.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscSat.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscSim.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\ssc\sscUtil.c
# End Source File
# End Group
# Begin Group "int2"
# PROP Default_Filter ""
# End Group
# Begin Group "acec"
# PROP Default_Filter ""
# Begin Source File
SOURCE=.\src\proof\acec\acec.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acec2Mult.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecBo.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecCl.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecCo.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecCore.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecCover.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecFadds.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecInt.h
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecMult.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecNorm.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecOrder.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecPa.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecPo.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecPolyn.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecPool.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecRe.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecSt.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecStruct.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecTree.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecUtil.c
# End Source File
# Begin Source File
SOURCE=.\src\proof\acec\acecXor.c
# End Source File
# End Group
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# End Group
# End Group
# End Target
# End Project
abc-0.65/abcspace.dsw 0000664 0000000 0000000 00000001451 15200543000 0014437 0 ustar 00root root 0000000 0000000 Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "abcexe"=.\abcexe.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name abclib
End Project Dependency
}}}
###############################################################################
Project: "abclib"=.\abclib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################
abc-0.65/arch_flags.c 0000664 0000000 0000000 00000000543 15200543000 0014415 0 ustar 00root root 0000000 0000000 #include
int main()
{
if (sizeof(void*) == 8) // Assume 64-bit Linux if pointers are 8 bytes.
printf("-DLIN64 ");
else
printf("-DLIN ");
printf("-DSIZEOF_VOID_P=%d -DSIZEOF_LONG=%d -DSIZEOF_INT=%d\n",
(int)sizeof(void*),
(int)sizeof(long),
(int)sizeof(int) );
return 0;
}
abc-0.65/copyright.txt 0000664 0000000 0000000 00000002151 15200543000 0014726 0 ustar 00root root 0000000 0000000 ABC: System for Sequential Synthesis and Verification
http://www.eecs.berkeley.edu/~alanmi/abc/
Copyright (c) The Regents of the University of California. All rights reserved.
Permission is hereby granted, without written agreement and without license or
royalty fees, to use, copy, modify, and distribute this software and its
documentation for any purpose, provided that the above copyright notice and
the following two paragraphs appear in all copies of this software.
IN NO EVENT SHALL THE UNIVERSITY OF CALIFORNIA BE LIABLE TO ANY PARTY FOR
DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING OUT OF
THE USE OF THIS SOFTWARE AND ITS DOCUMENTATION, EVEN IF THE UNIVERSITY OF
CALIFORNIA HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
THE UNIVERSITY OF CALIFORNIA SPECIFICALLY DISCLAIMS ANY WARRANTIES, INCLUDING,
BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
A PARTICULAR PURPOSE. THE SOFTWARE PROVIDED HEREUNDER IS ON AN "AS IS" BASIS,
AND THE UNIVERSITY OF CALIFORNIA HAS NO OBLIGATION TO PROVIDE MAINTENANCE,
SUPPORT, UPDATES, ENHANCEMENTS, OR MODIFICATIONS.
abc-0.65/depends.sh 0000775 0000000 0000000 00000000353 15200543000 0014140 0 ustar 00root root 0000000 0000000 #!/bin/sh
#echo "## Got: $*"
CC="$1"
DIR="$2"
shift 2
case "$DIR" in
"" | ".")
$CC -MM -MG "$@" | sed -e 's@^\(.*\)\.o:@\1.d \1.o:@'
;;
*)
$CC -MM -MG "$@" | sed -e "s@^\(.*\)\.o:@$DIR/\1.d $DIR/\1.o:@"
;;
esac
abc-0.65/i10.aig 0000664 0000000 0000000 00000034550 15200543000 0013240 0 ustar 00root root 0000000 0000000 aig 2932 257 0 224 2675
886
1864
2106
2108
2155
2164
2389
2491
2509
2461
2754
2787
2789
2817
2821
2834
2864
2866
2868
2870
2872
2912
2958
3004
3056
3108
3160
3214
3262
3303
3325
3349
3417
3487
3557
3651
3745
3841
3873
67
3876
3887
3897
3907
3917
3940
3948
2784
3962
3955
93
766
578
4068
2126
4072
2124
4082
4084
4086
4088
2128
2116
4233
4234
555
4243
4255
4276
4298
3261
3213
3159
3107
3055
3003
2957
2911
979
1367
1199
1319
2355
2279
2317
3393
3461
3531
3639
3733
3829
887
4300
4330
2136
2120
4332
4334
4336
2118
4338
4340
4342
4344
4381
4437
4449
4461
4473
4485
4497
4512
317
4516
4546
4554
4564
4574
2122
4595
2132
4596
4598
4600
2134
4604
4611
4613
4635
4651
4667
4672
4683
45
4699
353
4755
4779
4799
4735
4802
4808
4823
4841
5120
5266
5279
5295
5301
5311
5364
383
5367
5399
5411
5423
5435
5447
5459
5477
2178
5487
5492
4209
5499
2505
5503
5517
413
5527
5537
5547
5557
5567
5577
5587
5597
5607
5617
5627
5637
5647
5653
5662
385
423
81
5671
5677
5683
5689
5693
5697
4895
4933
4983
5021
5065
5103
4846
5161
5175
5201
5215
5235
5249
4861
5131
5141
5717
5735
5755
5773
5785
5795
5805
5813
5821
5827
5833
5843
5851
5859
5865
—1––•›Ÿ£Ú¡Üâ䫿ì
!·Uœ»¹ ©ËÑÄXÄʰÐÎØÎÚØÜÂâÞãìâîçü€ƒj礥َ‘r—0––•
ì˨/‘æ)2:7!-•2€M=!
X*©‹ÈÃ^Žj™©ñÔ¬²àëý6¸ðïïóûÃþý
ÄÌÃÐýŠþô
£à>ü椞ÃË8¾„ƒÓ9Æ‹,E%À‹Õí˜Ù rˆÄ½†è¿ÅÖ—æ÷æûæÿô
ƒù')³Çˆ¸®‹û*ÖÇ[`bäc·ý·ÅR[cYg\êøôü824þ€‹ !#229;ÃÄ¥ªVXWXVV¾ ¾ÉÌÍ$¹ÔËÚÛÖ†‡D‘Ãæ–ªéݲ£Ý·¼¾è¿’––šš•²™ ™3Î4 ßàÁÆ ‚‚„„ÔÕttþÿ ‰ÁÞŽ¨áÕª›Õ¯´¶ê·Ñר֬®¯¹Å޾¬‘…ÚË…ßäææç½øˆU¬6Ñâ”A”—B—í﫩ǵüËc®dÐЗdýÄÅ©#ÌÿÒÓ<²³8“‘óÍÀ÷ûò?¼B¼88€((Þß ÇÅ÷uìE<Dòó«©åüˆÿD мI¼¿J¿•—ÕÓý§¤UÖÈ\††Ï\ìíáô¯úû<ÚÛ8½»»è±éš?öBö88¨©((†‡ ñï¯e”E<Dš›ÕÓ
€ˆ©DìOšìŸñÔš¤ú¸
¸
‚@ƒ@ aÙd×¥ë¨éÕ
Ф:¥:éåì㯰ñAô?÷
þÆ4Ç4ðIñKþ3ÿ5ÔíÕï™
¬Ñå§wmM-
ø#ù%¢7£9°'±)†Ñ‡ÓË
À
õ¥ø£Í÷Ðõ—»š¹Ë]Î[í
ä
íÏðÍšȟå’ãÇƅ
ˆÝP‚ŒÞ Œ«”å몪ô?õAž}Ÿ¬ac‚çƒéÇ
–9—;ÀqÁsÎQÏS¤Ù¥Ûé
ð¸3¹5âeãgðAñCÆùÇû‹
žÁÿ ŸwmM-
¬Ò
”׬°,œÂ„ܼ&À$æ*„½ê,®À
ênõöÞß°®®ƒúï
›
ߺÃÛÑ»çÉýü…§‹…« “‹ »ý¹ïÍ }£ óÑ¿‰ Í— ¿¥”Ä—°àÑ‹ˆ¼’”ð
ô
ö
Ô÷
壺ꎽֆ
÷±³®º¸º–šœÒ‹
§à
’ãü¬
×ÙÔ¾Þà¼ÀÂÖÃs¦M)¸ÊÆÄÂÆÌÒØ±Ì´¯ä¬«
6¯ßÙœ»œŒðð؉ÄÁŒÅëªâ˪ÒÅÛ³šé䊡Å5Ú
œè¤ý ¤²¦Q¬ aw
¯Må7ç0ª¬Ä¨ó
Öö
Öñ â ô â “Ä–ÄÚÆÖ¢„è ¸œ”«ÄØ“zØÁˆUîùêåÔøÛØ× ‘,¢£•˜ Ÿ¢Îγ¶µ¸úûñô€€0’…øÐÖ}¨‹©n£ð¾Ú«ùºÙƒäÕ
—‘‘éÿ•·Øâ™™¼ÒØÃÛÙ§‚ðΊ¶ý¸ŽG¾lôéäôåï ΠЗší‡ï´Ú®âœàϯ Š…øƒ‹³…
»ßãåßÍ…½¢½É’°•ÝͱŒçìîÞïëõéåÊå˺경…õÙ´µ¯º–šœà™£‹“ø“Í蘴볣‡âãÞ
èÄÈÊâËÇщÁ¦Áϖƶ™áѵ‘‹Í‹Ž›œ
øüþäÿû…õÚõÑÊú¸Í•…éÄſ˿ÂÏÐ
¬°²æ³¯¹‡©Ž©Óþ®ºÉ¹øùóÉóöƒ„
à俨çãíÝÂÝղ⼵ýíѬ¨Ì©Ç©¹º–šœÚ™×â’¾åàÜÝØÊÙÁÙéêÆÊÌÜÍÉÇO‘øÊÙ½ïÒâæâG£ˆâêIä
¼
ôþÿ #ñâ
Š.-”“‘8;1“¡è˜Œë„´¥ßáÜÈÝ¿ÝíîÊÎÐÐÑ–ÎrqŒÌÕÓ|uן¬ÜŠ¯Èøé£¥ Æ¡½¡±²Ž’”Εڒ¶µÐÈœ™—ÂÅ»ò¢ˆõ޾¯éëæÄç»ç÷øÔØÚÌÛ Øüû” ÊâÝÛˆ‹»õô–‹® Æøþ÷õ¤§ý›Ò‚†ÕñÚ— ¨ü
Ö×ÒÂÓÉÓãäÀÄÆÊÇŒÄèçA™óÒôéŠ
ÈÖÜÓÑ‚…ûÛ™°à„³ûë϶õþ†Ú
´µ°À±Ç±Áž¢¤È¥ê¢ÆÅA÷ñ°ÒÇè
ݶ¼±¯âåÛ»—À‚“Û˯”ÕÞæº
”•Ƒő¡¢þ‚„Æ…Ê‚¦¥A×ï²§½ËÀɺ½³ŸÌ¢ÆÅ ó„Þàã¹
¯
¾
Á
¯Æ
É
¯!Î
%¡¼
Ñ
¯ ¦à©ñº¯
ß
ìÅíÇœ•½ÀœÁ¢þ
ßü· ÉÖ–©Žþ
Ó‰è ðì¥î ô´ôø £‘ù£á€
œ‡£¼¤Ž‹Åùõ –Ú²œÜïÔ )³[®óÜ´ÕÖÁŸÇàÝà¦âäT‡<¾êÄÇ òòÉÏŽÆŠüžŠÏÝ̰²µ´·º³·ážá¬ÕÏÌçç–.ÞܱÌè Ë ÆöŽ Ì—æàÄ£À© Ò¾
šë®è EæÌ Q‡Ð®³ìÒ ëôÐ ëæà¸ùµsŠ“ Õ„ÉÏœ’ dß1Ó¡!ëšæ¼º
Ç‚!Ûê‹
°ñ"ñ¶˜½! Õ!À˜Í!ŠÐÜ æ à Ζž®ÌÞ!•öò
™â
§æƒ‹ãƒ“ºêÖ¾ ¯ü8˜–ü¡ˆ
¯³õŽ
ÖÚñŽ Å!!Í!Ë!¨
Œ "º!"$Š ').¼!.0ˆ 35:¾!:<† ?AFÀ!FH„ KMR¢!R˜å
‡“ª•Ì€#õ‚®â š°N€äÿ 軌®õ â Í«îæ‡#âÍõ¼#ìí Þ·#ìš#öæ¸ã"Ê"é"è"À#òç
Ð"ÅŽ¨â"Væ"Tž¶Ì!‰¥Ð!È‹ËÈ!Æ!Æ!Æ!î 4â!è"ã!ë"B¯"ä"Ì!ô!Ì!ø!Ç!Ê!Ú!„"Ú!ˆ"½Ñàæ!ùžÂýȤî!±ó!²§$ó!¦"ФÙùö!±Ý€"É$Ó$&°×ÌФööÀ$ ©×"›¿³“óÓ©ïÀ³í᫹ë)Â.‘£ŸÍÿ=ä‚’#Û"é˜# !Íì‡ò´žŽù#ü#³!€ ›ê °î£ß¶ì©å»‰¯ìÀ¾»ËýÇ“ÄÓ…Ï‘ËÜ Ü¼×ç™ã‘àï¡ëçø©ó•ïÿ²%'GIŽº‰™Ë•’¡Ó™ªÛ¥—¡±ä´¸¯¿ñ»¸ÇùË¿ÐË™Ç׊%'à¶Ûëç‹äó¥ï‰ëü÷›óƒ¶†À‘Ã•Š™Ë•‡‘¢Ó™©Ü%'QS©«¼êŠ¿çÆè”Éå— âúÕ‘çëÜ—ðøãŸõéê¥
!#Šöý¹ç„¿˜ô‹Çå’Í
¬òŸÛ±ã¦áºðé¿á´ï
!#IK–ܨ&Á µÚ$¬&Ö°&Ò‘•œ¿½
¨Ò€‹Ê$ß™)åÀ&(ë&´é&˜(Ä&TÆ&á$… » › Ë)éþÍ„ Ó Ž
é
Ê•Â%Ü-ß$´ º ç%ýÞ(üÜÑÝ%Ë'†' º „' þ( ‚'%',€),&€'138‚)82þ&=?D„)D>ü&IKPæ(Pö$»×ú
Ê'÷'…ü¶&Ô'dº%¦•설Æ&Ó)Ï&‘ê*í&á'¸ò&î&ø
‚ é'Ø(¢%å¢%¥%„¥%¬%ç¬%¯%‚¯%æÏµ%º%ûº% Ÿ¿%Ä%ýÄ%„„ˆ+Ä$Ç‹+Ú¸’+ˆ•+¾Þœ+ÂÝŸ+”’¦+‚§©+ÚÖ°+Àó³+žœº+þ¿½+¼ˆÄ+¼‹Ç+èæÎ+ôÝÑ+’ÆØ+¬¯Û+º!¨
â+VÍÇ&½™)Œï)–€ ù(‚݈¬ ÷(”
õ(š
Œó(ñ(ö¹Ó'Âþ“¦)€¼ ß(œ*Й'è(Â(³ Ú µ º» Û —á½ ý(€)Ê ¦«ßÑ ž,œ,œ,œ,œ,œ,ƒ++š,¨,¨,±,¯,˜,²,¹,·,(–,¼,Ç,Å,2”,É,Ç,Î,Ù,×,Ö,×,
· ï º í Ä Ä!†++‹+Î Â!“+‘+˜+Ÿ++ +¡+ i0 V32(0)
i1 V32(1)
i2 V32(2)
i3 V32(3)
i4 V56(0)
i5 V289(0)
i6 V10(0)
i7 V13(0)
i8 V35(0)
i9 V203(0)
i10 V288(6)
i11 V288(7)
i12 V248(0)
i13 V249(0)
i14 V62(0)
i15 V59(0)
i16 V174(0)
i17 V215(0)
i18 V66(0)
i19 V70(0)
i20 V43(0)
i21 V214(0)
i22 V37(0)
i23 V271(0)
i24 V40(0)
i25 V45(0)
i26 V149(7)
i27 V149(6)
i28 V149(5)
i29 V149(4)
i30 V1(0)
i31 V7(0)
i32 V34(0)
i33 V243(0)
i34 V244(0)
i35 V245(0)
i36 V246(0)
i37 V247(0)
i38 V293(0)
i39 V302(0)
i40 V270(0)
i41 V269(0)
i42 V274(0)
i43 V202(0)
i44 V275(0)
i45 V257(7)
i46 V257(5)
i47 V257(3)
i48 V257(1)
i49 V257(2)
i50 V257(4)
i51 V257(6)
i52 V9(0)
i53 V149(0)
i54 V149(1)
i55 V149(2)
i56 V149(3)
i57 V169(1)
i58 V165(0)
i59 V165(2)
i60 V165(4)
i61 V165(5)
i62 V165(6)
i63 V165(7)
i64 V165(1)
i65 V88(2)
i66 V88(3)
i67 V55(0)
i68 V169(0)
i69 V52(0)
i70 V5(0)
i71 V6(0)
i72 V12(0)
i73 V11(0)
i74 V4(0)
i75 V165(3)
i76 V51(0)
i77 V65(0)
i78 V290(0)
i79 V279(0)
i80 V280(0)
i81 V288(4)
i82 V288(2)
i83 V288(0)
i84 V258(0)
i85 V229(5)
i86 V229(4)
i87 V229(3)
i88 V229(2)
i89 V229(1)
i90 V229(0)
i91 V223(5)
i92 V223(4)
i93 V223(3)
i94 V223(2)
i95 V223(1)
i96 V223(0)
i97 V189(5)
i98 V189(4)
i99 V189(3)
i100 V189(2)
i101 V189(1)
i102 V189(0)
i103 V183(5)
i104 V183(4)
i105 V183(3)
i106 V183(2)
i107 V183(1)
i108 V183(0)
i109 V239(4)
i110 V239(3)
i111 V239(2)
i112 V239(1)
i113 V239(0)
i114 V234(4)
i115 V234(3)
i116 V234(2)
i117 V234(1)
i118 V234(0)
i119 V199(4)
i120 V199(3)
i121 V199(2)
i122 V199(1)
i123 V199(0)
i124 V194(4)
i125 V194(3)
i126 V194(2)
i127 V194(1)
i128 V194(0)
i129 V257(0)
i130 V32(8)
i131 V32(7)
i132 V32(6)
i133 V32(5)
i134 V32(4)
i135 V32(11)
i136 V32(10)
i137 V32(9)
i138 V88(1)
i139 V88(0)
i140 V84(5)
i141 V84(4)
i142 V84(3)
i143 V84(2)
i144 V84(1)
i145 V84(0)
i146 V78(5)
i147 V78(4)
i148 V2(0)
i149 V3(0)
i150 V14(0)
i151 V213(0)
i152 V213(5)
i153 V213(4)
i154 V213(3)
i155 V213(2)
i156 V213(1)
i157 V268(5)
i158 V268(3)
i159 V268(1)
i160 V268(2)
i161 V268(4)
i162 V8(0)
i163 V60(0)
i164 V53(0)
i165 V57(0)
i166 V109(0)
i167 V277(0)
i168 V278(0)
i169 V259(0)
i170 V260(0)
i171 V67(0)
i172 V68(0)
i173 V69(0)
i174 V216(0)
i175 V175(0)
i176 V177(0)
i177 V172(0)
i178 V171(0)
i179 V50(0)
i180 V63(0)
i181 V71(0)
i182 V292(0)
i183 V291(0)
i184 V91(0)
i185 V91(1)
i186 V294(0)
i187 V207(0)
i188 V295(0)
i189 V204(0)
i190 V205(0)
i191 V261(0)
i192 V262(0)
i193 V100(0)
i194 V100(5)
i195 V100(4)
i196 V100(3)
i197 V100(2)
i198 V100(1)
i199 V240(0)
i200 V242(0)
i201 V241(0)
i202 V33(0)
i203 V16(0)
i204 V15(0)
i205 V101(0)
i206 V268(0)
i207 V288(1)
i208 V288(3)
i209 V288(5)
i210 V301(0)
i211 V108(0)
i212 V108(1)
i213 V108(2)
i214 V108(3)
i215 V108(4)
i216 V108(5)
i217 V124(5)
i218 V124(4)
i219 V124(3)
i220 V124(2)
i221 V124(1)
i222 V124(0)
i223 V132(7)
i224 V132(6)
i225 V132(5)
i226 V132(4)
i227 V132(3)
i228 V132(2)
i229 V132(1)
i230 V132(0)
i231 V118(5)
i232 V118(4)
i233 V118(3)
i234 V118(2)
i235 V118(1)
i236 V118(0)
i237 V118(7)
i238 V118(6)
i239 V46(0)
i240 V48(0)
i241 V102(0)
i242 V110(0)
i243 V134(1)
i244 V134(0)
i245 V272(0)
i246 V78(2)
i247 V78(3)
i248 V39(0)
i249 V38(0)
i250 V42(0)
i251 V44(0)
i252 V41(0)
i253 V78(1)
i254 V78(0)
i255 V94(0)
i256 V94(1)
o0 V321(2)
o1 V356
o2 V357
o3 V373
o4 V375(0)
o5 V377
o6 V393(0)
o7 V398(0)
o8 V410(0)
o9 V423(0)
o10 V432
o11 V435(0)
o12 V500(0)
o13 V508(0)
o14 V511(0)
o15 V512
o16 V527
o17 V537
o18 V538
o19 V539
o20 V540
o21 V541
o22 V542
o23 V543
o24 V544
o25 V545
o26 V546
o27 V547
o28 V548
o29 V572(9)
o30 V572(8)
o31 V572(7)
o32 V572(6)
o33 V572(5)
o34 V572(4)
o35 V572(3)
o36 V572(2)
o37 V572(1)
o38 V572(0)
o39 V585(0)
o40 V587
o41 V591(0)
o42 V597(0)
o43 V603(0)
o44 V609(0)
o45 V620
o46 V621
o47 V630
o48 V634(0)
o49 V640(0)
o50 V657
o51 V707
o52 V763
o53 V775
o54 V778
o55 V779
o56 V780
o57 V781
o58 V782
o59 V783
o60 V784
o61 V787
o62 V789
o63 V798(0)
o64 V801
o65 V802(0)
o66 V821(0)
o67 V826(0)
o68 V966
o69 V986
o70 V1213(11)
o71 V1213(10)
o72 V1213(9)
o73 V1213(8)
o74 V1213(7)
o75 V1213(6)
o76 V1213(5)
o77 V1213(4)
o78 V1213(3)
o79 V1213(2)
o80 V1213(1)
o81 V1213(0)
o82 V1243(9)
o83 V1243(8)
o84 V1243(7)
o85 V1243(6)
o86 V1243(5)
o87 V1243(4)
o88 V1243(3)
o89 V1243(2)
o90 V1243(1)
o91 V1243(0)
o92 V1256
o93 V1257
o94 V1258
o95 V1259
o96 V1260
o97 V1261
o98 V1262
o99 V1263
o100 V1264
o101 V1265
o102 V1266
o103 V1267
o104 V1274(0)
o105 V1281(0)
o106 V1297(4)
o107 V1297(3)
o108 V1297(2)
o109 V1297(1)
o110 V1297(0)
o111 V1365
o112 V1375
o113 V1378
o114 V1380
o115 V1382
o116 V1384
o117 V1386
o118 V1387
o119 V1392(0)
o120 V1423
o121 V1426
o122 V1428
o123 V1429
o124 V1431
o125 V1432
o126 V1439(0)
o127 V1440(0)
o128 V1451(0)
o129 V1459(0)
o130 V1467(0)
o131 V1470
o132 V1480(0)
o133 V1481(0)
o134 V1492(0)
o135 V1495(0)
o136 V1512(3)
o137 V1512(2)
o138 V1512(1)
o139 V1536(0)
o140 V1537
o141 V1539
o142 V1552(1)
o143 V1552(0)
o144 V1613(0)
o145 V1613(1)
o146 V1620(0)
o147 V1629(0)
o148 V1645(0)
o149 V1652(0)
o150 V1669
o151 V1671(0)
o152 V1679(0)
o153 V1693(0)
o154 V1709(4)
o155 V1709(3)
o156 V1709(2)
o157 V1709(1)
o158 V1709(0)
o159 V1717(0)
o160 V1719
o161 V1726(0)
o162 V1736
o163 V1741(0)
o164 V1745(0)
o165 V1757(0)
o166 V1758(0)
o167 V1759(0)
o168 V1760(0)
o169 V1771(1)
o170 V1771(0)
o171 V1781(1)
o172 V1781(0)
o173 V1829(9)
o174 V1829(8)
o175 V1829(7)
o176 V1829(6)
o177 V1829(5)
o178 V1829(4)
o179 V1829(3)
o180 V1829(2)
o181 V1829(1)
o182 V1829(0)
o183 V1832
o184 V1833(0)
o185 V1863(0)
o186 V1864(0)
o187 V1896(0)
o188 V1897(0)
o189 V1898(0)
o190 V1899(0)
o191 V1900(0)
o192 V1901(0)
o193 V1921(5)
o194 V1921(4)
o195 V1921(3)
o196 V1921(2)
o197 V1921(1)
o198 V1921(0)
o199 V1953(1)
o200 V1953(7)
o201 V1953(6)
o202 V1953(5)
o203 V1953(4)
o204 V1953(3)
o205 V1953(2)
o206 V1953(0)
o207 V1960(1)
o208 V1960(0)
o209 V1968(0)
o210 V1992(1)
o211 V1992(0)
o212 V650
o213 V651
o214 V652
o215 V653
o216 V654
o217 V655
o218 V656
o219 V1370
o220 V1371
o221 V1372
o222 V1373
o223 V1374
c
i10
This file was written by ABC on Sat Mar 12 12:08:09 2011
For information about AIGER format, refer to http://fmv.jku.at/aiger
abc-0.65/lib/ 0000775 0000000 0000000 00000000000 15200543000 0012724 5 ustar 00root root 0000000 0000000 abc-0.65/lib/pthread.h 0000664 0000000 0000000 00000121556 15200543000 0014536 0 ustar 00root root 0000000 0000000 /* This is an implementation of the threads API of POSIX 1003.1-2001.
*
* --------------------------------------------------------------------------
*
* Pthreads-win32 - POSIX Threads Library for Win32
* Copyright(C) 1998 John E. Bossom
* Copyright(C) 1999,2005 Pthreads-win32 contributors
*
* Contact Email: rpj@callisto.canberra.edu.au
*
* The current list of contributors is contained
* in the file CONTRIBUTORS included with the source
* code distribution. The list can also be seen at the
* following World Wide Web location:
* http://sources.redhat.com/pthreads-win32/contributors.html
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library in the file COPYING.LIB;
* if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined( PTHREAD_H )
#define PTHREAD_H
/*
* See the README file for an explanation of the pthreads-win32 version
* numbering scheme and how the DLL is named etc.
*/
#define PTW32_VERSION 2,8,0,0
#define PTW32_VERSION_STRING "2, 8, 0, 0\0"
/* There are three implementations of cancel cleanup.
* Note that pthread.h is included in both application
* compilation units and also internally for the library.
* The code here and within the library aims to work
* for all reasonable combinations of environments.
*
* The three implementations are:
*
* WIN32 SEH
* C
* C++
*
* Please note that exiting a push/pop block via
* "return", "exit", "break", or "continue" will
* lead to different behaviour amongst applications
* depending upon whether the library was built
* using SEH, C++, or C. For example, a library built
* with SEH will call the cleanup routine, while both
* C++ and C built versions will not.
*/
/*
* Define defaults for cleanup code.
* Note: Unless the build explicitly defines one of the following, then
* we default to standard C style cleanup. This style uses setjmp/longjmp
* in the cancelation and thread exit implementations and therefore won't
* do stack unwinding if linked to applications that have it (e.g.
* C++ apps). This is currently consistent with most/all commercial Unix
* POSIX threads implementations.
*/
#if !defined( __CLEANUP_SEH ) && !defined( __CLEANUP_CXX ) && !defined( __CLEANUP_C )
# define __CLEANUP_C
#endif
#if defined( __CLEANUP_SEH ) && ( !defined( _MSC_VER ) && !defined(PTW32_RC_MSC))
#error ERROR [__FILE__, line __LINE__]: SEH is not supported for this compiler.
#endif
/*
* Stop here if we are being included by the resource compiler.
*/
#ifndef RC_INVOKED
#undef PTW32_LEVEL
#if defined(_POSIX_SOURCE)
#define PTW32_LEVEL 0
/* Early POSIX */
#endif
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
#undef PTW32_LEVEL
#define PTW32_LEVEL 1
/* Include 1b, 1c and 1d */
#endif
#if defined(INCLUDE_NP)
#undef PTW32_LEVEL
#define PTW32_LEVEL 2
/* Include Non-Portable extensions */
#endif
#define PTW32_LEVEL_MAX 3
#if !defined(PTW32_LEVEL)
#define PTW32_LEVEL PTW32_LEVEL_MAX
/* Include everything */
#endif
#ifdef _UWIN
# define HAVE_STRUCT_TIMESPEC 1
# define HAVE_SIGNAL_H 1
# undef HAVE_CONFIG_H
# pragma comment(lib, "pthread")
#endif
/*
* -------------------------------------------------------------
*
*
* Module: pthread.h
*
* Purpose:
* Provides an implementation of PThreads based upon the
* standard:
*
* POSIX 1003.1-2001
* and
* The Single Unix Specification version 3
*
* (these two are equivalent)
*
* in order to enhance code portability between Windows,
* various commercial Unix implementations, and Linux.
*
* See the ANNOUNCE file for a full list of conforming
* routines and defined constants, and a list of missing
* routines and constants not defined in this implementation.
*
* Authors:
* There have been many contributors to this library.
* The initial implementation was contributed by
* John Bossom, and several others have provided major
* sections or revisions of parts of the implementation.
* Often significant effort has been contributed to
* find and fix important bugs and other problems to
* improve the reliability of the library, which sometimes
* is not reflected in the amount of code which changed as
* result.
* As much as possible, the contributors are acknowledged
* in the ChangeLog file in the source code distribution
* where their changes are noted in detail.
*
* Contributors are listed in the CONTRIBUTORS file.
*
* As usual, all bouquets go to the contributors, and all
* brickbats go to the project maintainer.
*
* Maintainer:
* The code base for this project is coordinated and
* eventually pre-tested, packaged, and made available by
*
* Ross Johnson
*
* QA Testers:
* Ultimately, the library is tested in the real world by
* a host of competent and demanding scientists and
* engineers who report bugs and/or provide solutions
* which are then fixed or incorporated into subsequent
* versions of the library. Each time a bug is fixed, a
* test case is written to prove the fix and ensure
* that later changes to the code don't reintroduce the
* same error. The number of test cases is slowly growing
* and therefore so is the code reliability.
*
* Compliance:
* See the file ANNOUNCE for the list of implemented
* and not-implemented routines and defined options.
* Of course, these are all defined is this file as well.
*
* Web site:
* The source code and other information about this library
* are available from
*
* http://sources.redhat.com/pthreads-win32/
*
* -------------------------------------------------------------
*/
/* Try to avoid including windows.h */
#if defined(__MINGW32__) && defined(__cplusplus)
#define PTW32_INCLUDE_WINDOWS_H
#endif
#ifdef PTW32_INCLUDE_WINDOWS_H
#include
#endif
#if defined(_MSC_VER) && _MSC_VER < 1300 || defined(__DMC__)
/*
* VC++6.0 or early compiler's header has no DWORD_PTR type.
*/
typedef unsigned long DWORD_PTR;
#endif
/*
* -----------------
* autoconf switches
* -----------------
*/
#if HAVE_CONFIG_H
#include "config.h"
#endif /* HAVE_CONFIG_H */
#ifndef NEED_FTIME
#include
#else /* NEED_FTIME */
/* use native WIN32 time API */
#endif /* NEED_FTIME */
#if HAVE_SIGNAL_H
#include
#endif /* HAVE_SIGNAL_H */
#include
#include
/*
* Boolean values to make us independent of system includes.
*/
enum {
PTW32_FALSE = 0,
PTW32_TRUE = (! PTW32_FALSE)
};
/*
* This is a duplicate of what is in the autoconf config.h,
* which is only used when building the pthread-win32 libraries.
*/
#ifndef PTW32_CONFIG_H
# if defined(WINCE)
# define NEED_ERRNO
# define NEED_SEM
# endif
# if defined(_UWIN) || defined(__MINGW32__)
# define HAVE_MODE_T
# endif
#endif
/*
*
*/
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
#ifdef NEED_ERRNO
#include "need_errno.h"
#else
#include
#endif
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
/*
* Several systems don't define some error numbers.
*/
#ifndef ENOTSUP
# define ENOTSUP 48 /* This is the value in Solaris. */
#endif
#ifndef ETIMEDOUT
# define ETIMEDOUT 10060 /* This is the value in winsock.h. */
#endif
#ifndef ENOSYS
# define ENOSYS 140 /* Semi-arbitrary value */
#endif
#ifndef EDEADLK
# ifdef EDEADLOCK
# define EDEADLK EDEADLOCK
# else
# define EDEADLK 36 /* This is the value in MSVC. */
# endif
#endif
//#include -- changed by alanmi
#include "sched.h"
/*
* To avoid including windows.h we define only those things that we
* actually need from it.
*/
#ifndef PTW32_INCLUDE_WINDOWS_H
#ifndef HANDLE
# define PTW32__HANDLE_DEF
# define HANDLE void *
#endif
#ifndef DWORD
# define PTW32__DWORD_DEF
# define DWORD unsigned long
#endif
#endif
#ifndef HAVE_STRUCT_TIMESPEC
#define HAVE_STRUCT_TIMESPEC 1
struct timespec {
long tv_sec;
long tv_nsec;
};
#endif /* HAVE_STRUCT_TIMESPEC */
#ifndef SIG_BLOCK
#define SIG_BLOCK 0
#endif /* SIG_BLOCK */
#ifndef SIG_UNBLOCK
#define SIG_UNBLOCK 1
#endif /* SIG_UNBLOCK */
#ifndef SIG_SETMASK
#define SIG_SETMASK 2
#endif /* SIG_SETMASK */
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
/*
* -------------------------------------------------------------
*
* POSIX 1003.1-2001 Options
* =========================
*
* Options are normally set in , which is not provided
* with pthreads-win32.
*
* For conformance with the Single Unix Specification (version 3), all of the
* options below are defined, and have a value of either -1 (not supported)
* or 200112L (supported).
*
* These options can neither be left undefined nor have a value of 0, because
* either indicates that sysconf(), which is not implemented, may be used at
* runtime to check the status of the option.
*
* _POSIX_THREADS (== 200112L)
* If == 200112L, you can use threads
*
* _POSIX_THREAD_ATTR_STACKSIZE (== 200112L)
* If == 200112L, you can control the size of a thread's
* stack
* pthread_attr_getstacksize
* pthread_attr_setstacksize
*
* _POSIX_THREAD_ATTR_STACKADDR (== -1)
* If == 200112L, you can allocate and control a thread's
* stack. If not supported, the following functions
* will return ENOSYS, indicating they are not
* supported:
* pthread_attr_getstackaddr
* pthread_attr_setstackaddr
*
* _POSIX_THREAD_PRIORITY_SCHEDULING (== -1)
* If == 200112L, you can use realtime scheduling.
* This option indicates that the behaviour of some
* implemented functions conforms to the additional TPS
* requirements in the standard. E.g. rwlocks favour
* writers over readers when threads have equal priority.
*
* _POSIX_THREAD_PRIO_INHERIT (== -1)
* If == 200112L, you can create priority inheritance
* mutexes.
* pthread_mutexattr_getprotocol +
* pthread_mutexattr_setprotocol +
*
* _POSIX_THREAD_PRIO_PROTECT (== -1)
* If == 200112L, you can create priority ceiling mutexes
* Indicates the availability of:
* pthread_mutex_getprioceiling
* pthread_mutex_setprioceiling
* pthread_mutexattr_getprioceiling
* pthread_mutexattr_getprotocol +
* pthread_mutexattr_setprioceiling
* pthread_mutexattr_setprotocol +
*
* _POSIX_THREAD_PROCESS_SHARED (== -1)
* If set, you can create mutexes and condition
* variables that can be shared with another
* process.If set, indicates the availability
* of:
* pthread_mutexattr_getpshared
* pthread_mutexattr_setpshared
* pthread_condattr_getpshared
* pthread_condattr_setpshared
*
* _POSIX_THREAD_SAFE_FUNCTIONS (== 200112L)
* If == 200112L you can use the special *_r library
* functions that provide thread-safe behaviour
*
* _POSIX_READER_WRITER_LOCKS (== 200112L)
* If == 200112L, you can use read/write locks
*
* _POSIX_SPIN_LOCKS (== 200112L)
* If == 200112L, you can use spin locks
*
* _POSIX_BARRIERS (== 200112L)
* If == 200112L, you can use barriers
*
* + These functions provide both 'inherit' and/or
* 'protect' protocol, based upon these macro
* settings.
*
* -------------------------------------------------------------
*/
/*
* POSIX Options
*/
#undef _POSIX_THREADS
#define _POSIX_THREADS 200112L
#undef _POSIX_READER_WRITER_LOCKS
#define _POSIX_READER_WRITER_LOCKS 200112L
#undef _POSIX_SPIN_LOCKS
#define _POSIX_SPIN_LOCKS 200112L
#undef _POSIX_BARRIERS
#define _POSIX_BARRIERS 200112L
#undef _POSIX_THREAD_SAFE_FUNCTIONS
#define _POSIX_THREAD_SAFE_FUNCTIONS 200112L
#undef _POSIX_THREAD_ATTR_STACKSIZE
#define _POSIX_THREAD_ATTR_STACKSIZE 200112L
/*
* The following options are not supported
*/
#undef _POSIX_THREAD_ATTR_STACKADDR
#define _POSIX_THREAD_ATTR_STACKADDR -1
#undef _POSIX_THREAD_PRIO_INHERIT
#define _POSIX_THREAD_PRIO_INHERIT -1
#undef _POSIX_THREAD_PRIO_PROTECT
#define _POSIX_THREAD_PRIO_PROTECT -1
/* TPS is not fully supported. */
#undef _POSIX_THREAD_PRIORITY_SCHEDULING
#define _POSIX_THREAD_PRIORITY_SCHEDULING -1
#undef _POSIX_THREAD_PROCESS_SHARED
#define _POSIX_THREAD_PROCESS_SHARED -1
/*
* POSIX 1003.1-2001 Limits
* ===========================
*
* These limits are normally set in , which is not provided with
* pthreads-win32.
*
* PTHREAD_DESTRUCTOR_ITERATIONS
* Maximum number of attempts to destroy
* a thread's thread-specific data on
* termination (must be at least 4)
*
* PTHREAD_KEYS_MAX
* Maximum number of thread-specific data keys
* available per process (must be at least 128)
*
* PTHREAD_STACK_MIN
* Minimum supported stack size for a thread
*
* PTHREAD_THREADS_MAX
* Maximum number of threads supported per
* process (must be at least 64).
*
* SEM_NSEMS_MAX
* The maximum number of semaphores a process can have.
* (must be at least 256)
*
* SEM_VALUE_MAX
* The maximum value a semaphore can have.
* (must be at least 32767)
*
*/
#undef _POSIX_THREAD_DESTRUCTOR_ITERATIONS
#define _POSIX_THREAD_DESTRUCTOR_ITERATIONS 4
#undef PTHREAD_DESTRUCTOR_ITERATIONS
#define PTHREAD_DESTRUCTOR_ITERATIONS _POSIX_THREAD_DESTRUCTOR_ITERATIONS
#undef _POSIX_THREAD_KEYS_MAX
#define _POSIX_THREAD_KEYS_MAX 128
#undef PTHREAD_KEYS_MAX
#define PTHREAD_KEYS_MAX _POSIX_THREAD_KEYS_MAX
#undef PTHREAD_STACK_MIN
#define PTHREAD_STACK_MIN 0
#undef _POSIX_THREAD_THREADS_MAX
#define _POSIX_THREAD_THREADS_MAX 64
/* Arbitrary value */
#undef PTHREAD_THREADS_MAX
#define PTHREAD_THREADS_MAX 2019
#undef _POSIX_SEM_NSEMS_MAX
#define _POSIX_SEM_NSEMS_MAX 256
/* Arbitrary value */
#undef SEM_NSEMS_MAX
#define SEM_NSEMS_MAX 1024
#undef _POSIX_SEM_VALUE_MAX
#define _POSIX_SEM_VALUE_MAX 32767
#undef SEM_VALUE_MAX
#define SEM_VALUE_MAX INT_MAX
#if __GNUC__ && ! defined (__declspec)
# error Please upgrade your GNU compiler to one that supports __declspec.
#endif
/*
* When building the DLL code, you should define PTW32_BUILD so that
* the variables/functions are exported correctly. When using the DLL,
* do NOT define PTW32_BUILD, and then the variables/functions will
* be imported correctly.
*/
#ifndef PTW32_STATIC_LIB
# ifdef PTW32_BUILD
# define PTW32_DLLPORT __declspec (dllexport)
# else
# define PTW32_DLLPORT __declspec (dllimport)
# endif
#else
# define PTW32_DLLPORT
#endif
/*
* The Open Watcom C/C++ compiler uses a non-standard calling convention
* that passes function args in registers unless __cdecl is explicitly specified
* in exposed function prototypes.
*
* We force all calls to cdecl even though this could slow Watcom code down
* slightly. If you know that the Watcom compiler will be used to build both
* the DLL and application, then you can probably define this as a null string.
* Remember that pthread.h (this file) is used for both the DLL and application builds.
*/
#define PTW32_CDECL __cdecl
#if defined(_UWIN) && PTW32_LEVEL >= PTW32_LEVEL_MAX
# include
#else
/*
* Generic handle type - intended to extend uniqueness beyond
* that available with a simple pointer. It should scale for either
* IA-32 or IA-64.
*/
typedef struct {
void * p; /* Pointer to actual object */
unsigned int x; /* Extra information - reuse count etc */
} ptw32_handle_t;
typedef ptw32_handle_t pthread_t;
typedef struct pthread_attr_t_ * pthread_attr_t;
typedef struct pthread_once_t_ pthread_once_t;
typedef struct pthread_key_t_ * pthread_key_t;
typedef struct pthread_mutex_t_ * pthread_mutex_t;
typedef struct pthread_mutexattr_t_ * pthread_mutexattr_t;
typedef struct pthread_cond_t_ * pthread_cond_t;
typedef struct pthread_condattr_t_ * pthread_condattr_t;
#endif
typedef struct pthread_rwlock_t_ * pthread_rwlock_t;
typedef struct pthread_rwlockattr_t_ * pthread_rwlockattr_t;
typedef struct pthread_spinlock_t_ * pthread_spinlock_t;
typedef struct pthread_barrier_t_ * pthread_barrier_t;
typedef struct pthread_barrierattr_t_ * pthread_barrierattr_t;
/*
* ====================
* ====================
* POSIX Threads
* ====================
* ====================
*/
enum {
/*
* pthread_attr_{get,set}detachstate
*/
PTHREAD_CREATE_JOINABLE = 0, /* Default */
PTHREAD_CREATE_DETACHED = 1,
/*
* pthread_attr_{get,set}inheritsched
*/
PTHREAD_INHERIT_SCHED = 0,
PTHREAD_EXPLICIT_SCHED = 1, /* Default */
/*
* pthread_{get,set}scope
*/
PTHREAD_SCOPE_PROCESS = 0,
PTHREAD_SCOPE_SYSTEM = 1, /* Default */
/*
* pthread_setcancelstate paramters
*/
PTHREAD_CANCEL_ENABLE = 0, /* Default */
PTHREAD_CANCEL_DISABLE = 1,
/*
* pthread_setcanceltype parameters
*/
PTHREAD_CANCEL_ASYNCHRONOUS = 0,
PTHREAD_CANCEL_DEFERRED = 1, /* Default */
/*
* pthread_mutexattr_{get,set}pshared
* pthread_condattr_{get,set}pshared
*/
PTHREAD_PROCESS_PRIVATE = 0,
PTHREAD_PROCESS_SHARED = 1,
/*
* pthread_barrier_wait
*/
PTHREAD_BARRIER_SERIAL_THREAD = -1
};
/*
* ====================
* ====================
* Cancelation
* ====================
* ====================
*/
#define PTHREAD_CANCELED ((void *) -1)
/*
* ====================
* ====================
* Once Key
* ====================
* ====================
*/
#define PTHREAD_ONCE_INIT { PTW32_FALSE, 0, 0, 0}
struct pthread_once_t_
{
int done; /* indicates if user function has been executed */
void * lock;
int reserved1;
int reserved2;
};
/*
* ====================
* ====================
* Object initialisers
* ====================
* ====================
*/
#define PTHREAD_MUTEX_INITIALIZER ((pthread_mutex_t) -1)
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER ((pthread_mutex_t) -2)
#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER ((pthread_mutex_t) -3)
/*
* Compatibility with LinuxThreads
*/
#define PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP PTHREAD_RECURSIVE_MUTEX_INITIALIZER
#define PTHREAD_ERRORCHECK_MUTEX_INITIALIZER_NP PTHREAD_ERRORCHECK_MUTEX_INITIALIZER
#define PTHREAD_COND_INITIALIZER ((pthread_cond_t) -1)
#define PTHREAD_RWLOCK_INITIALIZER ((pthread_rwlock_t) -1)
#define PTHREAD_SPINLOCK_INITIALIZER ((pthread_spinlock_t) -1)
/*
* Mutex types.
*/
enum
{
/* Compatibility with LinuxThreads */
PTHREAD_MUTEX_FAST_NP,
PTHREAD_MUTEX_RECURSIVE_NP,
PTHREAD_MUTEX_ERRORCHECK_NP,
PTHREAD_MUTEX_TIMED_NP = PTHREAD_MUTEX_FAST_NP,
PTHREAD_MUTEX_ADAPTIVE_NP = PTHREAD_MUTEX_FAST_NP,
/* For compatibility with POSIX */
PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_FAST_NP,
PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
};
typedef struct ptw32_cleanup_t ptw32_cleanup_t;
#if defined(_MSC_VER)
/* Disable MSVC 'anachronism used' warning */
#pragma warning( disable : 4229 )
#endif
typedef void (* PTW32_CDECL ptw32_cleanup_callback_t)(void *);
#if defined(_MSC_VER)
#pragma warning( default : 4229 )
#endif
struct ptw32_cleanup_t
{
ptw32_cleanup_callback_t routine;
void *arg;
struct ptw32_cleanup_t *prev;
};
#ifdef __CLEANUP_SEH
/*
* WIN32 SEH version of cancel cleanup.
*/
#define pthread_cleanup_push( _rout, _arg ) \
{ \
ptw32_cleanup_t _cleanup; \
\
_cleanup.routine = (ptw32_cleanup_callback_t)(_rout); \
_cleanup.arg = (_arg); \
__try \
{ \
#define pthread_cleanup_pop( _execute ) \
} \
__finally \
{ \
if( _execute || AbnormalTermination()) \
{ \
(*(_cleanup.routine))( _cleanup.arg ); \
} \
} \
}
#else /* __CLEANUP_SEH */
#ifdef __CLEANUP_C
/*
* C implementation of PThreads cancel cleanup
*/
#define pthread_cleanup_push( _rout, _arg ) \
{ \
ptw32_cleanup_t _cleanup; \
\
ptw32_push_cleanup( &_cleanup, (ptw32_cleanup_callback_t) (_rout), (_arg) ); \
#define pthread_cleanup_pop( _execute ) \
(void) ptw32_pop_cleanup( _execute ); \
}
#else /* __CLEANUP_C */
#ifdef __CLEANUP_CXX
/*
* C++ version of cancel cleanup.
* - John E. Bossom.
*/
class PThreadCleanup {
/*
* PThreadCleanup
*
* Purpose
* This class is a C++ helper class that is
* used to implement pthread_cleanup_push/
* pthread_cleanup_pop.
* The destructor of this class automatically
* pops the pushed cleanup routine regardless
* of how the code exits the scope
* (i.e. such as by an exception)
*/
ptw32_cleanup_callback_t cleanUpRout;
void * obj;
int executeIt;
public:
PThreadCleanup() :
cleanUpRout( 0 ),
obj( 0 ),
executeIt( 0 )
/*
* No cleanup performed
*/
{
}
PThreadCleanup(
ptw32_cleanup_callback_t routine,
void * arg ) :
cleanUpRout( routine ),
obj( arg ),
executeIt( 1 )
/*
* Registers a cleanup routine for 'arg'
*/
{
}
~PThreadCleanup()
{
if ( executeIt && ((void *) cleanUpRout != (void *) 0) )
{
(void) (*cleanUpRout)( obj );
}
}
void execute( int exec )
{
executeIt = exec;
}
};
/*
* C++ implementation of PThreads cancel cleanup;
* This implementation takes advantage of a helper
* class who's destructor automatically calls the
* cleanup routine if we exit our scope weirdly
*/
#define pthread_cleanup_push( _rout, _arg ) \
{ \
PThreadCleanup cleanup((ptw32_cleanup_callback_t)(_rout), \
(void *) (_arg) );
#define pthread_cleanup_pop( _execute ) \
cleanup.execute( _execute ); \
}
#else
#error ERROR [__FILE__, line __LINE__]: Cleanup type undefined.
#endif /* __CLEANUP_CXX */
#endif /* __CLEANUP_C */
#endif /* __CLEANUP_SEH */
/*
* ===============
* ===============
* Methods
* ===============
* ===============
*/
/*
* PThread Attribute Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_attr_init (pthread_attr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_destroy (pthread_attr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getdetachstate (const pthread_attr_t * attr,
int *detachstate);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstackaddr (const pthread_attr_t * attr,
void **stackaddr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getstacksize (const pthread_attr_t * attr,
size_t * stacksize);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setdetachstate (pthread_attr_t * attr,
int detachstate);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstackaddr (pthread_attr_t * attr,
void *stackaddr);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setstacksize (pthread_attr_t * attr,
size_t stacksize);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedparam (const pthread_attr_t *attr,
struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedparam (pthread_attr_t *attr,
const struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setschedpolicy (pthread_attr_t *,
int);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getschedpolicy (pthread_attr_t *,
int *);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setinheritsched(pthread_attr_t * attr,
int inheritsched);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getinheritsched(pthread_attr_t * attr,
int * inheritsched);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_setscope (pthread_attr_t *,
int);
PTW32_DLLPORT int PTW32_CDECL pthread_attr_getscope (const pthread_attr_t *,
int *);
/*
* PThread Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_create (pthread_t * tid,
const pthread_attr_t * attr,
void *(*start) (void *),
void *arg);
PTW32_DLLPORT int PTW32_CDECL pthread_detach (pthread_t tid);
PTW32_DLLPORT int PTW32_CDECL pthread_equal (pthread_t t1,
pthread_t t2);
PTW32_DLLPORT void PTW32_CDECL pthread_exit (void *value_ptr);
PTW32_DLLPORT int PTW32_CDECL pthread_join (pthread_t thread,
void **value_ptr);
PTW32_DLLPORT pthread_t PTW32_CDECL pthread_self (void);
PTW32_DLLPORT int PTW32_CDECL pthread_cancel (pthread_t thread);
PTW32_DLLPORT int PTW32_CDECL pthread_setcancelstate (int state,
int *oldstate);
PTW32_DLLPORT int PTW32_CDECL pthread_setcanceltype (int type,
int *oldtype);
PTW32_DLLPORT void PTW32_CDECL pthread_testcancel (void);
PTW32_DLLPORT int PTW32_CDECL pthread_once (pthread_once_t * once_control,
void (*init_routine) (void));
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
PTW32_DLLPORT ptw32_cleanup_t * PTW32_CDECL ptw32_pop_cleanup (int execute);
PTW32_DLLPORT void PTW32_CDECL ptw32_push_cleanup (ptw32_cleanup_t * cleanup,
void (*routine) (void *),
void *arg);
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
/*
* Thread Specific Data Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_key_create (pthread_key_t * key,
void (*destructor) (void *));
PTW32_DLLPORT int PTW32_CDECL pthread_key_delete (pthread_key_t key);
PTW32_DLLPORT int PTW32_CDECL pthread_setspecific (pthread_key_t key,
const void *value);
PTW32_DLLPORT void * PTW32_CDECL pthread_getspecific (pthread_key_t key);
/*
* Mutex Attribute Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_init (pthread_mutexattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_destroy (pthread_mutexattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getpshared (const pthread_mutexattr_t
* attr,
int *pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setpshared (pthread_mutexattr_t * attr,
int pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_settype (pthread_mutexattr_t * attr, int kind);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_gettype (pthread_mutexattr_t * attr, int *kind);
/*
* Barrier Attribute Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_init (pthread_barrierattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_destroy (pthread_barrierattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_getpshared (const pthread_barrierattr_t
* attr,
int *pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_barrierattr_setpshared (pthread_barrierattr_t * attr,
int pshared);
/*
* Mutex Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_init (pthread_mutex_t * mutex,
const pthread_mutexattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_destroy (pthread_mutex_t * mutex);
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_lock (pthread_mutex_t * mutex);
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_timedlock(pthread_mutex_t *mutex,
const struct timespec *abstime);
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_trylock (pthread_mutex_t * mutex);
PTW32_DLLPORT int PTW32_CDECL pthread_mutex_unlock (pthread_mutex_t * mutex);
/*
* Spinlock Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_spin_init (pthread_spinlock_t * lock, int pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_spin_destroy (pthread_spinlock_t * lock);
PTW32_DLLPORT int PTW32_CDECL pthread_spin_lock (pthread_spinlock_t * lock);
PTW32_DLLPORT int PTW32_CDECL pthread_spin_trylock (pthread_spinlock_t * lock);
PTW32_DLLPORT int PTW32_CDECL pthread_spin_unlock (pthread_spinlock_t * lock);
/*
* Barrier Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_barrier_init (pthread_barrier_t * barrier,
const pthread_barrierattr_t * attr,
unsigned int count);
PTW32_DLLPORT int PTW32_CDECL pthread_barrier_destroy (pthread_barrier_t * barrier);
PTW32_DLLPORT int PTW32_CDECL pthread_barrier_wait (pthread_barrier_t * barrier);
/*
* Condition Variable Attribute Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_condattr_init (pthread_condattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_condattr_destroy (pthread_condattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_condattr_getpshared (const pthread_condattr_t * attr,
int *pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_condattr_setpshared (pthread_condattr_t * attr,
int pshared);
/*
* Condition Variable Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_cond_init (pthread_cond_t * cond,
const pthread_condattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_cond_destroy (pthread_cond_t * cond);
PTW32_DLLPORT int PTW32_CDECL pthread_cond_wait (pthread_cond_t * cond,
pthread_mutex_t * mutex);
PTW32_DLLPORT int PTW32_CDECL pthread_cond_timedwait (pthread_cond_t * cond,
pthread_mutex_t * mutex,
const struct timespec *abstime);
PTW32_DLLPORT int PTW32_CDECL pthread_cond_signal (pthread_cond_t * cond);
PTW32_DLLPORT int PTW32_CDECL pthread_cond_broadcast (pthread_cond_t * cond);
/*
* Scheduling
*/
PTW32_DLLPORT int PTW32_CDECL pthread_setschedparam (pthread_t thread,
int policy,
const struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_getschedparam (pthread_t thread,
int *policy,
struct sched_param *param);
PTW32_DLLPORT int PTW32_CDECL pthread_setconcurrency (int);
PTW32_DLLPORT int PTW32_CDECL pthread_getconcurrency (void);
/*
* Read-Write Lock Functions
*/
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_init(pthread_rwlock_t *lock,
const pthread_rwlockattr_t *attr);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_destroy(pthread_rwlock_t *lock);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_tryrdlock(pthread_rwlock_t *);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_trywrlock(pthread_rwlock_t *);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_rdlock(pthread_rwlock_t *lock);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedrdlock(pthread_rwlock_t *lock,
const struct timespec *abstime);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_wrlock(pthread_rwlock_t *lock);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_timedwrlock(pthread_rwlock_t *lock,
const struct timespec *abstime);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlock_unlock(pthread_rwlock_t *lock);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_init (pthread_rwlockattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_destroy (pthread_rwlockattr_t * attr);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_getpshared (const pthread_rwlockattr_t * attr,
int *pshared);
PTW32_DLLPORT int PTW32_CDECL pthread_rwlockattr_setpshared (pthread_rwlockattr_t * attr,
int pshared);
#if PTW32_LEVEL >= PTW32_LEVEL_MAX - 1
/*
* Signal Functions. Should be defined in but MSVC and MinGW32
* already have signal.h that don't define these.
*/
PTW32_DLLPORT int PTW32_CDECL pthread_kill(pthread_t thread, int sig);
/*
* Non-portable functions
*/
/*
* Compatibility with Linux.
*/
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_setkind_np(pthread_mutexattr_t * attr,
int kind);
PTW32_DLLPORT int PTW32_CDECL pthread_mutexattr_getkind_np(pthread_mutexattr_t * attr,
int *kind);
/*
* Possibly supported by other POSIX threads implementations
*/
PTW32_DLLPORT int PTW32_CDECL pthread_delay_np (struct timespec * interval);
PTW32_DLLPORT int PTW32_CDECL pthread_num_processors_np(void);
/*
* Useful if an application wants to statically link
* the lib rather than load the DLL at run-time.
*/
PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_attach_np(void);
PTW32_DLLPORT int PTW32_CDECL pthread_win32_process_detach_np(void);
PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_attach_np(void);
PTW32_DLLPORT int PTW32_CDECL pthread_win32_thread_detach_np(void);
/*
* Features that are auto-detected at load/run time.
*/
PTW32_DLLPORT int PTW32_CDECL pthread_win32_test_features_np(int);
enum ptw32_features {
PTW32_SYSTEM_INTERLOCKED_COMPARE_EXCHANGE = 0x0001, /* System provides it. */
PTW32_ALERTABLE_ASYNC_CANCEL = 0x0002 /* Can cancel blocked threads. */
};
/*
* Register a system time change with the library.
* Causes the library to perform various functions
* in response to the change. Should be called whenever
* the application's top level window receives a
* WM_TIMECHANGE message. It can be passed directly to
* pthread_create() as a new thread if desired.
*/
PTW32_DLLPORT void * PTW32_CDECL pthread_timechange_handler_np(void *);
#endif /*PTW32_LEVEL >= PTW32_LEVEL_MAX - 1 */
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
/*
* Returns the Win32 HANDLE for the POSIX thread.
*/
PTW32_DLLPORT HANDLE PTW32_CDECL pthread_getw32threadhandle_np(pthread_t thread);
/*
* Protected Methods
*
* This function blocks until the given WIN32 handle
* is signaled or pthread_cancel had been called.
* This function allows the caller to hook into the
* PThreads cancel mechanism. It is implemented using
*
* WaitForMultipleObjects
*
* on 'waitHandle' and a manually reset WIN32 Event
* used to implement pthread_cancel. The 'timeout'
* argument to TimedWait is simply passed to
* WaitForMultipleObjects.
*/
PTW32_DLLPORT int PTW32_CDECL pthreadCancelableWait (HANDLE waitHandle);
PTW32_DLLPORT int PTW32_CDECL pthreadCancelableTimedWait (HANDLE waitHandle,
DWORD timeout);
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
/*
* Thread-Safe C Runtime Library Mappings.
*/
#ifndef _UWIN
# if defined(NEED_ERRNO)
PTW32_DLLPORT int * PTW32_CDECL _errno( void );
# else
# ifndef errno
# if (defined(_MT) || defined(_DLL))
__declspec(dllimport) extern int * __cdecl _errno(void);
# define errno (*_errno())
# endif
# endif
# endif
#endif
/*
* WIN32 C runtime library had been made thread-safe
* without affecting the user interface. Provide
* mappings from the UNIX thread-safe versions to
* the standard C runtime library calls.
* Only provide function mappings for functions that
* actually exist on WIN32.
*/
#if !defined(__MINGW32__)
#define strtok_r( _s, _sep, _lasts ) \
( *(_lasts) = strtok( (_s), (_sep) ) )
#endif /* !__MINGW32__ */
#define asctime_r( _tm, _buf ) \
( strcpy( (_buf), asctime( (_tm) ) ), \
(_buf) )
#define ctime_r( _clock, _buf ) \
( strcpy( (_buf), ctime( (_clock) ) ), \
(_buf) )
#define gmtime_r( _clock, _result ) \
( *(_result) = *gmtime( (_clock) ), \
(_result) )
#define localtime_r( _clock, _result ) \
( *(_result) = *localtime( (_clock) ), \
(_result) )
#define rand_r( _seed ) \
( _seed == _seed? rand() : rand() )
/*
* Some compiler environments don't define some things.
*/
#if defined(__BORLANDC__)
# define _ftime ftime
# define _timeb timeb
#endif
#ifdef __cplusplus
/*
* Internal exceptions
*/
class ptw32_exception {};
class ptw32_exception_cancel : public ptw32_exception {};
class ptw32_exception_exit : public ptw32_exception {};
#endif
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
/* FIXME: This is only required if the library was built using SEH */
/*
* Get internal SEH tag
*/
PTW32_DLLPORT DWORD PTW32_CDECL ptw32_get_exception_services_code(void);
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
#ifndef PTW32_BUILD
#ifdef __CLEANUP_SEH
/*
* Redefine the SEH __except keyword to ensure that applications
* propagate our internal exceptions up to the library's internal handlers.
*/
#define __except( E ) \
__except( ( GetExceptionCode() == ptw32_get_exception_services_code() ) \
? EXCEPTION_CONTINUE_SEARCH : ( E ) )
#endif /* __CLEANUP_SEH */
#ifdef __CLEANUP_CXX
/*
* Redefine the C++ catch keyword to ensure that applications
* propagate our internal exceptions up to the library's internal handlers.
*/
#ifdef _MSC_VER
/*
* WARNING: Replace any 'catch( ... )' with 'PtW32CatchAll'
* if you want Pthread-Win32 cancelation and pthread_exit to work.
*/
#ifndef PtW32NoCatchWarn
#pragma message("Specify \"/DPtW32NoCatchWarn\" compiler flag to skip this message.")
#pragma message("------------------------------------------------------------------")
#pragma message("When compiling applications with MSVC++ and C++ exception handling:")
#pragma message(" Replace any 'catch( ... )' in routines called from POSIX threads")
#pragma message(" with 'PtW32CatchAll' or 'CATCHALL' if you want POSIX thread")
#pragma message(" cancelation and pthread_exit to work. For example:")
#pragma message("")
#pragma message(" #ifdef PtW32CatchAll")
#pragma message(" PtW32CatchAll")
#pragma message(" #else")
#pragma message(" catch(...)")
#pragma message(" #endif")
#pragma message(" {")
#pragma message(" /* Catchall block processing */")
#pragma message(" }")
#pragma message("------------------------------------------------------------------")
#endif
#define PtW32CatchAll \
catch( ptw32_exception & ) { throw; } \
catch( ... )
#else /* _MSC_VER */
#define catch( E ) \
catch( ptw32_exception & ) { throw; } \
catch( E )
#endif /* _MSC_VER */
#endif /* __CLEANUP_CXX */
#endif /* ! PTW32_BUILD */
#ifdef __cplusplus
} /* End of extern "C" */
#endif /* __cplusplus */
#ifdef PTW32__HANDLE_DEF
# undef HANDLE
#endif
#ifdef PTW32__DWORD_DEF
# undef DWORD
#endif
#undef PTW32_LEVEL
#undef PTW32_LEVEL_MAX
#endif /* ! RC_INVOKED */
#endif /* PTHREAD_H */
abc-0.65/lib/sched.h 0000664 0000000 0000000 00000011072 15200543000 0014164 0 ustar 00root root 0000000 0000000 /*
* Module: sched.h
*
* Purpose:
* Provides an implementation of POSIX realtime extensions
* as defined in
*
* POSIX 1003.1b-1993 (POSIX.1b)
*
* --------------------------------------------------------------------------
*
* Pthreads-win32 - POSIX Threads Library for Win32
* Copyright(C) 1998 John E. Bossom
* Copyright(C) 1999,2005 Pthreads-win32 contributors
*
* Contact Email: rpj@callisto.canberra.edu.au
*
* The current list of contributors is contained
* in the file CONTRIBUTORS included with the source
* code distribution. The list can also be seen at the
* following World Wide Web location:
* http://sources.redhat.com/pthreads-win32/contributors.html
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library in the file COPYING.LIB;
* if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#ifndef _SCHED_H
#define _SCHED_H
#undef PTW32_LEVEL
#if defined(_POSIX_SOURCE)
#define PTW32_LEVEL 0
/* Early POSIX */
#endif
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
#undef PTW32_LEVEL
#define PTW32_LEVEL 1
/* Include 1b, 1c and 1d */
#endif
#if defined(INCLUDE_NP)
#undef PTW32_LEVEL
#define PTW32_LEVEL 2
/* Include Non-Portable extensions */
#endif
#define PTW32_LEVEL_MAX 3
#if !defined(PTW32_LEVEL)
#define PTW32_LEVEL PTW32_LEVEL_MAX
/* Include everything */
#endif
#if __GNUC__ && ! defined (__declspec)
# error Please upgrade your GNU compiler to one that supports __declspec.
#endif
/*
* When building the DLL code, you should define PTW32_BUILD so that
* the variables/functions are exported correctly. When using the DLL,
* do NOT define PTW32_BUILD, and then the variables/functions will
* be imported correctly.
*/
#ifndef PTW32_STATIC_LIB
# ifdef PTW32_BUILD
# define PTW32_DLLPORT __declspec (dllexport)
# else
# define PTW32_DLLPORT __declspec (dllimport)
# endif
#else
# define PTW32_DLLPORT
#endif
/*
* This is a duplicate of what is in the autoconf config.h,
* which is only used when building the pthread-win32 libraries.
*/
#ifndef PTW32_CONFIG_H
# if defined(WINCE)
# define NEED_ERRNO
# define NEED_SEM
# endif
# if defined(_UWIN) || defined(__MINGW32__)
# define HAVE_MODE_T
# endif
#endif
/*
*
*/
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
#ifdef NEED_ERRNO
#include "need_errno.h"
#else
#include
#endif
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
#if defined(__MINGW32__) || defined(_UWIN)
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
/* For pid_t */
# include
/* Required by Unix 98 */
# include
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
#else
typedef int pid_t;
#endif
/* Thread scheduling policies */
enum {
SCHED_OTHER = 0,
SCHED_FIFO,
SCHED_RR,
SCHED_MIN = SCHED_OTHER,
SCHED_MAX = SCHED_RR
};
struct sched_param {
int sched_priority;
};
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
PTW32_DLLPORT int __cdecl sched_yield (void);
PTW32_DLLPORT int __cdecl sched_get_priority_min (int policy);
PTW32_DLLPORT int __cdecl sched_get_priority_max (int policy);
PTW32_DLLPORT int __cdecl sched_setscheduler (pid_t pid, int policy);
PTW32_DLLPORT int __cdecl sched_getscheduler (pid_t pid);
/*
* Note that this macro returns ENOTSUP rather than
* ENOSYS as might be expected. However, returning ENOSYS
* should mean that sched_get_priority_{min,max} are
* not implemented as well as sched_rr_get_interval.
* This is not the case, since we just don't support
* round-robin scheduling. Therefore I have chosen to
* return the same value as sched_setscheduler when
* SCHED_RR is passed to it.
*/
#define sched_rr_get_interval(_pid, _interval) \
( errno = ENOTSUP, (int) -1 )
#ifdef __cplusplus
} /* End of extern "C" */
#endif /* __cplusplus */
#undef PTW32_LEVEL
#undef PTW32_LEVEL_MAX
#endif /* !_SCHED_H */
abc-0.65/lib/semaphore.h 0000664 0000000 0000000 00000010467 15200543000 0015070 0 ustar 00root root 0000000 0000000 /*
* Module: semaphore.h
*
* Purpose:
* Semaphores aren't actually part of the PThreads standard.
* They are defined by the POSIX Standard:
*
* POSIX 1003.1b-1993 (POSIX.1b)
*
* --------------------------------------------------------------------------
*
* Pthreads-win32 - POSIX Threads Library for Win32
* Copyright(C) 1998 John E. Bossom
* Copyright(C) 1999,2005 Pthreads-win32 contributors
*
* Contact Email: rpj@callisto.canberra.edu.au
*
* The current list of contributors is contained
* in the file CONTRIBUTORS included with the source
* code distribution. The list can also be seen at the
* following World Wide Web location:
* http://sources.redhat.com/pthreads-win32/contributors.html
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library in the file COPYING.LIB;
* if not, write to the Free Software Foundation, Inc.,
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
*/
#if !defined( SEMAPHORE_H )
#define SEMAPHORE_H
#undef PTW32_LEVEL
#if defined(_POSIX_SOURCE)
#define PTW32_LEVEL 0
/* Early POSIX */
#endif
#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309
#undef PTW32_LEVEL
#define PTW32_LEVEL 1
/* Include 1b, 1c and 1d */
#endif
#if defined(INCLUDE_NP)
#undef PTW32_LEVEL
#define PTW32_LEVEL 2
/* Include Non-Portable extensions */
#endif
#define PTW32_LEVEL_MAX 3
#if !defined(PTW32_LEVEL)
#define PTW32_LEVEL PTW32_LEVEL_MAX
/* Include everything */
#endif
#if __GNUC__ && ! defined (__declspec)
# error Please upgrade your GNU compiler to one that supports __declspec.
#endif
/*
* When building the DLL code, you should define PTW32_BUILD so that
* the variables/functions are exported correctly. When using the DLL,
* do NOT define PTW32_BUILD, and then the variables/functions will
* be imported correctly.
*/
#ifndef PTW32_STATIC_LIB
# ifdef PTW32_BUILD
# define PTW32_DLLPORT __declspec (dllexport)
# else
# define PTW32_DLLPORT __declspec (dllimport)
# endif
#else
# define PTW32_DLLPORT
#endif
/*
* This is a duplicate of what is in the autoconf config.h,
* which is only used when building the pthread-win32 libraries.
*/
#ifndef PTW32_CONFIG_H
# if defined(WINCE)
# define NEED_ERRNO
# define NEED_SEM
# endif
# if defined(_UWIN) || defined(__MINGW32__)
# define HAVE_MODE_T
# endif
#endif
/*
*
*/
#if PTW32_LEVEL >= PTW32_LEVEL_MAX
#ifdef NEED_ERRNO
#include "need_errno.h"
#else
#include
#endif
#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */
#define _POSIX_SEMAPHORES
#ifdef __cplusplus
extern "C"
{
#endif /* __cplusplus */
#ifndef HAVE_MODE_T
typedef unsigned int mode_t;
#endif
typedef struct sem_t_ * sem_t;
PTW32_DLLPORT int __cdecl sem_init (sem_t * sem,
int pshared,
unsigned int value);
PTW32_DLLPORT int __cdecl sem_destroy (sem_t * sem);
PTW32_DLLPORT int __cdecl sem_trywait (sem_t * sem);
PTW32_DLLPORT int __cdecl sem_wait (sem_t * sem);
PTW32_DLLPORT int __cdecl sem_timedwait (sem_t * sem,
const struct timespec * abstime);
PTW32_DLLPORT int __cdecl sem_post (sem_t * sem);
PTW32_DLLPORT int __cdecl sem_post_multiple (sem_t * sem,
int count);
PTW32_DLLPORT int __cdecl sem_open (const char * name,
int oflag,
mode_t mode,
unsigned int value);
PTW32_DLLPORT int __cdecl sem_close (sem_t * sem);
PTW32_DLLPORT int __cdecl sem_unlink (const char * name);
PTW32_DLLPORT int __cdecl sem_getvalue (sem_t * sem,
int * sval);
#ifdef __cplusplus
} /* End of extern "C" */
#endif /* __cplusplus */
#undef PTW32_LEVEL
#undef PTW32_LEVEL_MAX
#endif /* !SEMAPHORE_H */
abc-0.65/readmeaig 0000664 0000000 0000000 00000011467 15200543000 0014030 0 ustar 00root root 0000000 0000000 Using AIG Package in ABC
- Download the latest snapshot of ABC
- Compile the code found in "abc\src\aig\aig", "abc\src\aig\saig", and "abc\src\misc\vec" as a static library.
- Link the library to the project.
- Add #include "saig.h".
- Start the AIG package using Aig_ManStart().
- Assign primary inputs using Aig_ObjCreateCi().
- Assign register outputs using Aig_ObjCreateCi().
(it is important to create all PIs first, before creating register outputs).
- Construct AIG in the topological order using Aig_And(), Aig_Or(), Aig_Not(), etc.
- If constant-0/1 AIG nodes are needed, use Aig_ManConst0() or Aig_ManConst1()
- Create primary outputs using Aig_ObjCreateCo().
- Create register inputs using Aig_ObjCreateCo().
(it is important to create all POs first, before creating register inputs).
- Set the number of registers by calling Aig_ManSetRegNum().
- Remove dangling AIG nodes (produced by structural hashing) using Aig_ManCleanup().
- Call the consistency checking procedure Aig_ManCheck().
- Dump AIG into a file using the new BLIF dumper Saig_ManDumpBlif().
- For each object in the design annotated with the constructed AIG node (pNode), remember its AIG node ID by calling Aig_ObjId( Aig_Regular(pNode) ). To check whether the corresponding AIG node is complemented use Aig_IsComplement(pNode).
- Quit the AIG package using Aig_ManStop().
The above process should not produce memory leaks.
Using GIA Package in ABC
- Add #include "gia.h".
- Start the AIG package using Gia_ManStart( int nObjMax ).
(Parameter 'nNodeMax' should approximately reflect the expected number of objects, including PIs, POs, flop inputs, and flop outputs. If the number of objects is more, memory will be automatically reallocated.)
- If structural hashing is to be used, start hash table by calling Gia_ManHashStart().
- Similarly, whenever structural hashingn is no longer needed, deallocate hash table by calling Gia_ManHashStop().
- Assign primary inputs using Gia_ManAppendCi().
- Assign flop outputs using Gia_ManAppendCi().
(It is important to create all PIs first, before creating flop outputs).
(Flop control logic, if present, should be elaborated into AND gates. For example, to represent a flop enable, create the driver of enable signal, which can be a PI or an internal node, and then add logic for = MUX( , , ). The output of this logic feeds into the flop.
- Construct AIG in the topological order using Gia_ManHashAnd(), Gia_ManHashOr(), Gia_Not(), etc.
- If constant-0/1 AIG nodes are needed, use Gia_ManConst0() or Gia_ManConst1()
- Create primary outputs using Gia_ManAppendCo().
- Create flop inputs using Gia_ManAppendCo().
(it is important to create all POs first, before creating register inputs).
- Set the number of flops by calling Gia_ManSetRegNum().
- Remove dangling AIG nodes (produced by structural hashing) by running Gia_ManCleanup(), which will return a new AIG. If object mapping is defined for the original AIG, it should be remapped into the new AIG.
- Dump AIG into an AIGER file use Gia_DumpAiger().
- For each object in the design annotated with the constructed AIG node (pNode), remember its AIG node ID by calling Gia_ObjId(pMan,pNode).
- Quit the AIG package using Gia_ManStop().
The above process should not produce memory leaks.
Using MiniAIG Package
- Add #include "miniaig.h".
- Start the AIG package using Mini_AigStart().
- Assign primary inputs using Mini_AigCreatePi().
- Assign flop outputs using Mini_AigCreatePi().
(It is important to create all PIs first, before creating flop outputs.)
(Flop control logic, if present, should be elaborated into AND gates. For example, to represent a flop enable, create the driver of enable signal, which can be a PI or an internal node, and then add logic for = MUX( , , ). The output of this logic feeds into the flop.
- Construct AIG in a topological order using Mini_AigAnd(), Mini_AigOr(), etc.
- If constant-0 or constant-1 functions are needed, use 0 or 1.
- Create primary outputs using Mini_AigCreatePo().
- Create flop inputs using Mini_AigCreatePo().
(It is important to create all POs first, before creating register inputs.)
- Set the number of flops by calling Mini_AigSetRegNum().
- The AIG may contain internal nodes without fanout and/or internal nodes fed by constants.
- Dump AIG in internal MiniAIG binary format using Mini_AigDump() and read it into ABC using "&read -m file.mini"
- Dump AIG in standard AIGER format (https://fmv.jku.at/aiger/index.html) using Mini_AigerWrite() and read it into ABC using "&read file.aig"
- For each object in the design represented using MiniAIG, it may be helpful to save the MiniAIG literal returned by Mini_AigAnd(), Mini_AigOr(), etc when constructing that object.
- Quit the AIG package using Mini_AigStop().
The above process should not produce memory leaks.
abc-0.65/src/ 0000775 0000000 0000000 00000000000 15200543000 0012745 5 ustar 00root root 0000000 0000000 abc-0.65/src/aig/ 0000775 0000000 0000000 00000000000 15200543000 0013505 5 ustar 00root root 0000000 0000000 abc-0.65/src/aig/aig/ 0000775 0000000 0000000 00000000000 15200543000 0014245 5 ustar 00root root 0000000 0000000 abc-0.65/src/aig/aig/aig.h 0000664 0000000 0000000 00000134670 15200543000 0015171 0 ustar 00root root 0000000 0000000 /**CFile****************************************************************
FileName [aig.h]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [External declarations.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [$Id: aig.h,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
***********************************************************************/
#ifndef ABC__aig__aig__aig_h
#define ABC__aig__aig__aig_h
////////////////////////////////////////////////////////////////////////
/// INCLUDES ///
////////////////////////////////////////////////////////////////////////
#include
#include
#include
#include
#include "misc/vec/vec.h"
#include "misc/util/utilCex.h"
////////////////////////////////////////////////////////////////////////
/// PARAMETERS ///
////////////////////////////////////////////////////////////////////////
ABC_NAMESPACE_HEADER_START
////////////////////////////////////////////////////////////////////////
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
typedef struct Aig_Man_t_ Aig_Man_t;
typedef struct Aig_Obj_t_ Aig_Obj_t;
typedef struct Aig_MmFixed_t_ Aig_MmFixed_t;
typedef struct Aig_MmFlex_t_ Aig_MmFlex_t;
typedef struct Aig_MmStep_t_ Aig_MmStep_t;
// object types
typedef enum {
AIG_OBJ_NONE, // 0: non-existent object
AIG_OBJ_CONST1, // 1: constant 1
AIG_OBJ_CI, // 2: combinational input
AIG_OBJ_CO, // 3: combinational output
AIG_OBJ_BUF, // 4: buffer node
AIG_OBJ_AND, // 5: AND node
AIG_OBJ_EXOR, // 6: EXOR node
AIG_OBJ_VOID // 7: unused object
} Aig_Type_t;
// the AIG node
struct Aig_Obj_t_ // 8 words
{
union {
Aig_Obj_t * pNext; // strashing table
int CioId; // 0-based number of CI/CO
};
Aig_Obj_t * pFanin0; // fanin
Aig_Obj_t * pFanin1; // fanin
unsigned int Type : 3; // object type
unsigned int fPhase : 1; // value under 000...0 pattern
unsigned int fMarkA : 1; // multipurpose mask
unsigned int fMarkB : 1; // multipurpose mask
unsigned int nRefs : 26; // reference count
unsigned Level : 24; // the level of this node
unsigned nCuts : 8; // the number of cuts
int TravId; // unique ID of last traversal involving the node
int Id; // unique ID of the node
union { // temporary store for user's data
void * pData;
int iData;
float dData;
};
};
// the AIG manager
struct Aig_Man_t_
{
char * pName; // the design name
char * pSpec; // the input file name
// AIG nodes
Vec_Ptr_t * vCis; // the array of PIs
Vec_Ptr_t * vCos; // the array of POs
Vec_Ptr_t * vObjs; // the array of all nodes (optional)
Vec_Ptr_t * vBufs; // the array of buffers
Aig_Obj_t * pConst1; // the constant 1 node
Aig_Obj_t Ghost; // the ghost node
int nRegs; // the number of registers (registers are last POs)
int nTruePis; // the number of true primary inputs
int nTruePos; // the number of true primary outputs
int nAsserts; // the number of asserts among POs (asserts are first POs)
int nConstrs; // the number of constraints (model checking only)
int nBarBufs; // the number of barrier buffers
// AIG node counters
int nObjs[AIG_OBJ_VOID];// the number of objects by type
int nDeleted; // the number of deleted objects
// structural hash table
Aig_Obj_t ** pTable; // structural hash table
int nTableSize; // structural hash table size
// representation of fanouts
int * pFanData; // the database to store fanout information
int nFansAlloc; // the size of fanout representation
Vec_Vec_t * vLevels; // used to update timing information
int nBufReplaces; // the number of times replacement led to a buffer
int nBufFixes; // the number of times buffers were propagated
int nBufMax; // the maximum number of buffers during computation
// topological order
unsigned * pOrderData;
int nOrderAlloc;
int iPrev;
int iNext;
int nAndTotal;
int nAndPrev;
// representatives
Aig_Obj_t ** pEquivs; // linked list of equivalent nodes (when choices are used)
Aig_Obj_t ** pReprs; // representatives of each node
int nReprsAlloc; // the number of allocated representatives
// various data members
Aig_MmFixed_t * pMemObjs; // memory manager for objects
Vec_Int_t * vLevelR; // the reverse level of the nodes
int nLevelMax; // maximum number of levels
void * pData; // the temporary data
void * pData2; // the temporary data
int nTravIds; // the current traversal ID
int fCatchExor; // enables EXOR nodes
int fAddStrash; // performs additional strashing
Aig_Obj_t ** pObjCopies; // mapping of AIG nodes into FRAIG nodes
void (*pImpFunc) (void*, void*); // implication checking precedure
void * pImpData; // implication checking data
void * pManTime; // the timing manager
void * pManCuts;
int * pFastSim;
unsigned * pTerSimData; // ternary simulation data
Vec_Ptr_t * vMapped;
Vec_Int_t * vFlopNums;
Vec_Int_t * vFlopReprs;
Abc_Cex_t * pSeqModel;
Vec_Ptr_t * vSeqModelVec; // vector of counter-examples (for sequential miters)
Aig_Man_t * pManExdc;
Vec_Ptr_t * vOnehots;
int fCreatePios;
Vec_Int_t * vEquPairs;
Vec_Vec_t * vClockDoms;
Vec_Int_t * vProbs; // probability of node being 1
Vec_Int_t * vCiNumsOrig; // original CI names
int nComplEdges; // complemented edges
abctime Time2Quit;
// timing statistics
abctime time1;
abctime time2;
//-- jlong -- begin
Vec_Ptr_t * unfold2_type_I;
Vec_Ptr_t * unfold2_type_II;
//-- jlong -- end
};
// cut computation
typedef struct Aig_ManCut_t_ Aig_ManCut_t;
typedef struct Aig_Cut_t_ Aig_Cut_t;
// the cut used to represent node in the AIG
struct Aig_Cut_t_
{
Aig_Cut_t * pNext; // the next cut in the table
int Cost; // the cost of the cut
unsigned uSign; // cut signature
int iNode; // the node, for which it is the cut
short nCutSize; // the number of bytes in the cut
char nLeafMax; // the maximum number of fanins
char nFanins; // the current number of fanins
int pFanins[0]; // the fanins (followed by the truth table)
};
// the CNF computation manager
struct Aig_ManCut_t_
{
// AIG manager
Aig_Man_t * pAig; // the input AIG manager
Aig_Cut_t ** pCuts; // the cuts for each node in the output manager
// parameters
int nCutsMax; // the max number of cuts at the node
int nLeafMax; // the max number of leaves of a cut
int fTruth; // enables truth table computation
int fVerbose; // enables verbose output
// internal variables
int nCutSize; // the number of bytes needed to store one cut
int nTruthWords; // the number of truth table words
Aig_MmFixed_t * pMemCuts; // memory manager for cuts
unsigned * puTemp[4]; // used for the truth table computation
};
static inline Aig_Cut_t * Aig_ObjCuts( Aig_ManCut_t * p, Aig_Obj_t * pObj ) { return p->pCuts[pObj->Id]; }
static inline void Aig_ObjSetCuts( Aig_ManCut_t * p, Aig_Obj_t * pObj, Aig_Cut_t * pCuts ) { p->pCuts[pObj->Id] = pCuts; }
static inline int Aig_CutLeaveNum( Aig_Cut_t * pCut ) { return pCut->nFanins; }
static inline int * Aig_CutLeaves( Aig_Cut_t * pCut ) { return pCut->pFanins; }
static inline unsigned * Aig_CutTruth( Aig_Cut_t * pCut ) { return (unsigned *)(pCut->pFanins + pCut->nLeafMax); }
static inline Aig_Cut_t * Aig_CutNext( Aig_Cut_t * pCut ) { return (Aig_Cut_t *)(((char *)pCut) + pCut->nCutSize); }
// iterator over cuts of the node
#define Aig_ObjForEachCut( p, pObj, pCut, i ) \
for ( i = 0, pCut = Aig_ObjCuts(p, pObj); i < p->nCutsMax; i++, pCut = Aig_CutNext(pCut) )
// iterator over leaves of the cut
#define Aig_CutForEachLeaf( p, pCut, pLeaf, i ) \
for ( i = 0; (i < (int)(pCut)->nFanins) && ((pLeaf) = Aig_ManObj(p, (pCut)->pFanins[i])); i++ )
////////////////////////////////////////////////////////////////////////
/// MACRO DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
static inline unsigned Aig_ObjCutSign( unsigned ObjId ) { return (1U << (ObjId & 31)); }
static inline int Aig_WordCountOnes( unsigned uWord )
{
uWord = (uWord & 0x55555555) + ((uWord>>1) & 0x55555555);
uWord = (uWord & 0x33333333) + ((uWord>>2) & 0x33333333);
uWord = (uWord & 0x0F0F0F0F) + ((uWord>>4) & 0x0F0F0F0F);
uWord = (uWord & 0x00FF00FF) + ((uWord>>8) & 0x00FF00FF);
return (uWord & 0x0000FFFF) + (uWord>>16);
}
static inline int Aig_WordFindFirstBit( unsigned uWord )
{
int i;
for ( i = 0; i < 32; i++ )
if ( uWord & (1 << i) )
return i;
return -1;
}
static inline Aig_Obj_t * Aig_Regular( Aig_Obj_t * p ) { return (Aig_Obj_t *)((ABC_PTRUINT_T)(p) & ~01); }
static inline Aig_Obj_t * Aig_Not( Aig_Obj_t * p ) { return (Aig_Obj_t *)((ABC_PTRUINT_T)(p) ^ 01); }
static inline Aig_Obj_t * Aig_NotCond( Aig_Obj_t * p, int c ) { return (Aig_Obj_t *)((ABC_PTRUINT_T)(p) ^ (c)); }
static inline int Aig_IsComplement( Aig_Obj_t * p ) { return (int)((ABC_PTRUINT_T)(p) & 01); }
static inline int Aig_ManCiNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_CI]; }
static inline int Aig_ManCoNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_CO]; }
static inline int Aig_ManBufNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_BUF]; }
static inline int Aig_ManAndNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_AND]; }
static inline int Aig_ManExorNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_EXOR]; }
static inline int Aig_ManNodeNum( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_AND]+p->nObjs[AIG_OBJ_EXOR]; }
static inline int Aig_ManGetCost( Aig_Man_t * p ) { return p->nObjs[AIG_OBJ_AND]+3*p->nObjs[AIG_OBJ_EXOR]; }
static inline int Aig_ManObjNum( Aig_Man_t * p ) { return Vec_PtrSize(p->vObjs) - p->nDeleted; }
static inline int Aig_ManObjNumMax( Aig_Man_t * p ) { return Vec_PtrSize(p->vObjs); }
static inline int Aig_ManRegNum( Aig_Man_t * p ) { return p->nRegs; }
static inline int Aig_ManConstrNum( Aig_Man_t * p ) { return p->nConstrs; }
static inline Aig_Obj_t * Aig_ManConst0( Aig_Man_t * p ) { return Aig_Not(p->pConst1); }
static inline Aig_Obj_t * Aig_ManConst1( Aig_Man_t * p ) { return p->pConst1; }
static inline Aig_Obj_t * Aig_ManGhost( Aig_Man_t * p ) { return &p->Ghost; }
static inline Aig_Obj_t * Aig_ManCi( Aig_Man_t * p, int i ) { return (Aig_Obj_t *)Vec_PtrEntry(p->vCis, i); }
static inline Aig_Obj_t * Aig_ManCo( Aig_Man_t * p, int i ) { return (Aig_Obj_t *)Vec_PtrEntry(p->vCos, i); }
static inline Aig_Obj_t * Aig_ManLo( Aig_Man_t * p, int i ) { return (Aig_Obj_t *)Vec_PtrEntry(p->vCis, Aig_ManCiNum(p)-Aig_ManRegNum(p)+i); }
static inline Aig_Obj_t * Aig_ManLi( Aig_Man_t * p, int i ) { return (Aig_Obj_t *)Vec_PtrEntry(p->vCos, Aig_ManCoNum(p)-Aig_ManRegNum(p)+i); }
static inline Aig_Obj_t * Aig_ManObj( Aig_Man_t * p, int i ) { return p->vObjs ? (Aig_Obj_t *)Vec_PtrEntry(p->vObjs, i) : NULL; }
static inline Aig_Type_t Aig_ObjType( Aig_Obj_t * pObj ) { return (Aig_Type_t)pObj->Type; }
static inline int Aig_ObjIsNone( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_NONE; }
static inline int Aig_ObjIsConst1( Aig_Obj_t * pObj ) { assert(!Aig_IsComplement(pObj)); return pObj->Type == AIG_OBJ_CONST1; }
static inline int Aig_ObjIsCi( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_CI; }
static inline int Aig_ObjIsCo( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_CO; }
static inline int Aig_ObjIsBuf( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_BUF; }
static inline int Aig_ObjIsAnd( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_AND; }
static inline int Aig_ObjIsExor( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_EXOR; }
static inline int Aig_ObjIsNode( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_AND || pObj->Type == AIG_OBJ_EXOR; }
static inline int Aig_ObjIsTerm( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_CI || pObj->Type == AIG_OBJ_CO || pObj->Type == AIG_OBJ_CONST1; }
static inline int Aig_ObjIsHash( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_AND || pObj->Type == AIG_OBJ_EXOR; }
static inline int Aig_ObjIsChoice( Aig_Man_t * p, Aig_Obj_t * pObj ) { return p->pEquivs && p->pEquivs[pObj->Id] && pObj->nRefs > 0; }
static inline int Aig_ObjIsCand( Aig_Obj_t * pObj ) { return pObj->Type == AIG_OBJ_CI || pObj->Type == AIG_OBJ_AND || pObj->Type == AIG_OBJ_EXOR; }
static inline int Aig_ObjCioId( Aig_Obj_t * pObj ) { assert( !Aig_ObjIsNode(pObj) ); return pObj->CioId; }
static inline int Aig_ObjId( Aig_Obj_t * pObj ) { return pObj->Id; }
static inline int Aig_ObjIsMarkA( Aig_Obj_t * pObj ) { return pObj->fMarkA; }
static inline void Aig_ObjSetMarkA( Aig_Obj_t * pObj ) { pObj->fMarkA = 1; }
static inline void Aig_ObjClearMarkA( Aig_Obj_t * pObj ) { pObj->fMarkA = 0; }
static inline void Aig_ObjSetTravId( Aig_Obj_t * pObj, int TravId ) { pObj->TravId = TravId; }
static inline void Aig_ObjSetTravIdCurrent( Aig_Man_t * p, Aig_Obj_t * pObj ) { pObj->TravId = p->nTravIds; }
static inline void Aig_ObjSetTravIdPrevious( Aig_Man_t * p, Aig_Obj_t * pObj ) { pObj->TravId = p->nTravIds - 1; }
static inline int Aig_ObjIsTravIdCurrent( Aig_Man_t * p, Aig_Obj_t * pObj ) { return (int)(pObj->TravId == p->nTravIds); }
static inline int Aig_ObjIsTravIdPrevious( Aig_Man_t * p, Aig_Obj_t * pObj ) { return (int)(pObj->TravId == p->nTravIds - 1); }
static inline int Aig_ObjPhase( Aig_Obj_t * pObj ) { return pObj->fPhase; }
static inline int Aig_ObjPhaseReal( Aig_Obj_t * pObj ) { return pObj? Aig_Regular(pObj)->fPhase ^ Aig_IsComplement(pObj) : 1; }
static inline int Aig_ObjRefs( Aig_Obj_t * pObj ) { return pObj->nRefs; }
static inline void Aig_ObjRef( Aig_Obj_t * pObj ) { pObj->nRefs++; }
static inline void Aig_ObjDeref( Aig_Obj_t * pObj ) { assert( pObj->nRefs > 0 ); pObj->nRefs--; }
static inline void Aig_ObjClearRef( Aig_Obj_t * pObj ) { pObj->nRefs = 0; }
static inline int Aig_ObjFaninId0( Aig_Obj_t * pObj ) { return pObj->pFanin0? Aig_Regular(pObj->pFanin0)->Id : -1; }
static inline int Aig_ObjFaninId1( Aig_Obj_t * pObj ) { return pObj->pFanin1? Aig_Regular(pObj->pFanin1)->Id : -1; }
static inline int Aig_ObjFaninC0( Aig_Obj_t * pObj ) { return Aig_IsComplement(pObj->pFanin0); }
static inline int Aig_ObjFaninC1( Aig_Obj_t * pObj ) { return Aig_IsComplement(pObj->pFanin1); }
static inline Aig_Obj_t * Aig_ObjFanin0( Aig_Obj_t * pObj ) { return Aig_Regular(pObj->pFanin0); }
static inline Aig_Obj_t * Aig_ObjFanin1( Aig_Obj_t * pObj ) { return Aig_Regular(pObj->pFanin1); }
static inline Aig_Obj_t * Aig_ObjChild0( Aig_Obj_t * pObj ) { return pObj->pFanin0; }
static inline Aig_Obj_t * Aig_ObjChild1( Aig_Obj_t * pObj ) { return pObj->pFanin1; }
static inline Aig_Obj_t * Aig_ObjChild0Copy( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin0(pObj)? Aig_NotCond((Aig_Obj_t *)Aig_ObjFanin0(pObj)->pData, Aig_ObjFaninC0(pObj)) : NULL; }
static inline Aig_Obj_t * Aig_ObjChild1Copy( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin1(pObj)? Aig_NotCond((Aig_Obj_t *)Aig_ObjFanin1(pObj)->pData, Aig_ObjFaninC1(pObj)) : NULL; }
static inline Aig_Obj_t * Aig_ObjChild0Next( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin0(pObj)? Aig_NotCond((Aig_Obj_t *)Aig_ObjFanin0(pObj)->pNext, Aig_ObjFaninC0(pObj)) : NULL; }
static inline Aig_Obj_t * Aig_ObjChild1Next( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin1(pObj)? Aig_NotCond((Aig_Obj_t *)Aig_ObjFanin1(pObj)->pNext, Aig_ObjFaninC1(pObj)) : NULL; }
static inline void Aig_ObjChild0Flip( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); pObj->pFanin0 = Aig_Not(pObj->pFanin0); }
static inline void Aig_ObjChild1Flip( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); pObj->pFanin1 = Aig_Not(pObj->pFanin1); }
static inline Aig_Obj_t * Aig_ObjCopy( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return (Aig_Obj_t *)pObj->pData; }
static inline void Aig_ObjSetCopy( Aig_Obj_t * pObj, Aig_Obj_t * pCopy ) { assert( !Aig_IsComplement(pObj) ); pObj->pData = pCopy; }
static inline Aig_Obj_t * Aig_ObjRealCopy( Aig_Obj_t * pObj ) { return Aig_NotCond((Aig_Obj_t *)Aig_Regular(pObj)->pData, Aig_IsComplement(pObj));}
static inline int Aig_ObjToLit( Aig_Obj_t * pObj ) { return Abc_Var2Lit( Aig_ObjId(Aig_Regular(pObj)), Aig_IsComplement(pObj) ); }
static inline Aig_Obj_t * Aig_ObjFromLit( Aig_Man_t * p,int iLit){ return Aig_NotCond( Aig_ManObj(p, Abc_Lit2Var(iLit)), Abc_LitIsCompl(iLit) ); }
static inline int Aig_ObjLevel( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return pObj->Level; }
static inline int Aig_ObjLevelNew( Aig_Obj_t * pObj ) { assert( !Aig_IsComplement(pObj) ); return Aig_ObjFanin1(pObj)? 1 + Aig_ObjIsExor(pObj) + Abc_MaxInt(Aig_ObjFanin0(pObj)->Level, Aig_ObjFanin1(pObj)->Level) : Aig_ObjFanin0(pObj)->Level; }
static inline int Aig_ObjSetLevel( Aig_Obj_t * pObj, int i ) { assert( !Aig_IsComplement(pObj) ); return pObj->Level = i; }
static inline void Aig_ObjClean( Aig_Obj_t * pObj ) { memset( pObj, 0, sizeof(Aig_Obj_t) ); }
static inline Aig_Obj_t * Aig_ObjFanout0( Aig_Man_t * p, Aig_Obj_t * pObj ) { assert(p->pFanData && pObj->Id < p->nFansAlloc); return Aig_ManObj(p, p->pFanData[5*pObj->Id] >> 1); }
static inline Aig_Obj_t * Aig_ObjEquiv( Aig_Man_t * p, Aig_Obj_t * pObj ) { return p->pEquivs? p->pEquivs[pObj->Id] : NULL; }
static inline void Aig_ObjSetEquiv( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pEqu ) { assert(p->pEquivs); p->pEquivs[pObj->Id] = pEqu; }
static inline Aig_Obj_t * Aig_ObjRepr( Aig_Man_t * p, Aig_Obj_t * pObj ) { return p->pReprs? p->pReprs[pObj->Id] : NULL; }
static inline void Aig_ObjSetRepr( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pRepr ) { assert(p->pReprs); p->pReprs[pObj->Id] = pRepr; }
static inline int Aig_ObjWhatFanin( Aig_Obj_t * pObj, Aig_Obj_t * pFanin )
{
if ( Aig_ObjFanin0(pObj) == pFanin ) return 0;
if ( Aig_ObjFanin1(pObj) == pFanin ) return 1;
assert(0); return -1;
}
static inline int Aig_ObjFanoutC( Aig_Obj_t * pObj, Aig_Obj_t * pFanout )
{
if ( Aig_ObjFanin0(pFanout) == pObj ) return Aig_ObjFaninC0(pObj);
if ( Aig_ObjFanin1(pFanout) == pObj ) return Aig_ObjFaninC1(pObj);
assert(0); return -1;
}
// create the ghost of the new node
static inline Aig_Obj_t * Aig_ObjCreateGhost( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1, Aig_Type_t Type )
{
Aig_Obj_t * pGhost;
assert( Type != AIG_OBJ_AND || !Aig_ObjIsConst1(Aig_Regular(p0)) );
assert( p1 == NULL || !Aig_ObjIsConst1(Aig_Regular(p1)) );
assert( Type == AIG_OBJ_CI || Aig_Regular(p0) != Aig_Regular(p1) );
pGhost = Aig_ManGhost(p);
pGhost->Type = Type;
if ( p1 == NULL || Aig_Regular(p0)->Id < Aig_Regular(p1)->Id )
{
pGhost->pFanin0 = p0;
pGhost->pFanin1 = p1;
}
else
{
pGhost->pFanin0 = p1;
pGhost->pFanin1 = p0;
}
return pGhost;
}
// internal memory manager
static inline Aig_Obj_t * Aig_ManFetchMemory( Aig_Man_t * p )
{
extern char * Aig_MmFixedEntryFetch( Aig_MmFixed_t * p );
Aig_Obj_t * pTemp;
pTemp = (Aig_Obj_t *)Aig_MmFixedEntryFetch( p->pMemObjs );
memset( pTemp, 0, sizeof(Aig_Obj_t) );
pTemp->Id = Vec_PtrSize(p->vObjs);
Vec_PtrPush( p->vObjs, pTemp );
return pTemp;
}
static inline void Aig_ManRecycleMemory( Aig_Man_t * p, Aig_Obj_t * pEntry )
{
extern void Aig_MmFixedEntryRecycle( Aig_MmFixed_t * p, char * pEntry );
assert( pEntry->nRefs == 0 );
pEntry->Type = AIG_OBJ_NONE; // distinquishes a dead node from a live node
Aig_MmFixedEntryRecycle( p->pMemObjs, (char *)pEntry );
p->nDeleted++;
}
////////////////////////////////////////////////////////////////////////
/// ITERATORS ///
////////////////////////////////////////////////////////////////////////
// iterator over the combinational inputs
#define Aig_ManForEachCi( p, pObj, i ) \
Vec_PtrForEachEntry( Aig_Obj_t *, p->vCis, pObj, i )
#define Aig_ManForEachCiReverse( p, pObj, i ) \
Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vCis, pObj, i )
// iterator over the combinational outputs
#define Aig_ManForEachCo( p, pObj, i ) \
Vec_PtrForEachEntry( Aig_Obj_t *, p->vCos, pObj, i )
#define Aig_ManForEachCoReverse( p, pObj, i ) \
Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vCos, pObj, i )
// iterators over all objects, including those currently not used
#define Aig_ManForEachObj( p, pObj, i ) \
Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else
#define Aig_ManForEachObjReverse( p, pObj, i ) \
Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL ) {} else
// iterators over the objects whose IDs are stored in an array
#define Aig_ManForEachObjVec( vIds, p, pObj, i ) \
for ( i = 0; i < Vec_IntSize(vIds) && (((pObj) = Aig_ManObj(p, Vec_IntEntry(vIds,i))), 1); i++ )
#define Aig_ManForEachObjVecReverse( vIds, p, pObj, i ) \
for ( i = Vec_IntSize(vIds) - 1; i >= 0 && (((pObj) = Aig_ManObj(p, Vec_IntEntry(vIds,i))), 1); i-- )
// iterators over all nodes
#define Aig_ManForEachNode( p, pObj, i ) \
Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsNode(pObj) ) {} else
#define Aig_ManForEachNodeReverse( p, pObj, i ) \
Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsNode(pObj) ) {} else
// iterator over all nodes
#define Aig_ManForEachExor( p, pObj, i ) \
Vec_PtrForEachEntry( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsExor(pObj) ) {} else
#define Aig_ManForEachExorReverse( p, pObj, i ) \
Vec_PtrForEachEntryReverse( Aig_Obj_t *, p->vObjs, pObj, i ) if ( (pObj) == NULL || !Aig_ObjIsExor(pObj) ) {} else
// these two procedures are only here for the use inside the iterator
static inline int Aig_ObjFanout0Int( Aig_Man_t * p, int ObjId ) { assert(ObjId < p->nFansAlloc); return p->pFanData[5*ObjId]; }
static inline int Aig_ObjFanoutNext( Aig_Man_t * p, int iFan ) { assert(iFan/2 < p->nFansAlloc); return p->pFanData[5*(iFan >> 1) + 3 + (iFan & 1)]; }
// iterator over the fanouts
#define Aig_ObjForEachFanout( p, pObj, pFanout, iFan, i ) \
for ( assert(p->pFanData), i = 0; (i < (int)(pObj)->nRefs) && \
(((iFan) = i? Aig_ObjFanoutNext(p, iFan) : Aig_ObjFanout0Int(p, pObj->Id)), 1) && \
(((pFanout) = Aig_ManObj(p, iFan>>1)), 1); i++ )
////////////////////////////////////////////////////////////////////////
/// SEQUENTIAL ITERATORS ///
////////////////////////////////////////////////////////////////////////
// iterator over the primary inputs
#define Aig_ManForEachPiSeq( p, pObj, i ) \
Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCis, pObj, i, Aig_ManCiNum(p)-Aig_ManRegNum(p) )
// iterator over the latch outputs
#define Aig_ManForEachLoSeq( p, pObj, i ) \
Vec_PtrForEachEntryStart( Aig_Obj_t *, p->vCis, pObj, i, Aig_ManCiNum(p)-Aig_ManRegNum(p) )
// iterator over the primary outputs
#define Aig_ManForEachPoSeq( p, pObj, i ) \
Vec_PtrForEachEntryStop( Aig_Obj_t *, p->vCos, pObj, i, Aig_ManCoNum(p)-Aig_ManRegNum(p) )
// iterator over the latch inputs
#define Aig_ManForEachLiSeq( p, pObj, i ) \
Vec_PtrForEachEntryStart( Aig_Obj_t *, p->vCos, pObj, i, Aig_ManCoNum(p)-Aig_ManRegNum(p) )
// iterator over the latch input and outputs
#define Aig_ManForEachLiLoSeq( p, pObjLi, pObjLo, k ) \
for ( k = 0; (k < Aig_ManRegNum(p)) && (((pObjLi) = Aig_ManLi(p, k)), 1) \
&& (((pObjLo)=Aig_ManLo(p, k)), 1); k++ )
////////////////////////////////////////////////////////////////////////
/// FUNCTION DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
/*=== aigCheck.c ========================================================*/
extern ABC_DLL int Aig_ManCheck( Aig_Man_t * p );
extern void Aig_ManCheckMarkA( Aig_Man_t * p );
extern void Aig_ManCheckPhase( Aig_Man_t * p );
/*=== aigCuts.c ========================================================*/
extern Aig_ManCut_t * Aig_ComputeCuts( Aig_Man_t * pAig, int nCutsMax, int nLeafMax, int fTruth, int fVerbose );
extern void Aig_ManCutStop( Aig_ManCut_t * p );
/*=== aigDfs.c ==========================================================*/
extern int Aig_ManVerifyTopoOrder( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManDfs( Aig_Man_t * p, int fNodesOnly );
extern Vec_Ptr_t * Aig_ManDfsAll( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManDfsPreorder( Aig_Man_t * p, int fNodesOnly );
extern Vec_Vec_t * Aig_ManLevelize( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManDfsNodes( Aig_Man_t * p, Aig_Obj_t ** ppNodes, int nNodes );
extern Vec_Ptr_t * Aig_ManDfsChoices( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManDfsReverse( Aig_Man_t * p );
extern int Aig_ManLevelNum( Aig_Man_t * p );
extern int Aig_ManChoiceLevel( Aig_Man_t * p );
extern int Aig_DagSize( Aig_Obj_t * pObj );
extern int Aig_SupportSize( Aig_Man_t * p, Aig_Obj_t * pObj );
extern Vec_Ptr_t * Aig_Support( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_SupportNodes( Aig_Man_t * p, Aig_Obj_t ** ppObjs, int nObjs, Vec_Ptr_t * vSupp );
extern void Aig_ConeUnmark_rec( Aig_Obj_t * pObj );
extern Aig_Obj_t * Aig_Transfer( Aig_Man_t * pSour, Aig_Man_t * pDest, Aig_Obj_t * pObj, int nVars );
extern Aig_Obj_t * Aig_Compose( Aig_Man_t * p, Aig_Obj_t * pRoot, Aig_Obj_t * pFunc, int iVar );
extern void Aig_ObjCollectCut( Aig_Obj_t * pRoot, Vec_Ptr_t * vLeaves, Vec_Ptr_t * vNodes );
extern int Aig_ObjCollectSuper( Aig_Obj_t * pObj, Vec_Ptr_t * vSuper );
/*=== aigDup.c ==========================================================*/
extern Aig_Obj_t * Aig_ManDupSimpleDfs_rec( Aig_Man_t * pNew, Aig_Man_t * p, Aig_Obj_t * pObj );
extern Aig_Man_t * Aig_ManDupSimple( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupSimpleWithHints( Aig_Man_t * p, Vec_Int_t * vHints );
extern Aig_Man_t * Aig_ManDupSimpleDfs( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupSimpleDfsPart( Aig_Man_t * p, Vec_Ptr_t * vPis, Vec_Ptr_t * vCos );
extern Aig_Man_t * Aig_ManDupOrdered( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupCof( Aig_Man_t * p, int iInput, int Value );
extern Aig_Man_t * Aig_ManDupTrim( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupExor( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupDfs( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManOrderPios( Aig_Man_t * p, Aig_Man_t * pOrder );
extern Aig_Man_t * Aig_ManDupDfsGuided( Aig_Man_t * p, Vec_Ptr_t * vPios );
extern Aig_Man_t * Aig_ManDupLevelized( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupWithoutPos( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupFlopsOnly( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupRepres( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupRepresDfs( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManCreateMiter( Aig_Man_t * p1, Aig_Man_t * p2, int fImpl );
extern Aig_Man_t * Aig_ManDupOrpos( Aig_Man_t * p, int fAddRegs );
extern Aig_Man_t * Aig_ManDupOneOutput( Aig_Man_t * p, int iPoNum, int fAddRegs );
extern Aig_Man_t * Aig_ManDupUnsolvedOutputs( Aig_Man_t * p, int fAddRegs );
extern Aig_Man_t * Aig_ManDupArray( Vec_Ptr_t * vArray );
extern Aig_Man_t * Aig_ManDupNodes( Aig_Man_t * pMan, Vec_Ptr_t * vArray );
/*=== aigFanout.c ==========================================================*/
extern void Aig_ObjAddFanout( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pFanout );
extern void Aig_ObjRemoveFanout( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pFanout );
extern void Aig_ManFanoutStart( Aig_Man_t * p );
extern void Aig_ManFanoutStop( Aig_Man_t * p );
/*=== aigFrames.c ==========================================================*/
extern Aig_Man_t * Aig_ManFrames( Aig_Man_t * pAig, int nFs, int fInit, int fOuts, int fRegs, int fEnlarge, Aig_Obj_t *** ppObjMap );
/*=== aigMan.c ==========================================================*/
extern Aig_Man_t * Aig_ManStart( int nNodesMax );
extern Aig_Man_t * Aig_ManStartFrom( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManExtractMiter( Aig_Man_t * p, Aig_Obj_t * pNode1, Aig_Obj_t * pNode2 );
extern void Aig_ManStop( Aig_Man_t * p );
extern void Aig_ManStopP( Aig_Man_t ** p );
extern int Aig_ManCleanup( Aig_Man_t * p );
extern int Aig_ManAntiCleanup( Aig_Man_t * p );
extern int Aig_ManCiCleanup( Aig_Man_t * p );
extern int Aig_ManCoCleanup( Aig_Man_t * p );
extern void Aig_ManPrintStats( Aig_Man_t * p );
extern void Aig_ManReportImprovement( Aig_Man_t * p, Aig_Man_t * pNew );
extern void Aig_ManSetRegNum( Aig_Man_t * p, int nRegs );
extern void Aig_ManFlipFirstPo( Aig_Man_t * p );
extern void * Aig_ManReleaseData( Aig_Man_t * p );
/*=== aigMem.c ==========================================================*/
extern void Aig_ManStartMemory( Aig_Man_t * p );
extern void Aig_ManStopMemory( Aig_Man_t * p );
/*=== aigMffc.c ==========================================================*/
extern int Aig_NodeRef_rec( Aig_Obj_t * pNode, unsigned LevelMin );
extern int Aig_NodeDeref_rec( Aig_Obj_t * pNode, unsigned LevelMin, float * pPower, float * pProbs );
extern int Aig_NodeMffcSupp( Aig_Man_t * p, Aig_Obj_t * pNode, int LevelMin, Vec_Ptr_t * vSupp );
extern int Aig_NodeMffcLabel( Aig_Man_t * p, Aig_Obj_t * pNode, float * pPower );
extern int Aig_NodeMffcLabelCut( Aig_Man_t * p, Aig_Obj_t * pNode, Vec_Ptr_t * vLeaves );
extern int Aig_NodeMffcExtendCut( Aig_Man_t * p, Aig_Obj_t * pNode, Vec_Ptr_t * vLeaves, Vec_Ptr_t * vResult );
/*=== aigObj.c ==========================================================*/
extern Aig_Obj_t * Aig_ObjCreateCi( Aig_Man_t * p );
extern Aig_Obj_t * Aig_ObjCreateCo( Aig_Man_t * p, Aig_Obj_t * pDriver );
extern Aig_Obj_t * Aig_ObjCreate( Aig_Man_t * p, Aig_Obj_t * pGhost );
extern void Aig_ObjConnect( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pFan0, Aig_Obj_t * pFan1 );
extern void Aig_ObjDisconnect( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjDelete( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjDelete_rec( Aig_Man_t * p, Aig_Obj_t * pObj, int fFreeTop );
extern void Aig_ObjDeletePo( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjPrint( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ObjPatchFanin0( Aig_Man_t * p, Aig_Obj_t * pObj, Aig_Obj_t * pFaninNew );
extern void Aig_ObjReplace( Aig_Man_t * p, Aig_Obj_t * pObjOld, Aig_Obj_t * pObjNew, int fUpdateLevel );
/*=== aigOper.c =========================================================*/
extern Aig_Obj_t * Aig_IthVar( Aig_Man_t * p, int i );
extern Aig_Obj_t * Aig_Oper( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1, Aig_Type_t Type );
extern Aig_Obj_t * Aig_And( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1 );
extern Aig_Obj_t * Aig_Or( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1 );
extern Aig_Obj_t * Aig_Exor( Aig_Man_t * p, Aig_Obj_t * p0, Aig_Obj_t * p1 );
extern Aig_Obj_t * Aig_Mux( Aig_Man_t * p, Aig_Obj_t * pC, Aig_Obj_t * p1, Aig_Obj_t * p0 );
extern Aig_Obj_t * Aig_Maj( Aig_Man_t * p, Aig_Obj_t * pA, Aig_Obj_t * pB, Aig_Obj_t * pC );
extern Aig_Obj_t * Aig_Multi( Aig_Man_t * p, Aig_Obj_t ** pArgs, int nArgs, Aig_Type_t Type );
extern Aig_Obj_t * Aig_Miter( Aig_Man_t * p, Vec_Ptr_t * vPairs );
extern Aig_Obj_t * Aig_MiterTwo( Aig_Man_t * p, Vec_Ptr_t * vNodes1, Vec_Ptr_t * vNodes2 );
extern Aig_Obj_t * Aig_CreateAnd( Aig_Man_t * p, int nVars );
extern Aig_Obj_t * Aig_CreateOr( Aig_Man_t * p, int nVars );
extern Aig_Obj_t * Aig_CreateExor( Aig_Man_t * p, int nVars );
/*=== aigOrder.c =========================================================*/
extern void Aig_ManOrderStart( Aig_Man_t * p );
extern void Aig_ManOrderStop( Aig_Man_t * p );
extern void Aig_ObjOrderInsert( Aig_Man_t * p, int ObjId );
extern void Aig_ObjOrderRemove( Aig_Man_t * p, int ObjId );
extern void Aig_ObjOrderAdvance( Aig_Man_t * p );
/*=== aigPart.c =========================================================*/
extern Vec_Ptr_t * Aig_ManSupports( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManSupportsInverse( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManSupportsRegisters( Aig_Man_t * p );
extern Vec_Ptr_t * Aig_ManPartitionSmart( Aig_Man_t * p, int nPartSizeLimit, int fVerbose, Vec_Ptr_t ** pvPartSupps );
extern Vec_Ptr_t * Aig_ManPartitionSmartRegisters( Aig_Man_t * pAig, int nSuppSizeLimit, int fVerbose );
extern Vec_Ptr_t * Aig_ManPartitionNaive( Aig_Man_t * p, int nPartSize );
extern Vec_Ptr_t * Aig_ManMiterPartitioned( Aig_Man_t * p1, Aig_Man_t * p2, int nPartSize, int fSmart );
extern Aig_Man_t * Aig_ManChoicePartitioned( Vec_Ptr_t * vAigs, int nPartSize, int nConfMax, int nLevelMax, int fVerbose );
extern Aig_Man_t * Aig_ManFraigPartitioned( Aig_Man_t * pAig, int nPartSize, int nConfMax, int nLevelMax, int fVerbose );
extern Aig_Man_t * Aig_ManChoiceConstructive( Vec_Ptr_t * vAigs, int fVerbose );
/*=== aigPartReg.c =========================================================*/
extern Vec_Ptr_t * Aig_ManRegPartitionSimple( Aig_Man_t * pAig, int nPartSize, int nOverSize );
extern void Aig_ManPartDivide( Vec_Ptr_t * vResult, Vec_Int_t * vDomain, int nPartSize, int nOverSize );
extern Vec_Ptr_t * Aig_ManRegPartitionSmart( Aig_Man_t * pAig, int nPartSize );
extern Aig_Man_t * Aig_ManRegCreatePart( Aig_Man_t * pAig, Vec_Int_t * vPart, int * pnCountPis, int * pnCountRegs, int ** ppMapBack );
extern Vec_Ptr_t * Aig_ManRegProjectOnehots( Aig_Man_t * pAig, Aig_Man_t * pPart, Vec_Ptr_t * vOnehots, int fVerbose );
/*=== aigRepr.c =========================================================*/
extern void Aig_ManReprStart( Aig_Man_t * p, int nIdMax );
extern void Aig_ManReprStop( Aig_Man_t * p );
extern void Aig_ObjCreateRepr( Aig_Man_t * p, Aig_Obj_t * pNode1, Aig_Obj_t * pNode2 );
extern void Aig_ManTransferRepr( Aig_Man_t * pNew, Aig_Man_t * p );
extern Aig_Man_t * Aig_ManDupRepr( Aig_Man_t * p, int fOrdered );
extern Aig_Man_t * Aig_ManDupReprBasic( Aig_Man_t * p );
extern int Aig_ManCountReprs( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManRehash( Aig_Man_t * p );
extern int Aig_ObjCheckTfi( Aig_Man_t * p, Aig_Obj_t * pNew, Aig_Obj_t * pOld );
extern void Aig_ManMarkValidChoices( Aig_Man_t * p );
extern int Aig_TransferMappedClasses( Aig_Man_t * pAig, Aig_Man_t * pPart, int * pMapBack );
/*=== aigRet.c ========================================================*/
extern Aig_Man_t * Rtm_ManRetime( Aig_Man_t * p, int fForward, int nStepsMax, int fVerbose );
/*=== aigRetF.c ========================================================*/
extern Aig_Man_t * Aig_ManRetimeFrontier( Aig_Man_t * p, int nStepsMax );
/*=== aigScl.c ==========================================================*/
extern Aig_Man_t * Aig_ManRemap( Aig_Man_t * p, Vec_Ptr_t * vMap );
extern int Aig_ManSeqCleanup( Aig_Man_t * p );
extern int Aig_ManSeqCleanupBasic( Aig_Man_t * p );
extern int Aig_ManCountMergeRegs( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManReduceLaches( Aig_Man_t * p, int fVerbose );
extern void Aig_ManComputeSccs( Aig_Man_t * p );
extern Aig_Man_t * Aig_ManScl( Aig_Man_t * pAig, int fLatchConst, int fLatchEqual, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose );
/*=== aigShow.c ========================================================*/
extern void Aig_ManShow( Aig_Man_t * pMan, int fHaig, Vec_Ptr_t * vBold );
/*=== aigTable.c ========================================================*/
extern Aig_Obj_t * Aig_TableLookup( Aig_Man_t * p, Aig_Obj_t * pGhost );
extern Aig_Obj_t * Aig_TableLookupTwo( Aig_Man_t * p, Aig_Obj_t * pFanin0, Aig_Obj_t * pFanin1 );
extern void Aig_TableInsert( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_TableDelete( Aig_Man_t * p, Aig_Obj_t * pObj );
extern int Aig_TableCountEntries( Aig_Man_t * p );
extern void Aig_TableProfile( Aig_Man_t * p );
extern void Aig_TableClear( Aig_Man_t * p );
/*=== aigTiming.c ========================================================*/
extern void Aig_ObjClearReverseLevel( Aig_Man_t * p, Aig_Obj_t * pObj );
extern int Aig_ObjRequiredLevel( Aig_Man_t * p, Aig_Obj_t * pObj );
extern void Aig_ManStartReverseLevels( Aig_Man_t * p, int nMaxLevelIncrease );
extern void Aig_ManStopReverseLevels( Aig_Man_t * p );
extern void Aig_ManUpdateLevel( Aig_Man_t * p, Aig_Obj_t * pObjNew );
extern void Aig_ManUpdateReverseLevel( Aig_Man_t * p, Aig_Obj_t * pObjNew );
extern void Aig_ManVerifyLevel( Aig_Man_t * p );
extern void Aig_ManVerifyReverseLevel( Aig_Man_t * p );
/*=== aigTruth.c ========================================================*/
extern unsigned * Aig_ManCutTruth( Aig_Obj_t * pRoot, Vec_Ptr_t * vLeaves, Vec_Ptr_t * vNodes, Vec_Ptr_t * vTruthElem, Vec_Ptr_t * vTruthStore );
/*=== aigTsim.c ========================================================*/
extern Aig_Man_t * Aig_ManConstReduce( Aig_Man_t * p, int fUseMvSweep, int nFramesSymb, int nFramesSatur, int fVerbose, int fVeryVerbose );
/*=== aigUtil.c =========================================================*/
extern void Aig_ManIncrementTravId( Aig_Man_t * p );
extern char * Aig_TimeStamp();
extern int Aig_ManHasNoGaps( Aig_Man_t * p );
extern int Aig_ManLevels( Aig_Man_t * p );
extern void Aig_ManResetRefs( Aig_Man_t * p );
extern void Aig_ManCleanMarkA( Aig_Man_t * p );
extern void Aig_ManCleanMarkB( Aig_Man_t * p );
extern void Aig_ManCleanMarkAB( Aig_Man_t * p );
extern void Aig_ManCleanData( Aig_Man_t * p );
extern void Aig_ObjCleanData_rec( Aig_Obj_t * pObj );
extern void Aig_ManCleanNext( Aig_Man_t * p );
extern void Aig_ObjCollectMulti( Aig_Obj_t * pFunc, Vec_Ptr_t * vSuper );
extern int Aig_ObjIsMuxType( Aig_Obj_t * pObj );
extern int Aig_ObjRecognizeExor( Aig_Obj_t * pObj, Aig_Obj_t ** ppFan0, Aig_Obj_t ** ppFan1 );
extern Aig_Obj_t * Aig_ObjRecognizeMux( Aig_Obj_t * pObj, Aig_Obj_t ** ppObjT, Aig_Obj_t ** ppObjE );
extern Aig_Obj_t * Aig_ObjReal_rec( Aig_Obj_t * pObj );
extern int Aig_ObjCompareIdIncrease( Aig_Obj_t ** pp1, Aig_Obj_t ** pp2 );
extern void Aig_ObjPrintEqn( FILE * pFile, Aig_Obj_t * pObj, Vec_Vec_t * vLevels, int Level );
extern void Aig_ObjPrintVerilog( FILE * pFile, Aig_Obj_t * pObj, Vec_Vec_t * vLevels, int Level );
extern void Aig_ObjPrintVerbose( Aig_Obj_t * pObj, int fHaig );
extern void Aig_ManPrintVerbose( Aig_Man_t * p, int fHaig );
extern void Aig_ManDump( Aig_Man_t * p );
extern void Aig_ManDumpBlif( Aig_Man_t * p, char * pFileName, Vec_Ptr_t * vPiNames, Vec_Ptr_t * vPoNames );
extern void Aig_ManDumpVerilog( Aig_Man_t * p, char * pFileName );
extern void Aig_ManSetCioIds( Aig_Man_t * p );
extern void Aig_ManCleanCioIds( Aig_Man_t * p );
extern int Aig_ManChoiceNum( Aig_Man_t * p );
extern char * Aig_FileNameGenericAppend( char * pBase, char * pSuffix );
extern unsigned Aig_ManRandom( int fReset );
extern word Aig_ManRandom64( int fReset );
extern void Aig_ManRandomInfo( Vec_Ptr_t * vInfo, int iInputStart, int iWordStart, int iWordStop );
extern void Aig_NodeUnionLists( Vec_Ptr_t * vArr1, Vec_Ptr_t * vArr2, Vec_Ptr_t * vArr );
extern void Aig_NodeIntersectLists( Vec_Ptr_t * vArr1, Vec_Ptr_t * vArr2, Vec_Ptr_t * vArr );
extern void Aig_ManSetPhase( Aig_Man_t * pAig );
extern Vec_Ptr_t * Aig_ManMuxesCollect( Aig_Man_t * pAig );
extern void Aig_ManMuxesDeref( Aig_Man_t * pAig, Vec_Ptr_t * vMuxes );
extern void Aig_ManMuxesRef( Aig_Man_t * pAig, Vec_Ptr_t * vMuxes );
extern void Aig_ManInvertConstraints( Aig_Man_t * pAig );
/*=== aigWin.c =========================================================*/
extern void Aig_ManFindCut( Aig_Obj_t * pRoot, Vec_Ptr_t * vFront, Vec_Ptr_t * vVisited, int nSizeLimit, int nFanoutLimit );
/*=== aigMem.c ===========================================================*/
// fixed-size-block memory manager
extern Aig_MmFixed_t * Aig_MmFixedStart( int nEntrySize, int nEntriesMax );
extern void Aig_MmFixedStop( Aig_MmFixed_t * p, int fVerbose );
extern char * Aig_MmFixedEntryFetch( Aig_MmFixed_t * p );
extern void Aig_MmFixedEntryRecycle( Aig_MmFixed_t * p, char * pEntry );
extern void Aig_MmFixedRestart( Aig_MmFixed_t * p );
extern int Aig_MmFixedReadMemUsage( Aig_MmFixed_t * p );
extern int Aig_MmFixedReadMaxEntriesUsed( Aig_MmFixed_t * p );
// flexible-size-block memory manager
extern Aig_MmFlex_t * Aig_MmFlexStart();
extern void Aig_MmFlexStop( Aig_MmFlex_t * p, int fVerbose );
extern char * Aig_MmFlexEntryFetch( Aig_MmFlex_t * p, int nBytes );
extern void Aig_MmFlexRestart( Aig_MmFlex_t * p );
extern int Aig_MmFlexReadMemUsage( Aig_MmFlex_t * p );
// hierarchical memory manager
extern Aig_MmStep_t * Aig_MmStepStart( int nSteps );
extern void Aig_MmStepStop( Aig_MmStep_t * p, int fVerbose );
extern char * Aig_MmStepEntryFetch( Aig_MmStep_t * p, int nBytes );
extern void Aig_MmStepEntryRecycle( Aig_MmStep_t * p, char * pEntry, int nBytes );
extern int Aig_MmStepReadMemUsage( Aig_MmStep_t * p );
ABC_NAMESPACE_HEADER_END
#endif
////////////////////////////////////////////////////////////////////////
/// END OF FILE ///
////////////////////////////////////////////////////////////////////////
abc-0.65/src/aig/aig/aigCanon.c 0000664 0000000 0000000 00000050414 15200543000 0016134 0 ustar 00root root 0000000 0000000 /**CFile****************************************************************
FileName [aigCanon.c]
SystemName [ABC: Logic synthesis and verification system.]
PackageName [AIG package.]
Synopsis [Processing the library of semi-canonical AIGs.]
Author [Alan Mishchenko]
Affiliation [UC Berkeley]
Date [Ver. 1.0. Started - April 28, 2007.]
Revision [$Id: aigCanon.c,v 1.00 2007/04/28 00:00:00 alanmi Exp $]
***********************************************************************/
#include "aig.h"
#include "bool/kit/kit.h"
#include "bool/bdc/bdc.h"
#include "aig/ioa/ioa.h"
ABC_NAMESPACE_IMPL_START
////////////////////////////////////////////////////////////////////////
/// DECLARATIONS ///
////////////////////////////////////////////////////////////////////////
#define RMAN_MAXVARS 12
#define RMAX_MAXWORD (RMAN_MAXVARS <= 5 ? 1 : (1 << (RMAN_MAXVARS - 5)))
typedef struct Aig_VSig_t_ Aig_VSig_t;
struct Aig_VSig_t_
{
int nOnes;
int nCofOnes[RMAN_MAXVARS];
};
typedef struct Aig_Tru_t_ Aig_Tru_t;
struct Aig_Tru_t_
{
Aig_Tru_t * pNext;
int Id;
unsigned nVisits : 27;
unsigned nVars : 5;
unsigned pTruth[0];
};
typedef struct Aig_RMan_t_ Aig_RMan_t;
struct Aig_RMan_t_
{
int nVars; // the largest variable number
Aig_Man_t * pAig; // recorded subgraphs
// hash table
int nBins;
Aig_Tru_t ** pBins;
int nEntries;
Aig_MmFlex_t* pMemTrus;
// bidecomposion
Bdc_Man_t * pBidec;
// temporaries
unsigned pTruthInit[RMAX_MAXWORD]; // canonical truth table
unsigned pTruth[RMAX_MAXWORD]; // current truth table
unsigned pTruthC[RMAX_MAXWORD]; // canonical truth table
unsigned pTruthTemp[RMAX_MAXWORD]; // temporary truth table
Aig_VSig_t pMints[2*RMAN_MAXVARS]; // minterm count
char pPerm[RMAN_MAXVARS]; // permutation
char pPermR[RMAN_MAXVARS]; // reverse permutation
// statistics
int nVarFuncs[RMAN_MAXVARS+1];
int nTotal;
int nTtDsd;
int nTtDsdPart;
int nTtDsdNot;
int nUniqueVars;
};
static Aig_RMan_t * s_pRMan = NULL;
////////////////////////////////////////////////////////////////////////
/// FUNCTION DEFINITIONS ///
////////////////////////////////////////////////////////////////////////
/**Function*************************************************************
Synopsis [Allocates recording manager.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
Aig_RMan_t * Aig_RManStart()
{
static Bdc_Par_t Pars = {0}, * pPars = &Pars;
Aig_RMan_t * p;
p = ABC_ALLOC( Aig_RMan_t, 1 );
memset( p, 0, sizeof(Aig_RMan_t) );
p->nVars = RMAN_MAXVARS;
p->pAig = Aig_ManStart( 1000000 );
Aig_IthVar( p->pAig, p->nVars-1 );
// create hash table
p->nBins = Abc_PrimeCudd(5000);
p->pBins = ABC_CALLOC( Aig_Tru_t *, p->nBins );
p->pMemTrus = Aig_MmFlexStart();
// bi-decomposition manager
pPars->nVarsMax = p->nVars;
pPars->fVerbose = 0;
p->pBidec = Bdc_ManAlloc( pPars );
return p;
}
/**Function*************************************************************
Synopsis [Returns the hash key.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
static inline int Aig_RManTableHash( unsigned * pTruth, int nVars, int nBins, int * pPrimes )
{
int i, nWords = Kit_TruthWordNum( nVars );
unsigned uHash = 0;
for ( i = 0; i < nWords; i++ )
uHash ^= pTruth[i] * pPrimes[i & 0xf];
return (int)(uHash % nBins);
}
/**Function*************************************************************
Synopsis [Returns the given record.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
Aig_Tru_t ** Aig_RManTableLookup( Aig_RMan_t * p, unsigned * pTruth, int nVars )
{
static int s_Primes[16] = {
1291, 1699, 1999, 2357, 2953, 3313, 3907, 4177,
4831, 5147, 5647, 6343, 6899, 7103, 7873, 8147 };
Aig_Tru_t ** ppSpot, * pEntry;
ppSpot = p->pBins + Aig_RManTableHash( pTruth, nVars, p->nBins, s_Primes );
for ( pEntry = *ppSpot; pEntry; ppSpot = &pEntry->pNext, pEntry = pEntry->pNext )
if ( Kit_TruthIsEqual( pEntry->pTruth, pTruth, nVars ) )
return ppSpot;
return ppSpot;
}
/**Function*************************************************************
Synopsis [Find or add new entry.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManTableResize( Aig_RMan_t * p )
{
Aig_Tru_t * pEntry, * pNext;
Aig_Tru_t ** pBinsOld, ** ppPlace;
int nBinsOld, Counter, i;
abctime clk;
assert( p->pBins != NULL );
clk = Abc_Clock();
// save the old Bins
pBinsOld = p->pBins;
nBinsOld = p->nBins;
// get the new Bins
p->nBins = Abc_PrimeCudd( 3 * nBinsOld );
p->pBins = ABC_CALLOC( Aig_Tru_t *, p->nBins );
// rehash the entries from the old table
Counter = 0;
for ( i = 0; i < nBinsOld; i++ )
for ( pEntry = pBinsOld[i], pNext = pEntry? pEntry->pNext : NULL;
pEntry; pEntry = pNext, pNext = pEntry? pEntry->pNext : NULL )
{
// get the place where this entry goes in the Bins
ppPlace = Aig_RManTableLookup( p, pEntry->pTruth, pEntry->nVars );
assert( *ppPlace == NULL ); // should not be there
// add the entry to the list
*ppPlace = pEntry;
pEntry->pNext = NULL;
Counter++;
}
assert( Counter == p->nEntries );
// ABC_PRT( "Time", Abc_Clock() - clk );
ABC_FREE( pBinsOld );
}
/**Function*************************************************************
Synopsis [Find or add new entry.]
Description [Returns 1 if this is a new entry.]
SideEffects []
SeeAlso []
***********************************************************************/
int Aig_RManTableFindOrAdd( Aig_RMan_t * p, unsigned * pTruth, int nVars )
{
Aig_Tru_t ** ppSpot, * pEntry;
int nBytes;
ppSpot = Aig_RManTableLookup( p, pTruth, nVars );
if ( *ppSpot )
{
(*ppSpot)->nVisits++;
return 0;
}
nBytes = sizeof(Aig_Tru_t) + sizeof(unsigned) * Kit_TruthWordNum(nVars);
if ( p->nEntries == 3*p->nBins )
Aig_RManTableResize( p );
pEntry = (Aig_Tru_t *)Aig_MmFlexEntryFetch( p->pMemTrus, nBytes );
pEntry->Id = p->nEntries++;
pEntry->nVars = nVars;
pEntry->nVisits = 1;
pEntry->pNext = NULL;
memcpy( pEntry->pTruth, pTruth, sizeof(unsigned) * Kit_TruthWordNum(nVars) );
*ppSpot = pEntry;
return 1;
}
/**Function*************************************************************
Synopsis [Deallocates recording manager.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManStop( Aig_RMan_t * p )
{
int i;
printf( "Total funcs = %10d\n", p->nTotal );
printf( "Full DSD funcs = %10d\n", p->nTtDsd );
printf( "Part DSD funcs = %10d\n", p->nTtDsdPart );
printf( "Non- DSD funcs = %10d\n", p->nTtDsdNot );
printf( "Uniq-var funcs = %10d\n", p->nUniqueVars );
printf( "Unique funcs = %10d\n", p->nEntries );
printf( "Distribution of functions:\n" );
for ( i = 5; i <= p->nVars; i++ )
printf( "%2d = %8d\n", i, p->nVarFuncs[i] );
Aig_MmFlexStop( p->pMemTrus, 0 );
Aig_ManStop( p->pAig );
Bdc_ManFree( p->pBidec );
ABC_FREE( p->pBins );
ABC_FREE( p );
}
/**Function*************************************************************
Synopsis [Stops recording.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManQuit()
{
// extern void Ioa_WriteAiger( Aig_Man_t * pMan, char * pFileName, int fWriteSymbols, int fCompact );
char Buffer[20];
if ( s_pRMan == NULL )
return;
// dump the library file
sprintf( Buffer, "aiglib%02d.aig", s_pRMan->nVars );
Ioa_WriteAiger( s_pRMan->pAig, Buffer, 0, 1 );
// quit the manager
Aig_RManStop( s_pRMan );
s_pRMan = NULL;
}
/**Function*************************************************************
Synopsis [Returns 1 if all variables are unique.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManPrintVarProfile( unsigned * pTruth, int nVars, unsigned * pTruthAux )
{
int pStore2[32];
int i;
Kit_TruthCountOnesInCofsSlow( pTruth, nVars, pStore2, pTruthAux );
for ( i = 0; i < nVars; i++ )
printf( "%2d/%2d ", pStore2[2*i], pStore2[2*i+1] );
printf( "\n" );
}
/**Function*************************************************************
Synopsis [Sorts numbers in the increasing order.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManSortNums( int * pArray, int nVars )
{
int i, j, best_i, tmp;
for ( i = 0; i < nVars-1; i++ )
{
best_i = i;
for ( j = i+1; j < nVars; j++ )
if ( pArray[j] > pArray[best_i] )
best_i = j;
tmp = pArray[i]; pArray[i] = pArray[best_i]; pArray[best_i] = tmp;
}
}
/**Function*************************************************************
Synopsis [Prints signatures for all variables.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManPrintSigs( Aig_VSig_t * pSigs, int nVars )
{
int v, i, k;
for ( v = 0; v < nVars; v++ )
{
printf( "%2d : ", v );
for ( k = 0; k < 2; k++ )
{
printf( "%5d ", pSigs[2*v+k].nOnes );
printf( "(" );
for ( i = 0; i < nVars; i++ )
printf( "%4d ", pSigs[2*v+k].nCofOnes[i] );
printf( ") " );
}
printf( "\n" );
}
}
/**Function*************************************************************
Synopsis [Computes signatures for all variables.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManComputeVSigs( unsigned * pTruth, int nVars, Aig_VSig_t * pSigs, unsigned * pAux )
{
int v;
for ( v = 0; v < nVars; v++ )
{
Kit_TruthCofactor0New( pAux, pTruth, nVars, v );
pSigs[2*v+0].nOnes = Kit_TruthCountOnes( pAux, nVars );
Kit_TruthCountOnesInCofs0( pAux, nVars, pSigs[2*v+0].nCofOnes );
Aig_RManSortNums( pSigs[2*v+0].nCofOnes, nVars );
Kit_TruthCofactor1New( pAux, pTruth, nVars, v );
pSigs[2*v+1].nOnes = Kit_TruthCountOnes( pAux, nVars );
Kit_TruthCountOnesInCofs0( pAux, nVars, pSigs[2*v+1].nCofOnes );
Aig_RManSortNums( pSigs[2*v+1].nCofOnes, nVars );
}
}
/**Function*************************************************************
Synopsis [Computs signatures for all variables.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
static inline int Aig_RManCompareSigs( Aig_VSig_t * p0, Aig_VSig_t * p1, int nVars )
{
// return memcmp( p0, p1, sizeof(int) + sizeof(int) * nVars );
return memcmp( p0, p1, sizeof(int) );
}
/**Function*************************************************************
Synopsis [Returns 1 if all variables are unique.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
int Aig_RManVarsAreUnique( Aig_VSig_t * pMints, int nVars )
{
int i;
for ( i = 0; i < nVars - 1; i++ )
if ( Aig_RManCompareSigs( &pMints[2*i], &pMints[2*(i+1)], nVars ) == 0 )
return 0;
return 1;
}
/**Function*************************************************************
Synopsis [Returns 1 if all variables are unique.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManPrintUniqueVars( Aig_VSig_t * pMints, int nVars )
{
int i;
for ( i = 0; i < nVars; i++ )
if ( Aig_RManCompareSigs( &pMints[2*i], &pMints[2*i+1], nVars ) == 0 )
printf( "=" );
else
printf( "x" );
printf( "\n" );
printf( "0" );
for ( i = 1; i < nVars; i++ )
if ( Aig_RManCompareSigs( &pMints[2*(i-1)], &pMints[2*i], nVars ) == 0 )
printf( "-" );
else if ( i < 10 )
printf( "%c", '0' + i );
else
printf( "%c", 'A' + i-10 );
printf( "\n" );
}
/**Function*************************************************************
Synopsis [Canonicize the truth table.]
Description [Returns the phase. ]
SideEffects []
SeeAlso []
***********************************************************************/
unsigned Aig_RManSemiCanonicize( unsigned * pOut, unsigned * pIn, int nVars, char * pCanonPerm, Aig_VSig_t * pSigs, int fReturnIn )
{
Aig_VSig_t TempSig;
int i, Temp, fChange, Counter;
unsigned * pTemp, uCanonPhase = 0;
// collect signatures
Aig_RManComputeVSigs( pIn, nVars, pSigs, pOut );
// canonicize phase
for ( i = 0; i < nVars; i++ )
{
// if ( pStore[2*i+0] <= pStore[2*i+1] )
if ( Aig_RManCompareSigs( &pSigs[2*i+0], &pSigs[2*i+1], nVars ) <= 0 )
continue;
uCanonPhase |= (1 << i);
TempSig = pSigs[2*i+0];
pSigs[2*i+0] = pSigs[2*i+1];
pSigs[2*i+1] = TempSig;
Kit_TruthChangePhase( pIn, nVars, i );
}
// permute
Counter = 0;
do {
fChange = 0;
for ( i = 0; i < nVars-1; i++ )
{
// if ( pStore[2*i] <= pStore[2*(i+1)] )
if ( Aig_RManCompareSigs( &pSigs[2*i], &pSigs[2*(i+1)], nVars ) <= 0 )
continue;
Counter++;
fChange = 1;
Temp = pCanonPerm[i];
pCanonPerm[i] = pCanonPerm[i+1];
pCanonPerm[i+1] = Temp;
TempSig = pSigs[2*i];
pSigs[2*i] = pSigs[2*(i+1)];
pSigs[2*(i+1)] = TempSig;
TempSig = pSigs[2*i+1];
pSigs[2*i+1] = pSigs[2*(i+1)+1];
pSigs[2*(i+1)+1] = TempSig;
Kit_TruthSwapAdjacentVars( pOut, pIn, nVars, i );
pTemp = pIn; pIn = pOut; pOut = pTemp;
}
} while ( fChange );
// swap if it was moved an even number of times
if ( fReturnIn ^ !(Counter & 1) )
Kit_TruthCopy( pOut, pIn, nVars );
return uCanonPhase;
}
/**Function*************************************************************
Synopsis []
Description []
SideEffects []
SeeAlso []
***********************************************************************/
static inline Aig_Obj_t * Bdc_FunCopyHop( Bdc_Fun_t * pObj )
{ return Aig_NotCond( (Aig_Obj_t *)Bdc_FuncCopy(Bdc_Regular(pObj)), Bdc_IsComplement(pObj) ); }
/**Function*************************************************************
Synopsis [Records one function.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManSaveOne( Aig_RMan_t * p, unsigned * pTruth, int nVars )
{
int i, nNodes, RetValue;
Bdc_Fun_t * pFunc;
Aig_Obj_t * pTerm;
// perform decomposition
RetValue = Bdc_ManDecompose( p->pBidec, pTruth, NULL, nVars, NULL, 1000 );
if ( RetValue < 0 )
{
printf( "Decomposition failed.\n" );
return;
}
// convert back into HOP
Bdc_FuncSetCopy( Bdc_ManFunc( p->pBidec, 0 ), Aig_ManConst1(p->pAig) );
for ( i = 0; i < nVars; i++ )
Bdc_FuncSetCopy( Bdc_ManFunc( p->pBidec, i+1 ), Aig_IthVar(p->pAig, i) );
nNodes = Bdc_ManNodeNum(p->pBidec);
for ( i = nVars + 1; i < nNodes; i++ )
{
pFunc = Bdc_ManFunc( p->pBidec, i );
Bdc_FuncSetCopy( pFunc, Aig_And( p->pAig,
Bdc_FunCopyHop(Bdc_FuncFanin0(pFunc)),
Bdc_FunCopyHop(Bdc_FuncFanin1(pFunc)) ) );
}
pTerm = Bdc_FunCopyHop( Bdc_ManRoot(p->pBidec) );
pTerm = Aig_ObjCreateCo( p->pAig, pTerm );
// assert( pTerm->fPhase == 0 );
}
/**Function*************************************************************
Synopsis [Records one function.]
Description []
SideEffects []
SeeAlso []
***********************************************************************/
void Aig_RManRecord( unsigned * pTruth, int nVarsInit )
{
int fVerify = 1;
Kit_DsdNtk_t * pNtk;
Kit_DsdObj_t * pObj;
unsigned uPhaseC;
int i, nVars, nWords;
int fUniqueVars;
if ( nVarsInit > RMAN_MAXVARS )
{
printf( "The number of variables in too large.\n" );
return;
}
if ( s_pRMan == NULL )
s_pRMan = Aig_RManStart();
s_pRMan->nTotal++;
// canonicize the function
pNtk = Kit_DsdDecompose( pTruth, nVarsInit );
pObj = Kit_DsdNonDsdPrimeMax( pNtk );
if ( pObj == NULL || pObj->nFans == 3 )
{
s_pRMan->nTtDsd++;
Kit_DsdNtkFree( pNtk );
return;
}
nVars = pObj->nFans;
s_pRMan->nVarFuncs[nVars]++;
if ( nVars < nVarsInit )
s_pRMan->nTtDsdPart++;
else
s_pRMan->nTtDsdNot++;
// compute the number of words
nWords = Abc_TruthWordNum( nVars );
// copy the function
memcpy( s_pRMan->pTruthInit, Kit_DsdObjTruth(pObj), (size_t)(4*nWords) );
Kit_DsdNtkFree( pNtk );
// canonicize the output
if ( s_pRMan->pTruthInit[0] & 1 )
Kit_TruthNot( s_pRMan->pTruthInit, s_pRMan->pTruthInit, nVars );
memcpy( s_pRMan->pTruth, s_pRMan->pTruthInit, 4*nWords );
// canonize the function
for ( i = 0; i < nVars; i++ )
s_pRMan->pPerm[i] = i;
uPhaseC = Aig_RManSemiCanonicize( s_pRMan->pTruthTemp, s_pRMan->pTruth, nVars, s_pRMan->pPerm, s_pRMan->pMints, 1 );
// check unique variables
fUniqueVars = Aig_RManVarsAreUnique( s_pRMan->pMints, nVars );
s_pRMan->nUniqueVars += fUniqueVars;
/*
printf( "%4d : ", s_pRMan->nTotal );
printf( "%2d %2d ", nVarsInit, nVars );
Extra_PrintBinary( stdout, &uPhaseC, nVars );
printf( " " );
for ( i = 0; i < nVars; i++ )
printf( "%2d/%2d ", s_pRMan->pMints[2*i], s_pRMan->pMints[2*i+1] );
printf( "\n" );
Aig_RManPrintUniqueVars( s_pRMan->pMints, nVars );
Extra_PrintBinary( stdout, s_pRMan->pTruth, 1<nTotal );
printf( "%2d %2d ", nVarsInit, nVars );
printf( " " );
printf( "\n" );
Aig_RManPrintUniqueVars( s_pRMan->pMints, nVars );
// Aig_RManPrintSigs( s_pRMan->pMints, nVars );
*/
//Extra_PrintBinary( stdout, s_pRMan->pTruth, 1<pTruth, nVars ) )
Aig_RManSaveOne( s_pRMan, s_pRMan->pTruth, nVars );
if ( fVerify )
{
// derive reverse permutation
for ( i = 0; i < nVars; i++ )
s_pRMan->pPermR[i] = s_pRMan->pPerm[i];
// implement permutation
Kit_TruthPermute( s_pRMan->pTruthTemp, s_pRMan->pTruth, nVars, s_pRMan->pPermR, 1 );
// implement polarity
for ( i = 0; i < nVars; i++ )
if ( uPhaseC & (1 << i) )
Kit_TruthChangePhase( s_pRMan->pTruth, nVars, i );
// perform verification
if ( fUniqueVars && !Kit_TruthIsEqual( s_pRMan->pTruth, s_pRMan->pTruthInit, nVars ) )
printf( "Verification failed.\n" );
}
//Aig_RManPrintVarProfile( s_pRMan->pTruth, nVars, s_pRMan->pTruthTemp );
//Extra_PrintBinary( stdout, s_pRMan->pTruth, 1<