Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
105 commits
Select commit Hold shift + click to select a range
cd2998b
Adding name-based input reordering in &cec.
alanminko Apr 4, 2026
ca2a410
Add log dump to %ufar.
alanminko Apr 4, 2026
80c8a9a
Bug fix in %blast.
alanminko Apr 7, 2026
8aa7e12
Adding trace logging to &sprove.
alanminko Apr 12, 2026
6a52468
fix timing inconsistency in calculating other time in Ssw_ManPrintSta…
zxxr1113 Apr 12, 2026
0f6ca59
Extend the eSLIM package
fxreichl Apr 14, 2026
2db6ae7
Merge pull request #497 from fxreichl/master
alanminko Apr 14, 2026
8762d6c
Merge pull request #496 from zxxr1113/fix-ssw-timing
alanminko Apr 14, 2026
fa042e4
Corrected #ifdef for mach based Apple builds in cadical_file.cpp.
Apr 18, 2026
1ddb7a2
Provide replacement value for PATH_MAX on platforms without it.
Apr 19, 2026
5096a78
Added option -c to call CaDiCaL solver inside bmc3 engine (bmc3 -c)
Meneya Apr 20, 2026
2b9920e
Relaxed assert in Io_WritePla() to avoid failure with too shallow net…
Apr 23, 2026
817d542
Use CPPFLAGS alongside CFLAGS and CXXFLAGS during build.
Apr 23, 2026
d74b33e
Added fix for write_cnf adding extra clauses on direct PI-PO
AdvaySingh1 Apr 23, 2026
1056de3
High memory use fix in &scorr -Z
alanminko Apr 25, 2026
8e6b287
Improving callbacks in &bmcG
alanminko Apr 26, 2026
c208326
Extending &sprove interface
alanminko Apr 26, 2026
b2a0cab
Updates to &sprove.
alanminko Apr 26, 2026
b413eb9
Fix windows build.
alanminko Apr 26, 2026
153d6b7
Fix out-of-bound bug in &glucose
alanminko May 1, 2026
d07ce81
Bug fixes.
alanminko May 1, 2026
60e091d
Replace failing assert in lutpack with non-failing version
gigeresk May 2, 2026
ff00f67
Updating verilog writer.
alanminko May 2, 2026
db8e5d9
Apply same assert fix to l144
gigeresk May 2, 2026
ec4faae
Merge pull request #501 from petterreinholdtsen/writepla-assert-relaxed
alanminko May 3, 2026
9ac97c7
Merge pull request #502 from petterreinholdtsen/make-cppflags
alanminko May 3, 2026
5611ca0
Merge pull request #503 from AdvaySingh1/ISSUE-479
alanminko May 3, 2026
298bcee
Merge pull request #505 from gigeresk/lutpack_assert_fix
alanminko May 3, 2026
6d9c88d
Merge pull request #499 from petterreinholdtsen/missing-path-max
alanminko May 3, 2026
84b78d5
Merge pull request #498 from petterreinholdtsen/mach-only-apple
alanminko May 3, 2026
fc4cfc0
Extending support for sequential AIGs.
alanminko May 5, 2026
eaa8496
Streamlining support for multi-output gates
alanminko May 8, 2026
f315727
Initial support of multi-output gates in sizing.
alanminko May 8, 2026
cf5da03
Bug fix.
alanminko May 10, 2026
d54cbda
Multi-output gate mapper.
alanminko May 10, 2026
d55ae14
New feature: Add incremental refinement to &scorr command
zxxr1113 May 10, 2026
60b3991
Assume minimum required times when not given by the user.
alanminko May 11, 2026
8c9e662
Bug fix in &sprove.
alanminko May 11, 2026
97b15a2
Fix: fix the build bug in abclib.dsp by registering cecCorrIncr.c
zxxr1113 May 11, 2026
9d410e8
Merge pull request #506 from zxxr1113/incremental_scorr_clean
alanminko May 11, 2026
c61f1a0
Bug fix in handling ufar calls.
alanminko May 12, 2026
2827348
Merge pull request #507 from Meneya/bmc3c
alanminko May 15, 2026
2656712
Fix warnings.
alanminko May 16, 2026
7bf1177
Add MM-based adder generation to &genadder.
alanminko May 16, 2026
07e38ef
Imrpovements in "twoexact".
alanminko May 18, 2026
ffb0ff6
Updating interface of %yosys to take multiple Verilog files.
alanminko May 18, 2026
f4d870e
Updating interface of "twoexaxct".
alanminko May 18, 2026
9e02a87
misc: Prevent Vec_IntRemove from loading nSize in every iteration
mshockwave May 19, 2026
70c42b7
Add option for lut optimisation
fxreichl May 21, 2026
cd6e9b5
Modify default intermediate AIGER file name.
alanminko May 22, 2026
a917c1a
Merge pull request #509 from fxreichl/master
alanminko May 22, 2026
7b0a6cb
Feat(rd_inv): Simple inv redis framework.
wjrforcyber Jun 1, 2026
0497d47
Update bzip2 from version 1.0.5 to 1.0.8
maliberty Jun 2, 2026
749bc49
Update zlib 1.2.5 to 1.3.2
maliberty Jun 3, 2026
21b2d89
Add output name permutation in &cec.
alanminko Jun 4, 2026
66f5d7c
mainUtils: match readline behavior when ABC_USE_READLINE is undefined
maliberty Jun 5, 2026
cd33ba5
Merge pull request #514 from maliberty/fix-non-readline-prompt-pipe
alanminko Jun 5, 2026
b7ee7a5
Fix a windows compile problem.
alanminko Jun 5, 2026
8149daf
giaSatLut: fix &satlut expanding LUT size from K=5 to K=6
flyingfoxyy Jun 6, 2026
9749046
Bug fix in required time propagation.
alanminko Jun 8, 2026
59896d6
Another bug fix in delay propagation.
alanminko Jun 8, 2026
304481b
Simplify internal AIG reading when %yosys is used.
alanminko Jun 8, 2026
b73fcb7
Add missing includes for windows
mmicko Jun 8, 2026
d3d218e
Cleanup
mmicko Jun 8, 2026
1e13033
Make sure we detect these errors in future
mmicko Jun 9, 2026
cd9d9fc
Fix namespace build of zlib gzguts.h on macOS
maliberty Jun 15, 2026
f1ec6d3
Merge pull request #512 from maliberty/update-bzip2
alanminko Jun 15, 2026
8783dcf
Merge pull request #513 from maliberty/update-zlib
alanminko Jun 15, 2026
a4b7912
Adding API to compute switching activity
alanminko Jun 16, 2026
e00a2fe
Adding support power info exraction from Liberty
alanminko Jun 16, 2026
2d835aa
Adding command "power" to eval static/dynamic power
alanminko Jun 16, 2026
61e74a1
Update high-effort synthesis.
alanminko Jun 16, 2026
334ae5d
Update .gitingore
alanminko Jun 16, 2026
f1d6c36
Merge pull request #517 from YosysHQ/cmake_windows
alanminko Jun 16, 2026
d79133b
Merge pull request #516 from flyingfoxyy/fix-satlut-k5-boundary
alanminko Jun 16, 2026
4c08da8
Merge pull request #511 from wjrforcyber/rd_inv
alanminko Jun 16, 2026
cfd526a
Fix strict aliasing violations
heshpdx Jun 16, 2026
29c59ab
Merge pull request #508 from mshockwave/patch/fix-vec-int-nSize-reload
alanminko Jun 16, 2026
70a92ee
Fix issue with constant replacements
fxreichl Jun 18, 2026
68bf7cb
Merge pull request #521 from fxreichl/master
alanminko Jun 18, 2026
7d253d7
Do not support extension "e" (equiv classes of nodes).
alanminko Jun 23, 2026
2eb8f38
Fix build errors and spacing
heshpdx Jun 24, 2026
3ce53c3
Merge pull request #519 from heshpdx/master
alanminko Jun 24, 2026
feaf7a7
Improve support for -D 3 together with -X and fix an issue in the con…
fxreichl Jun 25, 2026
5100825
Only use __int128 on architectures where it is present.
May 5, 2026
0e32819
Fix WASI and make prototype valid
mmicko Mar 9, 2026
b89ccd3
Fix for case where ABC_USE_PTHREADS is not used
mmicko Jun 25, 2026
9794114
Change to ABC_NO_HISTORY so it is possible to change externally
mmicko Jun 25, 2026
79f1e0b
Bug fixes.
alanminko Jun 29, 2026
b4ca3e7
Adding &put -i to preserve special LUT mapping.
alanminko Jun 30, 2026
f7c7cf0
Fix(rand): UB on different platform
wjrforcyber Jul 1, 2026
a01df4b
Adding function printout to &put.
alanminko Jul 1, 2026
f8faf43
add dynamic SRM and incremental simulation into -i
XiRan1113 Jul 1, 2026
0a297ad
Merge pull request #529 from zxxr1113/scorr-i-pr3-upstream-merge
alanminko Jul 2, 2026
523af52
Merge pull request #525 from wjrforcyber/rand_fix
alanminko Jul 2, 2026
a082d1b
Merge pull request #524 from YosysHQ/upsteaming
alanminko Jul 2, 2026
bcfdf59
Merge pull request #523 from fxreichl/master
alanminko Jul 2, 2026
1f20b50
Add per-object origin tracking (vOrigins) to Gia_Man_t
robtaylor Feb 28, 2026
643a659
Propagate vOrigins through all ABC9 engines
robtaylor Mar 5, 2026
3f1d085
Multi-origin vOrigins with inline buffer optimization
robtaylor Mar 14, 2026
31202d9
Add &origins and &origins_id commands for origin tracking
robtaylor Mar 17, 2026
21e02a9
Add per-node origin cap (nOriginsMax) to bound accumulation
robtaylor Apr 1, 2026
760b8d0
Add regression tests for origin tracking (vOrigins)
robtaylor Jun 28, 2026
4374d11
Fix: AIGER reader drops "y" origins after an "M" cell-mapping section
robtaylor Jun 28, 2026
3632a04
gia: propagate vOrigins through AIG-rebuilding passes (balance, mux c…
robtaylor Jun 29, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/scripts/abcexe.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatSpecificWarningsAsErrors>4013</TreatSpecificWarningsAsErrors>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
Expand Down
1 change: 1 addition & 0 deletions .github/scripts/abclib.vcxproj.template
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<DisableSpecificWarnings>4146;4334;4996;4703;%(DisableSpecificWarnings)</DisableSpecificWarnings>
<TreatSpecificWarningsAsErrors>4013</TreatSpecificWarningsAsErrors>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<SDLCheck>true</SDLCheck>
Expand Down
5 changes: 4 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,14 @@ ReleaseExt/

_/
_TEST/
tools/
temp/
lib/abc*
lib/m114*
lib/bip*
docs/
.cache/
.vscode/

src/ext*
src/xxx/
Expand Down Expand Up @@ -62,4 +65,4 @@ tags

/cmake
/cscope
abc.history
abc.history
14 changes: 7 additions & 7 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ MODULES := \
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/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 \
Expand Down Expand Up @@ -185,32 +185,32 @@ DEP := $(OBJ:.o=.d)
%.o: %.c
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CC) -c $(OPTFLAGS) $(INCLUDES) $(CFLAGS) $< -o $@
$(VERBOSE)$(CC) -c $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CFLAGS) $< -o $@

