developers/zcash-halo2-dag.html

622 lines
42 KiB
HTML

<!DOCTYPE html>
<html>
<head>
<title>Zcash halo2 DAG</title>
<!-- Pan/zoom SVGs -->
<script src="https://bumbu.me/svg-pan-zoom/dist/svg-pan-zoom.min.js"></script>
<link rel="stylesheet" href="zcash-dag.css">
<style>
@media (prefers-color-scheme: dark) {
body {
/* Material dark theme surface colour */
background-color: #121212;
}
}
</style>
</head>
<body>
<div id="dag"><svg width="1687pt" height="969pt"
viewBox="0.00 0.00 1687.00 968.50" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 964.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-964.5 1683,-964.5 1683,4 -4,4"/>
<!-- zcash/pasta_curves#35 -->
<g id="node1" class="node open">
<title>zcash/pasta_curves#35</title>
<g id="a_node1"><a xlink:href="https://github.com/zcash/pasta_curves/issues/35" xlink:title="zcash/pasta_curves#35&#10;Enable `ec&#45;gpu` to&#10;generate MSM and FFT code&#10;for `pasta_curves`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="226,-68 0,-68 0,0 226,0 226,-68"/>
<text text-anchor="middle" x="113" y="-52.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/pasta_curves#35</text>
<text text-anchor="middle" x="113" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">Enable `ec&#45;gpu` to</text>
<text text-anchor="middle" x="113" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">generate MSM and FFT code</text>
<text text-anchor="middle" x="113" y="-7.8" font-family="Times,serif" font-size="14.00" fill="#000000">for `pasta_curves`</text>
</a>
</g>
</g>
<!-- zcash/halo2#379 -->
<g id="node2" class="node open">
<title>zcash/halo2#379</title>
<g id="a_node2"><a xlink:href="https://github.com/zcash/halo2/issues/379" xlink:title="zcash/halo2#379&#10;Add `ec&#45;gpu` support" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="459,-53 286,-53 286,-15 459,-15 459,-53"/>
<text text-anchor="middle" x="372.5" y="-37.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#379</text>
<text text-anchor="middle" x="372.5" y="-22.8" font-family="Times,serif" font-size="14.00" fill="#000000">Add `ec&#45;gpu` support</text>
</a>
</g>
</g>
<!-- zcash/pasta_curves#35&#45;&gt;zcash/halo2#379 -->
<g id="edge1" class="edge">
<title>zcash/pasta_curves#35&#45;&gt;zcash/halo2#379</title>
<path fill="none" stroke="#000000" d="M226.07,-34C242.69,-34 259.69,-34 275.94,-34"/>
<polygon fill="#000000" stroke="#000000" points="275.96,-37.5001 285.96,-34 275.96,-30.5001 275.96,-37.5001"/>
</g>
<!-- zcash/halo2#426 -->
<g id="node3" class="node committed">
<title>zcash/halo2#426</title>
<g id="a_node3"><a xlink:href="https://github.com/zcash/halo2/issues/426" xlink:title="zcash/halo2#426&#10;Publish `halo2_proofs&#10;0.1.0`" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" points="459,-227.5 286,-227.5 286,-174.5 459,-174.5 459,-227.5"/>
<text text-anchor="middle" x="372.5" y="-212.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#426</text>
<text text-anchor="middle" x="372.5" y="-197.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_proofs</text>
<text text-anchor="middle" x="372.5" y="-182.3" font-family="Times,serif" font-size="14.00" fill="#000000">0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#460 -->
<g id="node4" class="node committed">
<title>zcash/halo2#460</title>
<g id="a_node4"><a xlink:href="https://github.com/zcash/halo2/issues/460" xlink:title="zcash/halo2#460&#10;Publish `halo2_gadgets&#10;v0.1.0`" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" points="710,-270.5 525,-270.5 525,-217.5 710,-217.5 710,-270.5"/>
<text text-anchor="middle" x="617.5" y="-255.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#460</text>
<text text-anchor="middle" x="617.5" y="-240.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_gadgets</text>
<text text-anchor="middle" x="617.5" y="-225.3" font-family="Times,serif" font-size="14.00" fill="#000000">v0.1.0`</text>
</a>
</g>
</g>
<!-- zcash/halo2#426&#45;&gt;zcash/halo2#460 -->
<g id="edge2" class="edge">
<title>zcash/halo2#426&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M459.22,-216.22C477.19,-219.37 496.29,-222.73 514.77,-225.97"/>
<polygon fill="#000000" stroke="#000000" points="514.2048,-229.4242 524.66,-227.71 515.4177,-222.5301 514.2048,-229.4242"/>
</g>
<!-- zcash/halo2#75 -->
<g id="node5" class="node open">
<title>zcash/halo2#75</title>
<g id="a_node5"><a xlink:href="https://github.com/zcash/halo2/issues/75" xlink:title="zcash/halo2#75&#10;Implement support for&#10;recursion" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1436.5,-535.5 1257.5,-535.5 1257.5,-482.5 1436.5,-482.5 1436.5,-535.5"/>
<text text-anchor="middle" x="1347" y="-520.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#75</text>
<text text-anchor="middle" x="1347" y="-505.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement support for</text>
<text text-anchor="middle" x="1347" y="-490.3" font-family="Times,serif" font-size="14.00" fill="#000000">recursion</text>
</a>
</g>
</g>
<!-- zcash/halo2#494 -->
<g id="node6" class="node open">
<title>zcash/halo2#494</title>
<g id="a_node6"><a xlink:href="https://github.com/zcash/halo2/issues/494" xlink:title="zcash/halo2#494&#10;Consider adding an API&#10;that enables application&#10;circuits to be built&#10;across both fields" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1679,-550.5 1490,-550.5 1490,-467.5 1679,-467.5 1679,-550.5"/>
<text text-anchor="middle" x="1584.5" y="-535.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#494</text>
<text text-anchor="middle" x="1584.5" y="-520.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider adding an API</text>
<text text-anchor="middle" x="1584.5" y="-505.3" font-family="Times,serif" font-size="14.00" fill="#000000">that enables application</text>
<text text-anchor="middle" x="1584.5" y="-490.3" font-family="Times,serif" font-size="14.00" fill="#000000">circuits to be built</text>
<text text-anchor="middle" x="1584.5" y="-475.3" font-family="Times,serif" font-size="14.00" fill="#000000">across both fields</text>
</a>
</g>
</g>
<!-- zcash/halo2#75&#45;&gt;zcash/halo2#494 -->
<g id="edge3" class="edge">
<title>zcash/halo2#75&#45;&gt;zcash/halo2#494</title>
<path fill="none" stroke="#000000" d="M1436.8,-509C1450.7,-509 1465.3,-509 1479.5,-509"/>
<polygon fill="#000000" stroke="#000000" points="1479.8,-512.5001 1489.8,-509 1479.8,-505.5001 1479.8,-512.5001"/>
</g>
<!-- zcash/halo2#79 -->
<g id="node7" class="node open">
<title>zcash/halo2#79</title>
<g id="a_node7"><a xlink:href="https://github.com/zcash/halo2/issues/79" xlink:title="zcash/halo2#79&#10;Migrate Rescue and&#10;Poseidon gadgets to&#10;algebraic hash&#10;abstraction" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1179.5,-817.5 1018.5,-817.5 1018.5,-734.5 1179.5,-734.5 1179.5,-817.5"/>
<text text-anchor="middle" x="1099" y="-802.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#79</text>
<text text-anchor="middle" x="1099" y="-787.3" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate Rescue and</text>
<text text-anchor="middle" x="1099" y="-772.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadgets to</text>
<text text-anchor="middle" x="1099" y="-757.3" font-family="Times,serif" font-size="14.00" fill="#000000">algebraic hash</text>
<text text-anchor="middle" x="1099" y="-742.3" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction</text>
</a>
</g>
</g>
<!-- zcash/halo2#78 -->
<g id="node8" class="node open">
<title>zcash/halo2#78</title>
<g id="a_node8"><a xlink:href="https://github.com/zcash/halo2/issues/78" xlink:title="zcash/halo2#78&#10;Implement algebraic hash&#10;/ random oracle&#10;abstraction gadget" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="957,-810 753,-810 753,-742 957,-742 957,-810"/>
<text text-anchor="middle" x="855" y="-794.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#78</text>
<text text-anchor="middle" x="855" y="-779.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement algebraic hash</text>
<text text-anchor="middle" x="855" y="-764.8" font-family="Times,serif" font-size="14.00" fill="#000000">/ random oracle</text>
<text text-anchor="middle" x="855" y="-749.8" font-family="Times,serif" font-size="14.00" fill="#000000">abstraction gadget</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#79 -->
<g id="edge4" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#79</title>
<path fill="none" stroke="#000000" d="M957.06,-776C974.04,-776 991.55,-776 1008.2,-776"/>
<polygon fill="#000000" stroke="#000000" points="1008.5,-779.5001 1018.5,-776 1008.5,-772.5001 1008.5,-779.5001"/>
</g>
<!-- zcash/halo2#250 -->
<g id="node9" class="node open">
<title>zcash/halo2#250</title>
<g id="a_node9"><a xlink:href="https://github.com/zcash/halo2/issues/250" xlink:title="zcash/halo2#250&#10;Implement the logic for&#10;the IVC verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1192,-597.5 1006,-597.5 1006,-544.5 1192,-544.5 1192,-597.5"/>
<text text-anchor="middle" x="1099" y="-582.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#250</text>
<text text-anchor="middle" x="1099" y="-567.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="1099" y="-552.3" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#78&#45;&gt;zcash/halo2#250 -->
<g id="edge5" class="edge">
<title>zcash/halo2#78&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M944.1,-741.99C948.93,-739.17 953.6,-736.17 958,-733 1007.1,-697.55 1050.7,-641.85 1076,-605.87"/>
<polygon fill="#000000" stroke="#000000" points="1078.8952,-607.8368 1081.7,-597.62 1073.1361,-603.8578 1078.8952,-607.8368"/>
</g>
<!-- zcash/halo2#250&#45;&gt;zcash/halo2#75 -->
<g id="edge6" class="edge">
<title>zcash/halo2#250&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1192.1,-547.74C1210.1,-543.22 1229.1,-538.47 1247.4,-533.91"/>
<polygon fill="#000000" stroke="#000000" points="1248.256,-537.3038 1257.1,-531.47 1246.5483,-530.5153 1248.256,-537.3038"/>
</g>
<!-- zcash/halo2#57 -->
<g id="node10" class="node open">
<title>zcash/halo2#57</title>
<g id="a_node10"><a xlink:href="https://github.com/zcash/halo2/issues/57" xlink:title="zcash/halo2#57&#10;Remove unused&#10;fixed_values from&#10;ProvingKey" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="184.5,-503 41.5,-503 41.5,-435 184.5,-435 184.5,-503"/>
<text text-anchor="middle" x="113" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#57</text>
<text text-anchor="middle" x="113" y="-472.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove unused</text>
<text text-anchor="middle" x="113" y="-457.8" font-family="Times,serif" font-size="14.00" fill="#000000">fixed_values from</text>
<text text-anchor="middle" x="113" y="-442.8" font-family="Times,serif" font-size="14.00" fill="#000000">ProvingKey</text>
</a>
</g>
</g>
<!-- zcash/halo2#443 -->
<g id="node11" class="node open">
<title>zcash/halo2#443</title>
<g id="a_node11"><a xlink:href="https://github.com/zcash/halo2/issues/443" xlink:title="zcash/halo2#443&#10;implement `read` &amp;&#10;`write` for `halo2::plonk&#10;::ProvingKey`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="469.5,-503 275.5,-503 275.5,-435 469.5,-435 469.5,-503"/>
<text text-anchor="middle" x="372.5" y="-487.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#443</text>
<text text-anchor="middle" x="372.5" y="-472.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `read` &amp;</text>
<text text-anchor="middle" x="372.5" y="-457.8" font-family="Times,serif" font-size="14.00" fill="#000000">`write` for `halo2::plonk</text>
<text text-anchor="middle" x="372.5" y="-442.8" font-family="Times,serif" font-size="14.00" fill="#000000">::ProvingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#57&#45;&gt;zcash/halo2#443 -->
<g id="edge7" class="edge">
<title>zcash/halo2#57&#45;&gt;zcash/halo2#443</title>
<path fill="none" stroke="#000000" d="M184.6,-469C209.47,-469 237.94,-469 265.07,-469"/>
<polygon fill="#000000" stroke="#000000" points="265.39,-472.5001 275.39,-469 265.39,-465.5001 265.39,-472.5001"/>
</g>
<!-- zcash/halo2#449 -->
<g id="node12" class="node open">
<title>zcash/halo2#449</title>
<g id="a_node12"><a xlink:href="https://github.com/zcash/halo2/issues/449" xlink:title="zcash/halo2#449&#10;Define a stable&#10;serialization format for&#10;`VerifyingKey`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="204,-589 22,-589 22,-521 204,-521 204,-589"/>
<text text-anchor="middle" x="113" y="-573.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#449</text>
<text text-anchor="middle" x="113" y="-558.8" font-family="Times,serif" font-size="14.00" fill="#000000">Define a stable</text>
<text text-anchor="middle" x="113" y="-543.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization format for</text>
<text text-anchor="middle" x="113" y="-528.8" font-family="Times,serif" font-size="14.00" fill="#000000">`VerifyingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#482 -->
<g id="node13" class="node open">
<title>zcash/halo2#482</title>
<g id="a_node13"><a xlink:href="https://github.com/zcash/halo2/issues/482" xlink:title="zcash/halo2#482&#10;Raise MSRV to 1.56.1" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="199.5,-323 26.5,-323 26.5,-285 199.5,-285 199.5,-323"/>
<text text-anchor="middle" x="113" y="-307.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#482</text>
<text text-anchor="middle" x="113" y="-292.8" font-family="Times,serif" font-size="14.00" fill="#000000">Raise MSRV to 1.56.1</text>
</a>
</g>
</g>
<!-- zcash/halo2#482&#45;&gt;zcash/halo2#426 -->
<g id="edge8" class="edge">
<title>zcash/halo2#482&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M199.63,-287.33C208.85,-283.95 217.83,-279.88 226,-275 246.25,-262.91 242.09,-248.65 262,-236 266.62,-233.07 271.5,-230.36 276.54,-227.87"/>
<polygon fill="#000000" stroke="#000000" points="278.1502,-230.9816 285.76,-223.61 275.2141,-224.6271 278.1502,-230.9816"/>
</g>
<!-- zcash/halo2#483 -->
<g id="node14" class="node committed">
<title>zcash/halo2#483</title>
<g id="a_node14"><a xlink:href="https://github.com/zcash/halo2/issues/483" xlink:title="zcash/halo2#483&#10;Refactor variable&#45;base&#10;scalar mul to distinguish&#10;the &quot;base field element&quot;&#10;case" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="469.5,-328.5 275.5,-328.5 275.5,-245.5 469.5,-245.5 469.5,-328.5"/>
<text text-anchor="middle" x="372.5" y="-313.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#483</text>
<text text-anchor="middle" x="372.5" y="-298.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor variable&#45;base</text>
<text text-anchor="middle" x="372.5" y="-283.3" font-family="Times,serif" font-size="14.00" fill="#000000">scalar mul to distinguish</text>
<text text-anchor="middle" x="372.5" y="-268.3" font-family="Times,serif" font-size="14.00" fill="#000000">the &quot;base field element&quot;</text>
<text text-anchor="middle" x="372.5" y="-253.3" font-family="Times,serif" font-size="14.00" fill="#000000">case</text>
</a>
</g>
</g>
<!-- zcash/halo2#483&#45;&gt;zcash/halo2#460 -->
<g id="edge9" class="edge">
<title>zcash/halo2#483&#45;&gt;zcash/halo2#460</title>
<path fill="none" stroke="#000000" d="M469.68,-269.94C484.45,-267.35 499.72,-264.67 514.6,-262.06"/>
<polygon fill="#000000" stroke="#000000" points="515.5829,-265.4413 524.83,-260.27 514.3764,-258.546 515.5829,-265.4413"/>
</g>
<!-- zcash/halo2#420 -->
<g id="node15" class="node open">
<title>zcash/halo2#420</title>
<g id="a_node15"><a xlink:href="https://github.com/zcash/halo2/issues/420" xlink:title="zcash/halo2#420&#10;CI: Measure memory&#45;usage&#10;benchmarks" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="220.5,-660.5 5.5,-660.5 5.5,-607.5 220.5,-607.5 220.5,-660.5"/>
<text text-anchor="middle" x="113" y="-645.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#420</text>
<text text-anchor="middle" x="113" y="-630.3" font-family="Times,serif" font-size="14.00" fill="#000000">CI: Measure memory&#45;usage</text>
<text text-anchor="middle" x="113" y="-615.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks</text>
</a>
</g>
</g>
<!-- zcash/halo2#418 -->
<g id="node16" class="node open">
<title>zcash/halo2#418</title>
<g id="a_node16"><a xlink:href="https://github.com/zcash/halo2/issues/418" xlink:title="zcash/halo2#418&#10;[memory optimization]&#10;lookup prover memory&#10;analysis" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="462,-668 283,-668 283,-600 462,-600 462,-668"/>
<text text-anchor="middle" x="372.5" y="-652.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#418</text>
<text text-anchor="middle" x="372.5" y="-637.8" font-family="Times,serif" font-size="14.00" fill="#000000">[memory optimization]</text>
<text text-anchor="middle" x="372.5" y="-622.8" font-family="Times,serif" font-size="14.00" fill="#000000">lookup prover memory</text>
<text text-anchor="middle" x="372.5" y="-607.8" font-family="Times,serif" font-size="14.00" fill="#000000">analysis</text>
</a>
</g>
</g>
<!-- zcash/halo2#420&#45;&gt;zcash/halo2#418 -->
<g id="edge10" class="edge">
<title>zcash/halo2#420&#45;&gt;zcash/halo2#418</title>
<path fill="none" stroke="#000000" d="M220.8,-634C237.86,-634 255.45,-634 272.34,-634"/>
<polygon fill="#000000" stroke="#000000" points="272.75,-637.5001 282.75,-634 272.75,-630.5001 272.75,-637.5001"/>
</g>
<!-- zcash/halo2#427 -->
<g id="node17" class="node open">
<title>zcash/halo2#427</title>
<g id="a_node17"><a xlink:href="https://github.com/zcash/halo2/issues/427" xlink:title="zcash/halo2#427&#10;Use smaller extended&#10;domains where possible&#10;during proving" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="207,-747 19,-747 19,-679 207,-679 207,-747"/>
<text text-anchor="middle" x="113" y="-731.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#427</text>
<text text-anchor="middle" x="113" y="-716.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use smaller extended</text>
<text text-anchor="middle" x="113" y="-701.8" font-family="Times,serif" font-size="14.00" fill="#000000">domains where possible</text>
<text text-anchor="middle" x="113" y="-686.8" font-family="Times,serif" font-size="14.00" fill="#000000">during proving</text>
</a>
</g>
</g>
<!-- zcash/halo2#456 -->
<g id="node18" class="node open">
<title>zcash/halo2#456</title>
<g id="a_node18"><a xlink:href="https://github.com/zcash/halo2/issues/456" xlink:title="zcash/halo2#456&#10;Benchmark `sha256`&#10;gadget." target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="198,-818.5 28,-818.5 28,-765.5 198,-765.5 198,-818.5"/>
<text text-anchor="middle" x="113" y="-803.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#456</text>
<text text-anchor="middle" x="113" y="-788.3" font-family="Times,serif" font-size="14.00" fill="#000000">Benchmark `sha256`</text>
<text text-anchor="middle" x="113" y="-773.3" font-family="Times,serif" font-size="14.00" fill="#000000">gadget.</text>
</a>
</g>
</g>
<!-- zcash/halo2#455 -->
<g id="node19" class="node open">
<title>zcash/halo2#455</title>
<g id="a_node19"><a xlink:href="https://github.com/zcash/halo2/issues/455" xlink:title="zcash/halo2#455&#10;[Book] add description of&#10;Poseidon gadget and chip" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="213,-889.5 13,-889.5 13,-836.5 213,-836.5 213,-889.5"/>
<text text-anchor="middle" x="113" y="-874.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#455</text>
<text text-anchor="middle" x="113" y="-859.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] add description of</text>
<text text-anchor="middle" x="113" y="-844.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadget and chip</text>
</a>
</g>
</g>
<!-- zcash/halo2#251 -->
<g id="node20" class="node open">
<title>zcash/halo2#251</title>
<g id="a_node20"><a xlink:href="https://github.com/zcash/halo2/issues/251" xlink:title="zcash/halo2#251&#10;Implement user&#45;facing API&#10;for recursive proving of&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1204,-480 994,-480 994,-412 1204,-412 1204,-480"/>
<text text-anchor="middle" x="1099" y="-464.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#251</text>
<text text-anchor="middle" x="1099" y="-449.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement user&#45;facing API</text>
<text text-anchor="middle" x="1099" y="-434.8" font-family="Times,serif" font-size="14.00" fill="#000000">for recursive proving of</text>
<text text-anchor="middle" x="1099" y="-419.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#75 -->
<g id="edge11" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1204.2,-472.72C1218.5,-476.37 1233.3,-480.11 1247.5,-483.73"/>
<polygon fill="#000000" stroke="#000000" points="1246.746,-487.1496 1257.3,-486.22 1248.4699,-480.3651 1246.746,-487.1496"/>
</g>
<!-- zcash/halo2#437 -->
<g id="node21" class="node open">
<title>zcash/halo2#437</title>
<g id="a_node21"><a xlink:href="https://github.com/zcash/halo2/issues/437" xlink:title="zcash/halo2#437&#10;Amend user&#45;facing API to&#10;work for both IVC and PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="1454,-441.5 1240,-441.5 1240,-388.5 1454,-388.5 1454,-441.5"/>
<text text-anchor="middle" x="1347" y="-426.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#437</text>
<text text-anchor="middle" x="1347" y="-411.3" font-family="Times,serif" font-size="14.00" fill="#000000">Amend user&#45;facing API to</text>
<text text-anchor="middle" x="1347" y="-396.3" font-family="Times,serif" font-size="14.00" fill="#000000">work for both IVC and PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#251&#45;&gt;zcash/halo2#437 -->
<g id="edge12" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M1204.2,-432.85C1212.6,-431.8 1221.2,-430.73 1229.7,-429.66"/>
<polygon fill="#000000" stroke="#000000" points="1230.2114,-433.1234 1239.7,-428.41 1229.3431,-426.1775 1230.2114,-433.1234"/>
</g>
<!-- zcash/halo2#436 -->
<g id="node22" class="node open">
<title>zcash/halo2#436</title>
<g id="a_node22"><a xlink:href="https://github.com/zcash/halo2/issues/436" xlink:title="zcash/halo2#436&#10;Implement mock&#10;verification circuit for&#10;PCD" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="705,-382 530,-382 530,-314 705,-314 705,-382"/>
<text text-anchor="middle" x="617.5" y="-366.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#436</text>
<text text-anchor="middle" x="617.5" y="-351.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-336.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-321.8" font-family="Times,serif" font-size="14.00" fill="#000000">PCD</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#437 -->
<g id="edge13" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M705.36,-358.87C720.89,-360.67 736.91,-362.46 752,-364 798.08,-368.71 1069.8,-391.7 1229.6,-405.15"/>
<polygon fill="#000000" stroke="#000000" points="1229.743,-408.6741 1240,-406.02 1230.3266,-401.6985 1229.743,-408.6741"/>
</g>
<!-- zcash/halo2#438 -->
<g id="node23" class="node open">
<title>zcash/halo2#438</title>
<g id="a_node23"><a xlink:href="https://github.com/zcash/halo2/issues/438" xlink:title="zcash/halo2#438&#10;Implement the logic for&#10;the PCD verifier circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="948,-355.5 762,-355.5 762,-302.5 948,-302.5 948,-355.5"/>
<text text-anchor="middle" x="855" y="-340.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#438</text>
<text text-anchor="middle" x="855" y="-325.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="855" y="-310.3" font-family="Times,serif" font-size="14.00" fill="#000000">the PCD verifier circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#436&#45;&gt;zcash/halo2#438 -->
<g id="edge14" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#438</title>
<path fill="none" stroke="#000000" d="M705.26,-340.98C720.33,-339.77 736.11,-338.51 751.54,-337.28"/>
<polygon fill="#000000" stroke="#000000" points="751.9325,-340.7598 761.62,-336.47 751.3718,-333.7823 751.9325,-340.7598"/>
</g>
<!-- zcash/halo2#435 -->
<g id="node24" class="node open">
<title>zcash/halo2#435</title>
<g id="a_node24"><a xlink:href="https://github.com/zcash/halo2/issues/435" xlink:title="zcash/halo2#435&#10;Implement mock&#10;verification circuit for&#10;IVC" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="705,-540 530,-540 530,-472 705,-472 705,-540"/>
<text text-anchor="middle" x="617.5" y="-524.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#435</text>
<text text-anchor="middle" x="617.5" y="-509.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-494.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-479.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#247 -->
<g id="node25" class="node open">
<title>zcash/halo2#247</title>
<g id="a_node25"><a xlink:href="https://github.com/zcash/halo2/issues/247" xlink:title="zcash/halo2#247&#10;Implement underlying&#10;scaffolding for creating&#10;the IVC proof cycle" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="947.5,-480 762.5,-480 762.5,-412 947.5,-412 947.5,-480"/>
<text text-anchor="middle" x="855" y="-464.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#247</text>
<text text-anchor="middle" x="855" y="-449.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement underlying</text>
<text text-anchor="middle" x="855" y="-434.8" font-family="Times,serif" font-size="14.00" fill="#000000">scaffolding for creating</text>
<text text-anchor="middle" x="855" y="-419.8" font-family="Times,serif" font-size="14.00" fill="#000000">the IVC proof cycle</text>
</a>
</g>
</g>
<!-- zcash/halo2#435&#45;&gt;zcash/halo2#247 -->
<g id="edge15" class="edge">
<title>zcash/halo2#435&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M705.26,-483.83C720.69,-479.93 736.87,-475.84 752.66,-471.86"/>
<polygon fill="#000000" stroke="#000000" points="753.5843,-475.2365 762.42,-469.39 751.8669,-468.4504 753.5843,-475.2365"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#250 -->
<g id="edge16" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M939.17,-480.06C945.59,-482.99 951.93,-485.98 958,-489 988.53,-504.17 1021.5,-523.21 1047.9,-539.12"/>
<polygon fill="#000000" stroke="#000000" points="1046.2316,-542.2012 1056.6,-544.38 1049.8533,-536.211 1046.2316,-542.2012"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#251 -->
<g id="edge17" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#251</title>
<path fill="none" stroke="#000000" d="M947.59,-446C959.39,-446 971.58,-446 983.68,-446"/>
<polygon fill="#000000" stroke="#000000" points="983.81,-449.5001 993.81,-446 983.81,-442.5001 983.81,-449.5001"/>
</g>
<!-- zcash/halo2#246 -->
<g id="node26" class="node open">
<title>zcash/halo2#246</title>
<g id="a_node26"><a xlink:href="https://github.com/zcash/halo2/issues/246" xlink:title="zcash/halo2#246&#10;Create recursive proof&#10;structures" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="462,-416.5 283,-416.5 283,-363.5 462,-363.5 462,-416.5"/>
<text text-anchor="middle" x="372.5" y="-401.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#246</text>
<text text-anchor="middle" x="372.5" y="-386.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create recursive proof</text>
<text text-anchor="middle" x="372.5" y="-371.3" font-family="Times,serif" font-size="14.00" fill="#000000">structures</text>
</a>
</g>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#436 -->
<g id="edge18" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#436</title>
<path fill="none" stroke="#000000" d="M462.34,-374.6C480.98,-371.4 500.7,-368.02 519.61,-364.78"/>
<polygon fill="#000000" stroke="#000000" points="520.4536,-368.1866 529.72,-363.05 519.2729,-361.2869 520.4536,-368.1866"/>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#435 -->
<g id="edge19" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#435</title>
<path fill="none" stroke="#000000" d="M462.2,-415.14C469.43,-418.38 476.46,-421.99 483,-426 502.29,-437.83 500.36,-449.17 519,-462 521.39,-463.64 523.84,-465.25 526.36,-466.81"/>
<polygon fill="#000000" stroke="#000000" points="524.6932,-469.8907 535.08,-471.98 528.2632,-463.8694 524.6932,-469.8907"/>
</g>
<!-- zcash/halo2#439 -->
<g id="node27" class="node open">
<title>zcash/halo2#439</title>
<g id="a_node27"><a xlink:href="https://github.com/zcash/halo2/issues/439" xlink:title="zcash/halo2#439&#10;Support split&#10;accumulation in Halo 2" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="204.5,-416.5 21.5,-416.5 21.5,-363.5 204.5,-363.5 204.5,-416.5"/>
<text text-anchor="middle" x="113" y="-401.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#439</text>
<text text-anchor="middle" x="113" y="-386.3" font-family="Times,serif" font-size="14.00" fill="#000000">Support split</text>
<text text-anchor="middle" x="113" y="-371.3" font-family="Times,serif" font-size="14.00" fill="#000000">accumulation in Halo 2</text>
</a>
</g>
</g>
<!-- zcash/halo2#439&#45;&gt;zcash/halo2#246 -->
<g id="edge20" class="edge">
<title>zcash/halo2#439&#45;&gt;zcash/halo2#246</title>
<path fill="none" stroke="#000000" d="M204.86,-390C226.86,-390 250.45,-390 272.79,-390"/>
<polygon fill="#000000" stroke="#000000" points="272.95,-393.5001 282.95,-390 272.95,-386.5001 272.95,-393.5001"/>
</g>
<!-- zcash/halo2#359 -->
<g id="node28" class="node open">
<title>zcash/halo2#359</title>
<g id="a_node28"><a xlink:href="https://github.com/zcash/halo2/issues/359" xlink:title="zcash/halo2#359&#10;Set up `BaseTranscript`,&#10;`ScalarTranscript`" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="716,-453.5 519,-453.5 519,-400.5 716,-400.5 716,-453.5"/>
<text text-anchor="middle" x="617.5" y="-438.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#359</text>
<text text-anchor="middle" x="617.5" y="-423.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set up `BaseTranscript`,</text>
<text text-anchor="middle" x="617.5" y="-408.3" font-family="Times,serif" font-size="14.00" fill="#000000">`ScalarTranscript`</text>
</a>
</g>
</g>
<!-- zcash/halo2#359&#45;&gt;zcash/halo2#247 -->
<g id="edge21" class="edge">
<title>zcash/halo2#359&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M716.16,-434.89C728.11,-435.85 740.33,-436.83 752.34,-437.79"/>
<polygon fill="#000000" stroke="#000000" points="752.1131,-441.2829 762.36,-438.59 752.6703,-434.3051 752.1131,-441.2829"/>
</g>
<!-- zcash/halo2#249 -->
<g id="node29" class="node open">
<title>zcash/halo2#249</title>
<g id="a_node29"><a xlink:href="https://github.com/zcash/halo2/issues/249" xlink:title="zcash/halo2#249&#10;Implement recursion&#10;circuit logic for&#10;handling public inputs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="943.5,-724 766.5,-724 766.5,-656 943.5,-656 943.5,-724"/>
<text text-anchor="middle" x="855" y="-708.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#249</text>
<text text-anchor="middle" x="855" y="-693.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement recursion</text>
<text text-anchor="middle" x="855" y="-678.8" font-family="Times,serif" font-size="14.00" fill="#000000">circuit logic for</text>
<text text-anchor="middle" x="855" y="-663.8" font-family="Times,serif" font-size="14.00" fill="#000000">handling public inputs</text>
</a>
</g>
</g>
<!-- zcash/halo2#249&#45;&gt;zcash/halo2#250 -->
<g id="edge22" class="edge">
<title>zcash/halo2#249&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M938.51,-655.96C945.14,-653.01 951.7,-650 958,-647 986.74,-633.3 1018,-616.65 1043.7,-602.43"/>
<polygon fill="#000000" stroke="#000000" points="1045.5416,-605.4112 1052.6,-597.51 1042.1549,-599.285 1045.5416,-605.4112"/>
</g>
<!-- zcash/halo2#380 -->
<g id="node30" class="node committed">
<title>zcash/halo2#380</title>
<g id="a_node30"><a xlink:href="https://github.com/zcash/halo2/pull/380" xlink:title="zcash/halo2#380&#10;[book] Fix errors and&#10;typos" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="197,-266.5 29,-266.5 29,-262.5 25,-262.5 25,-258.5 29,-258.5 29,-221.5 25,-221.5 25,-217.5 29,-217.5 29,-213.5 197,-213.5 197,-266.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-262.5 33,-262.5 33,-258.5 29,-258.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-221.5 33,-221.5 33,-217.5 29,-217.5 "/>
<text text-anchor="middle" x="113" y="-251.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#380</text>
<text text-anchor="middle" x="113" y="-236.3" font-family="Times,serif" font-size="14.00" fill="#000000">[book] Fix errors and</text>
<text text-anchor="middle" x="113" y="-221.3" font-family="Times,serif" font-size="14.00" fill="#000000">typos</text>
</a>
</g>
</g>
<!-- zcash/halo2#380&#45;&gt;zcash/halo2#426 -->
<g id="edge23" class="edge">
<title>zcash/halo2#380&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M197.25,-227.34C222.21,-223.59 249.73,-219.45 275.43,-215.59"/>
<polygon fill="#000000" stroke="#000000" points="276.1808,-219.0166 285.55,-214.07 275.141,-212.0942 276.1808,-219.0166"/>
</g>
<!-- zcash/halo2#542 -->
<g id="node31" class="node committed">
<title>zcash/halo2#542</title>
<g id="a_node31"><a xlink:href="https://github.com/zcash/halo2/pull/542" xlink:title="zcash/halo2#542&#10;Relicense Halo 2 crates&#10;as MIT OR Apache 2.0" target="_blank">
<polygon fill="#a6cfff" stroke="#000000" stroke-width="2" points="206.5,-195.5 19.5,-195.5 19.5,-191.5 15.5,-191.5 15.5,-187.5 19.5,-187.5 19.5,-150.5 15.5,-150.5 15.5,-146.5 19.5,-146.5 19.5,-142.5 206.5,-142.5 206.5,-195.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-191.5 23.5,-191.5 23.5,-187.5 19.5,-187.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-150.5 23.5,-150.5 23.5,-146.5 19.5,-146.5 "/>
<text text-anchor="middle" x="113" y="-180.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#542</text>
<text text-anchor="middle" x="113" y="-165.3" font-family="Times,serif" font-size="14.00" fill="#000000">Relicense Halo 2 crates</text>
<text text-anchor="middle" x="113" y="-150.3" font-family="Times,serif" font-size="14.00" fill="#000000">as MIT OR Apache 2.0</text>
</a>
</g>
</g>
<!-- zcash/halo2#542&#45;&gt;zcash/halo2#426 -->
<g id="edge24" class="edge">
<title>zcash/halo2#542&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M206.69,-180.55C229.2,-183.33 253.28,-186.3 275.92,-189.09"/>
<polygon fill="#000000" stroke="#000000" points="275.5058,-192.5654 285.86,-190.32 276.3655,-185.6183 275.5058,-192.5654"/>
</g>
<!-- zcash/halo2#248 -->
<g id="node32" class="node open">
<title>zcash/halo2#248</title>
<g id="a_node32"><a xlink:href="https://github.com/zcash/halo2/issues/248" xlink:title="zcash/halo2#248&#10;Implement endoscaling in&#10;the circuit" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="956.5,-637.5 753.5,-637.5 753.5,-584.5 956.5,-584.5 956.5,-637.5"/>
<text text-anchor="middle" x="855" y="-622.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#248</text>
<text text-anchor="middle" x="855" y="-607.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement endoscaling in</text>
<text text-anchor="middle" x="855" y="-592.3" font-family="Times,serif" font-size="14.00" fill="#000000">the circuit</text>
</a>
</g>
</g>
<!-- zcash/halo2#248&#45;&gt;zcash/halo2#250 -->
<g id="edge25" class="edge">
<title>zcash/halo2#248&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M956.71,-594.33C969.51,-592.23 982.61,-590.08 995.43,-587.98"/>
<polygon fill="#000000" stroke="#000000" points="996.3042,-591.3831 1005.6,-586.3 995.1632,-584.4767 996.3042,-591.3831"/>
</g>
<!-- zcash/halo2#245 -->
<g id="node33" class="node open">
<title>zcash/halo2#245</title>
<g id="a_node33"><a xlink:href="https://github.com/zcash/halo2/issues/245" xlink:title="zcash/halo2#245&#10;Remove the need to&#10;multiply by powers of x^n&#10;in verifier" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="958,-566 752,-566 752,-498 958,-498 958,-566"/>
<text text-anchor="middle" x="855" y="-550.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#245</text>
<text text-anchor="middle" x="855" y="-535.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the need to</text>
<text text-anchor="middle" x="855" y="-520.8" font-family="Times,serif" font-size="14.00" fill="#000000">multiply by powers of x^n</text>
<text text-anchor="middle" x="855" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000">in verifier</text>
</a>
</g>
</g>
<!-- zcash/halo2#245&#45;&gt;zcash/halo2#250 -->
<g id="edge26" class="edge">
<title>zcash/halo2#245&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M958.12,-548.48C970.65,-550.48 983.44,-552.53 995.96,-554.53"/>
<polygon fill="#000000" stroke="#000000" points="995.4727,-557.9965 1005.9,-556.12 996.5784,-551.0843 995.4727,-557.9965"/>
</g>
<!-- zcash/halo2#543 -->
<g id="node34" class="node open">
<title>zcash/halo2#543</title>
<g id="a_node34"><a xlink:href="https://github.com/zcash/halo2/pull/543" xlink:title="zcash/halo2#543&#10;Optimize Fft" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="183,-124 43,-124 43,-120 39,-120 39,-116 43,-116 43,-94 39,-94 39,-90 43,-90 43,-86 183,-86 183,-124"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-120 47,-120 47,-116 43,-116 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-94 47,-94 47,-90 43,-90 "/>
<text text-anchor="middle" x="113" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#543</text>
<text text-anchor="middle" x="113" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">Optimize Fft</text>
</a>
</g>
</g>
<!-- zcash/halo2#543&#45;&gt;zcash/halo2#426 -->
<g id="edge27" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M183.24,-120.18C197.54,-123.89 212.37,-128.2 226,-133 242.37,-138.77 277.16,-154.85 308.73,-169.93"/>
<polygon fill="#000000" stroke="#000000" points="307.4301,-173.1883 317.96,-174.36 310.4591,-166.8776 307.4301,-173.1883"/>
</g>
<!-- zcash/halo2#548 -->
<g id="node35" class="node open">
<title>zcash/halo2#548</title>
<g id="a_node35"><a xlink:href="https://github.com/zcash/halo2/issues/548" xlink:title="zcash/halo2#548&#10;Implement performance and&#10;memory optimizations for&#10;halo2_proofs" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" points="483,-139 262,-139 262,-71 483,-71 483,-139"/>
<text text-anchor="middle" x="372.5" y="-123.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#548</text>
<text text-anchor="middle" x="372.5" y="-108.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement performance and</text>
<text text-anchor="middle" x="372.5" y="-93.8" font-family="Times,serif" font-size="14.00" fill="#000000">memory optimizations for</text>
<text text-anchor="middle" x="372.5" y="-78.8" font-family="Times,serif" font-size="14.00" fill="#000000">halo2_proofs</text>
</a>
</g>
</g>
<!-- zcash/halo2#543&#45;&gt;zcash/halo2#548 -->
<g id="edge28" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#548</title>
<path fill="none" stroke="#000000" d="M183.22,-105C204.37,-105 228.21,-105 251.66,-105"/>
<polygon fill="#000000" stroke="#000000" points="251.67,-108.5001 261.67,-105 251.67,-101.5001 251.67,-108.5001"/>
</g>
<!-- zcash/halo2#312 -->
<g id="node36" class="node open">
<title>zcash/halo2#312</title>
<g id="a_node36"><a xlink:href="https://github.com/zcash/halo2/issues/312" xlink:title="zcash/halo2#312&#10;[Book] Document gadget&#10;API" target="_blank">
<polygon fill="#c2e0c6" stroke="#000000" stroke-width="2" points="210.5,-960.5 15.5,-960.5 15.5,-907.5 210.5,-907.5 210.5,-960.5"/>
<text text-anchor="middle" x="113" y="-945.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#312</text>
<text text-anchor="middle" x="113" y="-930.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] Document gadget</text>
<text text-anchor="middle" x="113" y="-915.3" font-family="Times,serif" font-size="14.00" fill="#000000">API</text>
</a>
</g>
</g>
</g>
</svg>
</div>
<script>
svgPanZoom('#dag > svg', {
zoomScaleSensitivity: 0.4
});
</script>
</body>
</html>