developers/zcash-halo2-dag.html

600 lines
40 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="1002pt"
viewBox="0.00 0.00 1687.00 1001.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 997.5)">
<polygon fill="#ffffff" stroke="transparent" points="-4,4 -4,-997.5 1683,-997.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,-213.5 286,-213.5 286,-160.5 459,-160.5 459,-213.5"/>
<text text-anchor="middle" x="372.5" y="-198.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#426</text>
<text text-anchor="middle" x="372.5" y="-183.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_proofs</text>
<text text-anchor="middle" x="372.5" y="-168.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,-213.5 525,-213.5 525,-160.5 710,-160.5 710,-213.5"/>
<text text-anchor="middle" x="617.5" y="-198.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#460</text>
<text text-anchor="middle" x="617.5" y="-183.3" font-family="Times,serif" font-size="14.00" fill="#000000">Publish `halo2_gadgets</text>
<text text-anchor="middle" x="617.5" y="-168.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,-187C477.11,-187 496.11,-187 514.51,-187"/>
<polygon fill="#000000" stroke="#000000" points="514.66,-190.5001 524.66,-187 514.66,-183.5001 514.66,-190.5001"/>
</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,-481.5 1257.5,-481.5 1257.5,-428.5 1436.5,-428.5 1436.5,-481.5"/>
<text text-anchor="middle" x="1347" y="-466.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#75</text>
<text text-anchor="middle" x="1347" y="-451.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement support for</text>
<text text-anchor="middle" x="1347" y="-436.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,-496.5 1490,-496.5 1490,-413.5 1679,-413.5 1679,-496.5"/>
<text text-anchor="middle" x="1584.5" y="-481.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#494</text>
<text text-anchor="middle" x="1584.5" y="-466.3" font-family="Times,serif" font-size="14.00" fill="#000000">Consider adding an API</text>
<text text-anchor="middle" x="1584.5" y="-451.3" font-family="Times,serif" font-size="14.00" fill="#000000">that enables application</text>
<text text-anchor="middle" x="1584.5" y="-436.3" font-family="Times,serif" font-size="14.00" fill="#000000">circuits to be built</text>
<text text-anchor="middle" x="1584.5" y="-421.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,-455C1450.7,-455 1465.3,-455 1479.5,-455"/>
<polygon fill="#000000" stroke="#000000" points="1479.8,-458.5001 1489.8,-455 1479.8,-451.5001 1479.8,-458.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,-763.5 1018.5,-763.5 1018.5,-680.5 1179.5,-680.5 1179.5,-763.5"/>
<text text-anchor="middle" x="1099" y="-748.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#79</text>
<text text-anchor="middle" x="1099" y="-733.3" font-family="Times,serif" font-size="14.00" fill="#000000">Migrate Rescue and</text>
<text text-anchor="middle" x="1099" y="-718.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadgets to</text>
<text text-anchor="middle" x="1099" y="-703.3" font-family="Times,serif" font-size="14.00" fill="#000000">algebraic hash</text>
<text text-anchor="middle" x="1099" y="-688.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,-756 753,-756 753,-688 957,-688 957,-756"/>
<text text-anchor="middle" x="855" y="-740.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#78</text>
<text text-anchor="middle" x="855" y="-725.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement algebraic hash</text>
<text text-anchor="middle" x="855" y="-710.8" font-family="Times,serif" font-size="14.00" fill="#000000">/ random oracle</text>
<text text-anchor="middle" x="855" y="-695.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,-722C974.04,-722 991.55,-722 1008.2,-722"/>
<polygon fill="#000000" stroke="#000000" points="1008.5,-725.5001 1018.5,-722 1008.5,-718.5001 1008.5,-725.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,-543.5 1006,-543.5 1006,-490.5 1192,-490.5 1192,-543.5"/>
<text text-anchor="middle" x="1099" y="-528.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#250</text>
<text text-anchor="middle" x="1099" y="-513.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="1099" y="-498.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,-687.99C948.93,-685.17 953.6,-682.17 958,-679 1007.1,-643.55 1050.7,-587.85 1076,-551.87"/>
<polygon fill="#000000" stroke="#000000" points="1078.8952,-553.8368 1081.7,-543.62 1073.1361,-549.8578 1078.8952,-553.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,-493.74C1210.1,-489.22 1229.1,-484.47 1247.4,-479.91"/>
<polygon fill="#000000" stroke="#000000" points="1248.256,-483.3038 1257.1,-477.47 1246.5483,-476.5153 1248.256,-483.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,-435 41.5,-435 41.5,-367 184.5,-367 184.5,-435"/>
<text text-anchor="middle" x="113" y="-419.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#57</text>
<text text-anchor="middle" x="113" y="-404.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove unused</text>
<text text-anchor="middle" x="113" y="-389.8" font-family="Times,serif" font-size="14.00" fill="#000000">fixed_values from</text>
<text text-anchor="middle" x="113" y="-374.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,-435 275.5,-435 275.5,-367 469.5,-367 469.5,-435"/>
<text text-anchor="middle" x="372.5" y="-419.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#443</text>
<text text-anchor="middle" x="372.5" y="-404.8" font-family="Times,serif" font-size="14.00" fill="#000000">implement `read` &amp;</text>
<text text-anchor="middle" x="372.5" y="-389.8" font-family="Times,serif" font-size="14.00" fill="#000000">`write` for `halo2::plonk</text>
<text text-anchor="middle" x="372.5" y="-374.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,-401C209.47,-401 237.94,-401 265.07,-401"/>
<polygon fill="#000000" stroke="#000000" points="265.39,-404.5001 275.39,-401 265.39,-397.5001 265.39,-404.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,-521 22,-521 22,-453 204,-453 204,-521"/>
<text text-anchor="middle" x="113" y="-505.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#449</text>
<text text-anchor="middle" x="113" y="-490.8" font-family="Times,serif" font-size="14.00" fill="#000000">Define a stable</text>
<text text-anchor="middle" x="113" y="-475.8" font-family="Times,serif" font-size="14.00" fill="#000000">serialization format for</text>
<text text-anchor="middle" x="113" y="-460.8" font-family="Times,serif" font-size="14.00" fill="#000000">`VerifyingKey`</text>
</a>
</g>
</g>
<!-- zcash/halo2#420 -->
<g id="node13" class="node open">
<title>zcash/halo2#420</title>
<g id="a_node13"><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,-592.5 5.5,-592.5 5.5,-539.5 220.5,-539.5 220.5,-592.5"/>
<text text-anchor="middle" x="113" y="-577.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#420</text>
<text text-anchor="middle" x="113" y="-562.3" font-family="Times,serif" font-size="14.00" fill="#000000">CI: Measure memory&#45;usage</text>
<text text-anchor="middle" x="113" y="-547.3" font-family="Times,serif" font-size="14.00" fill="#000000">benchmarks</text>
</a>
</g>
</g>
<!-- zcash/halo2#418 -->
<g id="node14" class="node open">
<title>zcash/halo2#418</title>
<g id="a_node14"><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,-600 283,-600 283,-532 462,-532 462,-600"/>
<text text-anchor="middle" x="372.5" y="-584.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#418</text>
<text text-anchor="middle" x="372.5" y="-569.8" font-family="Times,serif" font-size="14.00" fill="#000000">[memory optimization]</text>
<text text-anchor="middle" x="372.5" y="-554.8" font-family="Times,serif" font-size="14.00" fill="#000000">lookup prover memory</text>
<text text-anchor="middle" x="372.5" y="-539.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="edge8" class="edge">
<title>zcash/halo2#420&#45;&gt;zcash/halo2#418</title>
<path fill="none" stroke="#000000" d="M220.8,-566C237.86,-566 255.45,-566 272.34,-566"/>
<polygon fill="#000000" stroke="#000000" points="272.75,-569.5001 282.75,-566 272.75,-562.5001 272.75,-569.5001"/>
</g>
<!-- zcash/halo2#427 -->
<g id="node15" class="node open">
<title>zcash/halo2#427</title>
<g id="a_node15"><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,-679 19,-679 19,-611 207,-611 207,-679"/>
<text text-anchor="middle" x="113" y="-663.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#427</text>
<text text-anchor="middle" x="113" y="-648.8" font-family="Times,serif" font-size="14.00" fill="#000000">Use smaller extended</text>
<text text-anchor="middle" x="113" y="-633.8" font-family="Times,serif" font-size="14.00" fill="#000000">domains where possible</text>
<text text-anchor="middle" x="113" y="-618.8" font-family="Times,serif" font-size="14.00" fill="#000000">during proving</text>
</a>
</g>
</g>
<!-- zcash/halo2#456 -->
<g id="node16" class="node open">
<title>zcash/halo2#456</title>
<g id="a_node16"><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,-750.5 28,-750.5 28,-697.5 198,-697.5 198,-750.5"/>
<text text-anchor="middle" x="113" y="-735.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#456</text>
<text text-anchor="middle" x="113" y="-720.3" font-family="Times,serif" font-size="14.00" fill="#000000">Benchmark `sha256`</text>
<text text-anchor="middle" x="113" y="-705.3" font-family="Times,serif" font-size="14.00" fill="#000000">gadget.</text>
</a>
</g>
</g>
<!-- zcash/halo2#455 -->
<g id="node17" class="node open">
<title>zcash/halo2#455</title>
<g id="a_node17"><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,-821.5 13,-821.5 13,-768.5 213,-768.5 213,-821.5"/>
<text text-anchor="middle" x="113" y="-806.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#455</text>
<text text-anchor="middle" x="113" y="-791.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] add description of</text>
<text text-anchor="middle" x="113" y="-776.3" font-family="Times,serif" font-size="14.00" fill="#000000">Poseidon gadget and chip</text>
</a>
</g>
</g>
<!-- zcash/halo2#251 -->
<g id="node18" class="node open">
<title>zcash/halo2#251</title>
<g id="a_node18"><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,-426 994,-426 994,-358 1204,-358 1204,-426"/>
<text text-anchor="middle" x="1099" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#251</text>
<text text-anchor="middle" x="1099" y="-395.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement user&#45;facing API</text>
<text text-anchor="middle" x="1099" y="-380.8" font-family="Times,serif" font-size="14.00" fill="#000000">for recursive proving of</text>
<text text-anchor="middle" x="1099" y="-365.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="edge9" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#75</title>
<path fill="none" stroke="#000000" d="M1204.2,-418.72C1218.5,-422.37 1233.3,-426.11 1247.5,-429.73"/>
<polygon fill="#000000" stroke="#000000" points="1246.746,-433.1496 1257.3,-432.22 1248.4699,-426.3651 1246.746,-433.1496"/>
</g>
<!-- zcash/halo2#437 -->
<g id="node19" class="node open">
<title>zcash/halo2#437</title>
<g id="a_node19"><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,-387.5 1240,-387.5 1240,-334.5 1454,-334.5 1454,-387.5"/>
<text text-anchor="middle" x="1347" y="-372.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#437</text>
<text text-anchor="middle" x="1347" y="-357.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="-342.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="edge10" class="edge">
<title>zcash/halo2#251&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M1204.2,-378.85C1212.6,-377.8 1221.2,-376.73 1229.7,-375.66"/>
<polygon fill="#000000" stroke="#000000" points="1230.2114,-379.1234 1239.7,-374.41 1229.3431,-372.1775 1230.2114,-379.1234"/>
</g>
<!-- zcash/halo2#436 -->
<g id="node20" class="node open">
<title>zcash/halo2#436</title>
<g id="a_node20"><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,-328 530,-328 530,-260 705,-260 705,-328"/>
<text text-anchor="middle" x="617.5" y="-312.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#436</text>
<text text-anchor="middle" x="617.5" y="-297.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-282.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-267.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="edge11" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#437</title>
<path fill="none" stroke="#000000" d="M705.36,-304.87C720.89,-306.67 736.91,-308.46 752,-310 798.08,-314.71 1069.8,-337.7 1229.6,-351.15"/>
<polygon fill="#000000" stroke="#000000" points="1229.743,-354.6741 1240,-352.02 1230.3266,-347.6985 1229.743,-354.6741"/>
</g>
<!-- zcash/halo2#438 -->
<g id="node21" class="node open">
<title>zcash/halo2#438</title>
<g id="a_node21"><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,-301.5 762,-301.5 762,-248.5 948,-248.5 948,-301.5"/>
<text text-anchor="middle" x="855" y="-286.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#438</text>
<text text-anchor="middle" x="855" y="-271.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement the logic for</text>
<text text-anchor="middle" x="855" y="-256.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="edge12" class="edge">
<title>zcash/halo2#436&#45;&gt;zcash/halo2#438</title>
<path fill="none" stroke="#000000" d="M705.26,-286.98C720.33,-285.77 736.11,-284.51 751.54,-283.28"/>
<polygon fill="#000000" stroke="#000000" points="751.9325,-286.7598 761.62,-282.47 751.3718,-279.7823 751.9325,-286.7598"/>
</g>
<!-- zcash/halo2#435 -->
<g id="node22" class="node open">
<title>zcash/halo2#435</title>
<g id="a_node22"><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,-486 530,-486 530,-418 705,-418 705,-486"/>
<text text-anchor="middle" x="617.5" y="-470.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#435</text>
<text text-anchor="middle" x="617.5" y="-455.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement mock</text>
<text text-anchor="middle" x="617.5" y="-440.8" font-family="Times,serif" font-size="14.00" fill="#000000">verification circuit for</text>
<text text-anchor="middle" x="617.5" y="-425.8" font-family="Times,serif" font-size="14.00" fill="#000000">IVC</text>
</a>
</g>
</g>
<!-- zcash/halo2#247 -->
<g id="node23" class="node open">
<title>zcash/halo2#247</title>
<g id="a_node23"><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,-426 762.5,-426 762.5,-358 947.5,-358 947.5,-426"/>
<text text-anchor="middle" x="855" y="-410.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#247</text>
<text text-anchor="middle" x="855" y="-395.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement underlying</text>
<text text-anchor="middle" x="855" y="-380.8" font-family="Times,serif" font-size="14.00" fill="#000000">scaffolding for creating</text>
<text text-anchor="middle" x="855" y="-365.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="edge13" class="edge">
<title>zcash/halo2#435&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M705.26,-429.83C720.69,-425.93 736.87,-421.84 752.66,-417.86"/>
<polygon fill="#000000" stroke="#000000" points="753.5843,-421.2365 762.42,-415.39 751.8669,-414.4504 753.5843,-421.2365"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#250 -->
<g id="edge14" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M939.17,-426.06C945.59,-428.99 951.93,-431.98 958,-435 988.53,-450.17 1021.5,-469.21 1047.9,-485.12"/>
<polygon fill="#000000" stroke="#000000" points="1046.2316,-488.2012 1056.6,-490.38 1049.8533,-482.211 1046.2316,-488.2012"/>
</g>
<!-- zcash/halo2#247&#45;&gt;zcash/halo2#251 -->
<g id="edge15" class="edge">
<title>zcash/halo2#247&#45;&gt;zcash/halo2#251</title>
<path fill="none" stroke="#000000" d="M947.59,-392C959.39,-392 971.58,-392 983.68,-392"/>
<polygon fill="#000000" stroke="#000000" points="983.81,-395.5001 993.81,-392 983.81,-388.5001 983.81,-395.5001"/>
</g>
<!-- zcash/halo2#246 -->
<g id="node24" class="node open">
<title>zcash/halo2#246</title>
<g id="a_node24"><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,-348.5 283,-348.5 283,-295.5 462,-295.5 462,-348.5"/>
<text text-anchor="middle" x="372.5" y="-333.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#246</text>
<text text-anchor="middle" x="372.5" y="-318.3" font-family="Times,serif" font-size="14.00" fill="#000000">Create recursive proof</text>
<text text-anchor="middle" x="372.5" y="-303.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="edge16" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#436</title>
<path fill="none" stroke="#000000" d="M462.34,-311.73C480.98,-309.6 500.7,-307.35 519.61,-305.19"/>
<polygon fill="#000000" stroke="#000000" points="520.1842,-308.6472 529.72,-304.03 519.3862,-301.6928 520.1842,-308.6472"/>
</g>
<!-- zcash/halo2#246&#45;&gt;zcash/halo2#435 -->
<g id="edge17" class="edge">
<title>zcash/halo2#246&#45;&gt;zcash/halo2#435</title>
<path fill="none" stroke="#000000" d="M462.11,-345.61C469.48,-349.19 476.56,-353.3 483,-358 505.11,-374.15 497.77,-390.71 519,-408 520.77,-409.44 522.59,-410.85 524.46,-412.21"/>
<polygon fill="#000000" stroke="#000000" points="522.6927,-415.2408 532.93,-417.97 526.6291,-409.4524 522.6927,-415.2408"/>
</g>
<!-- zcash/halo2#439 -->
<g id="node25" class="node open">
<title>zcash/halo2#439</title>
<g id="a_node25"><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,-348.5 21.5,-348.5 21.5,-295.5 204.5,-295.5 204.5,-348.5"/>
<text text-anchor="middle" x="113" y="-333.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#439</text>
<text text-anchor="middle" x="113" y="-318.3" font-family="Times,serif" font-size="14.00" fill="#000000">Support split</text>
<text text-anchor="middle" x="113" y="-303.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="edge18" class="edge">
<title>zcash/halo2#439&#45;&gt;zcash/halo2#246</title>
<path fill="none" stroke="#000000" d="M204.86,-322C226.86,-322 250.45,-322 272.79,-322"/>
<polygon fill="#000000" stroke="#000000" points="272.95,-325.5001 282.95,-322 272.95,-318.5001 272.95,-325.5001"/>
</g>
<!-- zcash/halo2#359 -->
<g id="node26" class="node open">
<title>zcash/halo2#359</title>
<g id="a_node26"><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,-399.5 519,-399.5 519,-346.5 716,-346.5 716,-399.5"/>
<text text-anchor="middle" x="617.5" y="-384.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#359</text>
<text text-anchor="middle" x="617.5" y="-369.3" font-family="Times,serif" font-size="14.00" fill="#000000">Set up `BaseTranscript`,</text>
<text text-anchor="middle" x="617.5" y="-354.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="edge19" class="edge">
<title>zcash/halo2#359&#45;&gt;zcash/halo2#247</title>
<path fill="none" stroke="#000000" d="M716.16,-380.89C728.11,-381.85 740.33,-382.83 752.34,-383.79"/>
<polygon fill="#000000" stroke="#000000" points="752.1131,-387.2829 762.36,-384.59 752.6703,-380.3051 752.1131,-387.2829"/>
</g>
<!-- zcash/halo2#249 -->
<g id="node27" class="node open">
<title>zcash/halo2#249</title>
<g id="a_node27"><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,-670 766.5,-670 766.5,-602 943.5,-602 943.5,-670"/>
<text text-anchor="middle" x="855" y="-654.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#249</text>
<text text-anchor="middle" x="855" y="-639.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement recursion</text>
<text text-anchor="middle" x="855" y="-624.8" font-family="Times,serif" font-size="14.00" fill="#000000">circuit logic for</text>
<text text-anchor="middle" x="855" y="-609.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="edge20" class="edge">
<title>zcash/halo2#249&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M938.51,-601.96C945.14,-599.01 951.7,-596 958,-593 986.74,-579.3 1018,-562.65 1043.7,-548.43"/>
<polygon fill="#000000" stroke="#000000" points="1045.5416,-551.4112 1052.6,-543.51 1042.1549,-545.285 1045.5416,-551.4112"/>
</g>
<!-- zcash/halo2#380 -->
<g id="node28" class="node committed">
<title>zcash/halo2#380</title>
<g id="a_node28"><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,-277.5 29,-277.5 29,-273.5 25,-273.5 25,-269.5 29,-269.5 29,-232.5 25,-232.5 25,-228.5 29,-228.5 29,-224.5 197,-224.5 197,-277.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-273.5 33,-273.5 33,-269.5 29,-269.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="29,-232.5 33,-232.5 33,-228.5 29,-228.5 "/>
<text text-anchor="middle" x="113" y="-262.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#380</text>
<text text-anchor="middle" x="113" y="-247.3" font-family="Times,serif" font-size="14.00" fill="#000000">[book] Fix errors and</text>
<text text-anchor="middle" x="113" y="-232.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="edge21" class="edge">
<title>zcash/halo2#380&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M197.25,-230.22C222.32,-224.04 249.97,-217.22 275.77,-210.86"/>
<polygon fill="#000000" stroke="#000000" points="276.6835,-214.2396 285.55,-208.44 275.002,-207.4445 276.6835,-214.2396"/>
</g>
<!-- zcash/halo2#542 -->
<g id="node29" class="node committed">
<title>zcash/halo2#542</title>
<g id="a_node29"><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,-206.5 19.5,-206.5 19.5,-202.5 15.5,-202.5 15.5,-198.5 19.5,-198.5 19.5,-161.5 15.5,-161.5 15.5,-157.5 19.5,-157.5 19.5,-153.5 206.5,-153.5 206.5,-206.5"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-202.5 23.5,-202.5 23.5,-198.5 19.5,-198.5 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="19.5,-161.5 23.5,-161.5 23.5,-157.5 19.5,-157.5 "/>
<text text-anchor="middle" x="113" y="-191.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#542</text>
<text text-anchor="middle" x="113" y="-176.3" font-family="Times,serif" font-size="14.00" fill="#000000">Relicense Halo 2 crates</text>
<text text-anchor="middle" x="113" y="-161.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="edge22" class="edge">
<title>zcash/halo2#542&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M206.69,-182.53C229.09,-183.13 253.06,-183.78 275.61,-184.39"/>
<polygon fill="#000000" stroke="#000000" points="275.7713,-187.8954 285.86,-184.66 275.9557,-180.8978 275.7713,-187.8954"/>
</g>
<!-- zcash/halo2#248 -->
<g id="node30" class="node open">
<title>zcash/halo2#248</title>
<g id="a_node30"><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,-583.5 753.5,-583.5 753.5,-530.5 956.5,-530.5 956.5,-583.5"/>
<text text-anchor="middle" x="855" y="-568.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#248</text>
<text text-anchor="middle" x="855" y="-553.3" font-family="Times,serif" font-size="14.00" fill="#000000">Implement endoscaling in</text>
<text text-anchor="middle" x="855" y="-538.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="edge23" class="edge">
<title>zcash/halo2#248&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M956.71,-540.33C969.51,-538.23 982.61,-536.08 995.43,-533.98"/>
<polygon fill="#000000" stroke="#000000" points="996.3042,-537.3831 1005.6,-532.3 995.1632,-530.4767 996.3042,-537.3831"/>
</g>
<!-- zcash/halo2#245 -->
<g id="node31" class="node open">
<title>zcash/halo2#245</title>
<g id="a_node31"><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,-512 752,-512 752,-444 958,-444 958,-512"/>
<text text-anchor="middle" x="855" y="-496.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#245</text>
<text text-anchor="middle" x="855" y="-481.8" font-family="Times,serif" font-size="14.00" fill="#000000">Remove the need to</text>
<text text-anchor="middle" x="855" y="-466.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="-451.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="edge24" class="edge">
<title>zcash/halo2#245&#45;&gt;zcash/halo2#250</title>
<path fill="none" stroke="#000000" d="M958.12,-494.48C970.65,-496.48 983.44,-498.53 995.96,-500.53"/>
<polygon fill="#000000" stroke="#000000" points="995.4727,-503.9965 1005.9,-502.12 996.5784,-497.0843 995.4727,-503.9965"/>
</g>
<!-- zcash/halo2#543 -->
<g id="node32" class="node open">
<title>zcash/halo2#543</title>
<g id="a_node32"><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,-131 43,-131 43,-127 39,-127 39,-123 43,-123 43,-101 39,-101 39,-97 43,-97 43,-93 183,-93 183,-131"/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-127 47,-127 47,-123 43,-123 "/>
<polyline fill="none" stroke="#000000" stroke-width="2" points="43,-101 47,-101 47,-97 43,-97 "/>
<text text-anchor="middle" x="113" y="-115.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#543</text>
<text text-anchor="middle" x="113" y="-100.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="edge25" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#426</title>
<path fill="none" stroke="#000000" d="M180.55,-131.02C195.52,-135.26 211.31,-139.76 226,-144 242.18,-148.67 259.35,-153.66 276.03,-158.54"/>
<polygon fill="#000000" stroke="#000000" points="275.1991,-161.9437 285.78,-161.4 277.1695,-155.2267 275.1991,-161.9437"/>
</g>
<!-- zcash/halo2#548 -->
<g id="node33" class="node open">
<title>zcash/halo2#548</title>
<g id="a_node33"><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,-142 262,-142 262,-74 483,-74 483,-142"/>
<text text-anchor="middle" x="372.5" y="-126.8" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#548</text>
<text text-anchor="middle" x="372.5" y="-111.8" font-family="Times,serif" font-size="14.00" fill="#000000">Implement performance and</text>
<text text-anchor="middle" x="372.5" y="-96.8" font-family="Times,serif" font-size="14.00" fill="#000000">memory optimizations for</text>
<text text-anchor="middle" x="372.5" y="-81.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="edge26" class="edge">
<title>zcash/halo2#543&#45;&gt;zcash/halo2#548</title>
<path fill="none" stroke="#000000" d="M183.22,-110.92C204.37,-110.59 228.21,-110.22 251.66,-109.86"/>
<polygon fill="#000000" stroke="#000000" points="251.7236,-113.3595 261.67,-109.71 251.6186,-106.3603 251.7236,-113.3595"/>
</g>
<!-- zcash/halo2#483 -->
<g id="node34" class="node committed">
<title>zcash/halo2#483</title>
<g id="a_node34"><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="210,-922.5 16,-922.5 16,-839.5 210,-839.5 210,-922.5"/>
<text text-anchor="middle" x="113" y="-907.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#483</text>
<text text-anchor="middle" x="113" y="-892.3" font-family="Times,serif" font-size="14.00" fill="#000000">Refactor variable&#45;base</text>
<text text-anchor="middle" x="113" y="-877.3" font-family="Times,serif" font-size="14.00" fill="#000000">scalar mul to distinguish</text>
<text text-anchor="middle" x="113" y="-862.3" font-family="Times,serif" font-size="14.00" fill="#000000">the &quot;base field element&quot;</text>
<text text-anchor="middle" x="113" y="-847.3" font-family="Times,serif" font-size="14.00" fill="#000000">case</text>
</a>
</g>
</g>
<!-- zcash/halo2#312 -->
<g id="node35" class="node open">
<title>zcash/halo2#312</title>
<g id="a_node35"><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,-993.5 15.5,-993.5 15.5,-940.5 210.5,-940.5 210.5,-993.5"/>
<text text-anchor="middle" x="113" y="-978.3" font-family="Times,serif" font-size="14.00" fill="#000000">zcash/halo2#312</text>
<text text-anchor="middle" x="113" y="-963.3" font-family="Times,serif" font-size="14.00" fill="#000000">[Book] Document gadget</text>
<text text-anchor="middle" x="113" y="-948.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>