%.o: %.cc
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CXX) -c $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< -o $@
$(VERBOSE)$(CXX) -c $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< -o $@

%.o: %.cpp
@mkdir -p $(dir $@)
@echo "$(MSG_PREFIX)\`\` Compiling:" $(LOCAL_PATH)/$<
$(VERBOSE)$(CXX) -c $(OPTFLAGS) $(INCLUDES) $(CXXFLAGS) $< -o $@
$(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) $(CFLAGS) $< > $@
$(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) $(CXXFLAGS) $< > $@
$(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) $(CXXFLAGS) $< > $@
$(VERBOSE)$(ABCSRC)/depends.sh "$(CXX)" `dirname $*.cpp` $(OPTFLAGS) $(INCLUDES) $(CPPFLAGS) $(CXXFLAGS) $< > $@

ifndef ABC_MAKE_NO_DEPS
-include $(DEP)
Expand Down
86 changes: 83 additions & 3 deletions abclib.dsp

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

117 changes: 117 additions & 0 deletions src/aig/gia/gia.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
#include <stdlib.h>
#include <string.h>
#include <assert.h>
#include <limits.h>

#include "misc/vec/vec.h"
#include "misc/vec/vecWec.h"
Expand All @@ -45,6 +46,35 @@ ABC_NAMESPACE_HEADER_START
#define GIA_NONE 0x1FFFFFFF
#define GIA_VOID 0x0FFFFFFF

