Skip to main content

fusion-function-generator (ffg)

CI

Automatic generation of Fusion Functions used by yinyang fuzzer for Semantic Fusion.

Lib structure

The package is divided into 4 folders:

  • gen
  • operators
  • visitors
  • emitter

The folder gen contains the code which is used to generate the whole operators folder, the configuration file exposing some api to control which operators to use during the generation of the tree as well as some constants for the options to the generation algorithm. the file tree_generation instead contains the main tree generation algorithm.

operators contains the basic definition of the operators classes.

visitors folder contains useful api to print, export to DOT format and rewrite the trees to their inverses.

Finally, emitter includes the code needed to export fusion functions to the format understood by YinYang. It also contains an emitter that outputs fusion functions and its inverses to DOT file.

Cookbook

Use only a subset of the theories in the generation:

ffg.gen.gen_configuration.set_available_theories(['bool', 'real'])

Get the available theories:

ffg.gen.gen_configuration.get_theories()

Generate a fusion function of two variables (as a tree):

tree, _ = ffg.gen.tree_generation.generate_tree(root_type, size, ['x', 'y'], 'z')

Emit the fusion function to YinYang format as a string:

output = io.StringIO()
emit_function(tree, output, wrap=False)
ff = output.getvalue()

Metadata

Release files for ffg 0.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ffg 0.1.2
File Size Uploaded
ffg-0.1.2.tar.gz 22.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ffg 0.1.2
File Interpreter ABI Platform
ffg-0.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 69.0 kB

Release files / ffg-0.1.2.tar.gz

Download URL ffg-0.1.2.tar.gz
Size 22.9 kB
Tags Source
SHA-256 checksum
How to use checksums
5549f5a493619128ac9adff21c97bc8faecfd11e4327b77b1b3efc900625bd2a
BLAKE2b-256 checksum
How to use checksums
b63c91bd19f50e037a12cb993b7be90d7acd672594803ca0ac9dd92d9f01bb16
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.10

Release files / ffg-0.1.2-py3-none-any.whl

Download URL ffg-0.1.2-py3-none-any.whl
Size 46.1 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9a3ffd9c97e0047b08a49009dcd11549ba2baa3a1caff69c7c8af9884203e7b0
BLAKE2b-256 checksum
How to use checksums
d2e7f6767f31bdb8998cd55630ff7a88139540c4c7b7cbae07a2859a138d5aac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.1 CPython/3.8.10

Release history Release notifications | RSS feed

This release

0.1.2 This release

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page