// Multi-origin tracking: small-buffer optimization with overflow
#ifndef GIA_ORIGINS_INLINE
#define GIA_ORIGINS_INLINE 4 // number of inline origin slots (configurable at compile time)
#endif

typedef union {
struct {
int origins[GIA_ORIGINS_INLINE]; // -1 = unused slot
} inl;
struct {
int sentinel; // INT_MIN marks overflow mode
int count; // number of origins in overflow array
int * overflow; // heap-allocated origin array
} ovf;
} Gia_OriginsEntry_t;

#define GIA_ORIGINS_STRIDE ((int)(sizeof(Gia_OriginsEntry_t) / sizeof(int)))
#define GIA_ORIGINS_SENTINEL INT_MIN

// Compile-time checks: inline slots must cover the overflow header
// (sentinel + count + pointer; minimum 4 ints on 64-bit), and must
// not exceed the hardcoded initial overflow capacity of 8.
#if GIA_ORIGINS_INLINE < 4
# error "GIA_ORIGINS_INLINE must be >= 4 (overflow header needs sentinel+count+ptr, min 4 ints on 64-bit)"
#endif
#if GIA_ORIGINS_INLINE > 7
# error "GIA_ORIGINS_INLINE must be <= 7 (initial overflow capacity is 8)"
#endif

////////////////////////////////////////////////////////////////////////
/// BASIC TYPES ///
////////////////////////////////////////////////////////////////////////
Expand Down Expand Up @@ -190,6 +220,8 @@ struct Gia_Man_t_
Vec_Int_t * vIdsOrig; // original object IDs
Vec_Int_t * vIdsEquiv; // original object IDs proved equivalent
Vec_Int_t * vEquLitIds; // original object IDs proved equivalent
Vec_Int_t * vOrigins; // per-object origin mapping (from "y" extension)
int nOriginsMax; // max origins per object (0 = unlimited)
Vec_Int_t * vCofVars; // cofactoring variables
Vec_Vec_t * vClockDoms; // clock domains
Vec_Flt_t * vTiming; // arrival/required/slack
Expand Down Expand Up @@ -462,6 +494,78 @@ static inline int Gia_ManIsConst0Lit( int iLit ) { return (iLit ==
static inline int Gia_ManIsConst1Lit( int iLit ) { return (iLit == 1); }
static inline int Gia_ManIsConstLit( int iLit ) { return (iLit <= 1); }

// Multi-origin accessors
static inline Gia_OriginsEntry_t * Gia_ObjOriginsEntry( Gia_Man_t * p, int iObj )
{
return (Gia_OriginsEntry_t *)(Vec_IntArray(p->vOrigins) + iObj * GIA_ORIGINS_STRIDE);
}
static inline int Gia_ObjOriginsIsOverflow( Gia_OriginsEntry_t * e )
{
return e->inl.origins[0] == GIA_ORIGINS_SENTINEL;
}
static inline int Gia_ObjOriginsNum( Gia_Man_t * p, int iObj )
{
Gia_OriginsEntry_t * e;
int k;
if ( !p->vOrigins || iObj * GIA_ORIGINS_STRIDE >= Vec_IntSize(p->vOrigins) )
return 0;
e = Gia_ObjOriginsEntry( p, iObj );
if ( Gia_ObjOriginsIsOverflow(e) )
return e->ovf.count;
for ( k = 0; k < GIA_ORIGINS_INLINE; k++ )
if ( e->inl.origins[k] == -1 ) break;
return k;
}
static inline int Gia_ObjOriginsGet( Gia_Man_t * p, int iObj, int idx )
{
Gia_OriginsEntry_t * e;
if ( !p->vOrigins || iObj * GIA_ORIGINS_STRIDE >= Vec_IntSize(p->vOrigins) )
return -1;
e = Gia_ObjOriginsEntry( p, iObj );
if ( Gia_ObjOriginsIsOverflow(e) )
return (idx < e->ovf.count) ? e->ovf.overflow[idx] : -1;
return (idx < GIA_ORIGINS_INLINE) ? e->inl.origins[idx] : -1;
}
// Backward compatible: get first/primary origin
static inline int Gia_ObjOrigin( Gia_Man_t * p, int iObj )
{
Gia_OriginsEntry_t * e;
if ( !p->vOrigins || iObj * GIA_ORIGINS_STRIDE >= Vec_IntSize(p->vOrigins) )
return -1;
e = Gia_ObjOriginsEntry( p, iObj );
if ( Gia_ObjOriginsIsOverflow(e) )
return e->ovf.count > 0 ? e->ovf.overflow[0] : -1;
return e->inl.origins[0];
}
// Set single origin (clears any existing, for initialization)
static inline void Gia_ObjSetOrigin( Gia_Man_t * p, int iObj, int iOrig )
{
Gia_OriginsEntry_t * e;
int k;
if ( !p->vOrigins || iObj * GIA_ORIGINS_STRIDE >= Vec_IntSize(p->vOrigins) )
return;
e = Gia_ObjOriginsEntry( p, iObj );
if ( Gia_ObjOriginsIsOverflow(e) && e->ovf.overflow )
ABC_FREE( e->ovf.overflow );
e->inl.origins[0] = iOrig;
for ( k = 1; k < GIA_ORIGINS_INLINE; k++ )
e->inl.origins[k] = -1;
}
// Grow vOrigins to accommodate object iObj
static inline void Gia_ManOriginsGrow( Gia_Man_t * p, int iObj )
{
Vec_IntFillExtra( p->vOrigins, (iObj + 1) * GIA_ORIGINS_STRIDE, -1 );
}
// Allocate vOrigins for nObjs objects (all entries initialized to -1)
static inline Vec_Int_t * Gia_ManOriginsAlloc( int nObjs )
{
return Vec_IntStartFull( nObjs * GIA_ORIGINS_STRIDE );
}
// Iteration macro (caller must declare int _nOrig before use, or use nOrig variant)
#define Gia_ObjForEachOrigin( p, iObj, orig, idx ) \
for ( idx = 0, _nOrig = Gia_ObjOriginsNum(p, iObj); \
(idx < _nOrig) && ((orig = Gia_ObjOriginsGet(p, iObj, idx)), 1); idx++ )

static inline Gia_Obj_t * Gia_Regular( Gia_Obj_t * p ) { return (Gia_Obj_t *)((ABC_PTRUINT_T)(p) & ~01); }
static inline Gia_Obj_t * Gia_Not( Gia_Obj_t * p ) { return (Gia_Obj_t *)((ABC_PTRUINT_T)(p) ^ 01); }
static inline Gia_Obj_t * Gia_NotCond( Gia_Obj_t * p, int c ) { return (Gia_Obj_t *)((ABC_PTRUINT_T)(p) ^ (c)); }
Expand Down Expand Up @@ -1312,10 +1416,14 @@ extern void Cbs_ManStop( Cbs_Man_t * p );
extern int Cbs_ManSolve( Cbs_Man_t * p, Gia_Obj_t * pObj );
extern int Cbs_ManSolve2( Cbs_Man_t * p, Gia_Obj_t * pObj, Gia_Obj_t * pObj2 );
extern Vec_Int_t * Cbs_ManSolveMiterNc( Gia_Man_t * pGia, int nConfs, Vec_Str_t ** pvStatus, int f0Proved, int fVerbose );
extern Vec_Int_t * Cbs_ManSolveMiterNcOutVals( Gia_Man_t * pGia, int nConfs, Vec_Str_t ** pvStatus, int f0Proved, int fVerbose, Vec_Int_t * vOutLits, Vec_Int_t ** pvOutVals );
extern void Cbs_ManSyncCore( Cbs_Man_t * p );
extern Vec_Int_t * Cbs_ManSolveRoots( Cbs_Man_t * p, Vec_Int_t * vRootLits, Vec_Str_t ** pvStatus, int fVerbose );
extern void Cbs_ManSetConflictNum( Cbs_Man_t * p, int Num );
extern Vec_Int_t * Cbs_ReadModel( Cbs_Man_t * p );
/*=== giaCTas.c ============================================================*/
extern Vec_Int_t * Tas_ManSolveMiterNc( Gia_Man_t * pGia, int nConfs, Vec_Str_t ** pvStatus, int fVerbose );
extern Vec_Int_t * Tas_ManSolveMiterNcOutVals( Gia_Man_t * pGia, int nConfs, Vec_Str_t ** pvStatus, int fVerbose, Vec_Int_t * vOutLits, Vec_Int_t ** pvOutVals );
/*=== giaCof.c =============================================================*/
extern void Gia_ManPrintFanio( Gia_Man_t * pGia, int nNodes );
extern Gia_Man_t * Gia_ManDupCof( Gia_Man_t * p, int iVar );
Expand Down Expand Up @@ -1348,6 +1456,15 @@ extern Gia_Man_t * Gia_ManDupOrderDfsReverse( Gia_Man_t * p, int fRevFan
extern Gia_Man_t * Gia_ManDupOutputGroup( Gia_Man_t * p, int iOutStart, int iOutStop );
extern Gia_Man_t * Gia_ManDupOutputVec( Gia_Man_t * p, Vec_Int_t * vOutPres );
extern Gia_Man_t * Gia_ManDupSelectedOutputs( Gia_Man_t * p, Vec_Int_t * vOutsLeft );
extern void Gia_ObjAddOrigin( Gia_Man_t * p, int iObj, int iOrig );
extern void Gia_ObjUnionOrigins( Gia_Man_t * p, int iDst, Gia_Man_t * pSrc, int iSrc );
extern void Gia_ManOriginsFreeOverflows( Gia_Man_t * p );
extern void Gia_ManOriginsReset( Gia_Man_t * p );
extern void Gia_ManOriginsDup( Gia_Man_t * pNew, Gia_Man_t * pOld );
extern void Gia_ManOriginsDupFill( Gia_Man_t * pNew, Gia_Man_t * pOld );
extern void Gia_ManOriginsDupVec( Gia_Man_t * pNew, Gia_Man_t * pOld, Vec_Int_t * vCopies );
extern void Gia_ManOriginsAfterRoundTrip( Gia_Man_t * pNew, Gia_Man_t * pOld );
extern void Gia_ManOriginsDupIf( Gia_Man_t * pNew, Gia_Man_t * p, void * pIfMan );
extern Gia_Man_t * Gia_ManDupOrderAiger( Gia_Man_t * p );
extern Gia_Man_t * Gia_ManDupLastPis( Gia_Man_t * p, int nLastPis );
extern Gia_Man_t * Gia_ManDupFlip( Gia_Man_t * p, int * pInitState );
Expand Down
Loading
Loading