Showing preview only (8,594K chars total). Download the full file or copy to clipboard to get everything.
Repository: kroma-network/tachyon
Branch: main
Commit: e7b13063c6f1
Files: 2064
Total size: 40.1 MB
Directory structure:
gitextract_hzd_88mr/
├── .bazelignore
├── .bazelrc
├── .bazelversion
├── .clang-format
├── .dockerignore
├── .github/
│ └── workflows/
│ ├── ci.yml
│ └── delete_cache.yml
├── .gitignore
├── .gitmessage
├── BUILD.bazel
├── Cargo.toml
├── LICENSE
├── LICENSE-APACHE.EF
├── LICENSE-APACHE.arkworks-rs
├── LICENSE-APACHE.era-bellman-cuda
├── LICENSE-APACHE.halo2
├── LICENSE-APACHE.plonky3
├── LICENSE-APACHE.scroll
├── LICENSE-APACHE.stwo
├── LICENSE-MIT.EF
├── LICENSE-MIT.arkworks-rs
├── LICENSE-MIT.era-bellman-cuda
├── LICENSE-MIT.halo2
├── LICENSE-MIT.plonky3
├── LICENSE-MIT.scroll
├── LICENSE.chromium
├── LICENSE.lambdaworks
├── LICENSE.tensorflow
├── LICENSE.ulvetanna
├── README.md
├── WORKSPACE
├── bazel/
│ ├── BUILD.bazel
│ ├── buildifier_deps.bzl
│ ├── js_deps.bzl
│ ├── pybind11_deps.bzl
│ ├── tachyon.bzl
│ ├── tachyon_cc.bzl
│ ├── tachyon_deps.bzl
│ ├── tachyon_node.bzl
│ ├── tachyon_py.bzl
│ ├── tachyon_repo.bzl
│ └── tachyon_rust.bzl
├── benchmark/
│ ├── BUILD.bazel
│ ├── config.cc
│ ├── config.h
│ ├── ec/
│ │ ├── BUILD.bazel
│ │ ├── ec_config.cc
│ │ ├── ec_config.h
│ │ └── ec_double_benchmark_gpu.cc
│ ├── fft/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── bellman/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── fft_benchmark.cc
│ │ ├── fft_benchmark_gpu.cc
│ │ ├── fft_config.cc
│ │ ├── fft_config.h
│ │ ├── fft_runner.h
│ │ └── halo2/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── fft_batch/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── fft_batch_benchmark.cc
│ │ ├── fft_batch_config.cc
│ │ ├── fft_batch_config.h
│ │ ├── fft_batch_runner.h
│ │ └── plonky3/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── field_type.h
│ ├── fri/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── fri_benchmark.cc
│ │ ├── fri_config.cc
│ │ ├── fri_config.h
│ │ ├── fri_runner.h
│ │ └── plonky3/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── msm/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── bellman/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── msm_benchmark.cc
│ │ ├── msm_benchmark_gpu.cc
│ │ ├── msm_config.cc
│ │ ├── msm_config.h
│ │ └── msm_runner.h
│ ├── poseidon/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── poseidon_benchmark.cc
│ │ ├── poseidon_benchmark_runner.h
│ │ ├── poseidon_config.cc
│ │ └── poseidon_config.h
│ ├── poseidon2/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── horizen/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── plonky3/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── poseidon2_benchmark.cc
│ │ ├── poseidon2_benchmark_runner.h
│ │ ├── poseidon2_config.cc
│ │ └── poseidon2_config.h
│ ├── simple_reporter.cc
│ ├── simple_reporter.h
│ └── vendor.h
├── docker/
│ ├── Dockerfile.base.jammy
│ ├── Dockerfile.circom.jammy
│ └── Dockerfile.halo2.jammy
├── docs/
│ ├── doxygen/
│ │ ├── BUILD.bazel
│ │ ├── Doxyfile.in
│ │ └── main_page.md
│ ├── how_to_contribute/
│ │ ├── conventions.md
│ │ └── math/
│ │ ├── how_to_add_elliptic_curves.md
│ │ ├── how_to_add_prime_fields.md
│ │ └── math_structure.md
│ └── how_to_use/
│ └── how_to_build.md
├── funding.json
├── scripts/
│ └── packages/
│ ├── BUILD.bazel
│ ├── copy_hdr.py
│ ├── debian/
│ │ ├── BUILD.bazel
│ │ ├── copyright
│ │ ├── debian.bzl
│ │ ├── description
│ │ ├── dev/
│ │ │ ├── BUILD.bazel
│ │ │ └── tachyon.pc.tpl
│ │ └── runtime/
│ │ └── BUILD.bazel
│ └── install_package.sh
├── tachyon/
│ ├── BUILD.bazel
│ ├── base/
│ │ ├── BUILD.bazel
│ │ ├── apple/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── bridging.h
│ │ │ ├── bundle_locations.h
│ │ │ └── bundle_locations.mm
│ │ ├── auto_reset.h
│ │ ├── auto_reset_unittest.cc
│ │ ├── binding/
│ │ │ ├── BUILD.bazel
│ │ │ ├── callable_util.h
│ │ │ ├── cpp_constructor.cc
│ │ │ ├── cpp_constructor.h
│ │ │ ├── cpp_constructor_matcher.cc
│ │ │ ├── cpp_constructor_matcher.h
│ │ │ ├── cpp_raw_ptr.h
│ │ │ ├── cpp_shared_ptr.h
│ │ │ ├── cpp_stack_value.h
│ │ │ ├── cpp_type.h
│ │ │ ├── cpp_type_names.cc
│ │ │ ├── cpp_type_names.h
│ │ │ ├── cpp_unique_ptr.h
│ │ │ ├── cpp_value.cc
│ │ │ ├── cpp_value.h
│ │ │ ├── cpp_value_factory.h
│ │ │ ├── holder_util.h
│ │ │ ├── property_util.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adder.cc
│ │ │ ├── adder.h
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── colored_point.cc
│ │ │ ├── colored_point.h
│ │ │ ├── functions.cc
│ │ │ ├── functions.h
│ │ │ ├── move_only_int.cc
│ │ │ ├── move_only_int.h
│ │ │ ├── point.cc
│ │ │ ├── point.h
│ │ │ ├── rect.cc
│ │ │ ├── rect.h
│ │ │ ├── variant.cc
│ │ │ └── variant.h
│ │ ├── bit_cast.h
│ │ ├── bit_cast_unittest.cc
│ │ ├── bits.cc
│ │ ├── bits.h
│ │ ├── bits_unittest.cc
│ │ ├── buffer/
│ │ │ ├── BUILD.bazel
│ │ │ ├── buffer.cc
│ │ │ ├── buffer.h
│ │ │ ├── buffer_unittest.cc
│ │ │ ├── copyable.h
│ │ │ ├── copyable_forward.h
│ │ │ ├── endian_auto_reset.h
│ │ │ ├── read_only_buffer.cc
│ │ │ ├── read_only_buffer.h
│ │ │ ├── string_buffer.h
│ │ │ ├── vector_buffer.cc
│ │ │ └── vector_buffer.h
│ │ ├── color/
│ │ │ ├── BUILD.bazel
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── color_conversions.cc
│ │ │ ├── color_conversions.h
│ │ │ ├── color_conversions_unittest.cc
│ │ │ ├── color_unittest.cc
│ │ │ └── named_color.h
│ │ ├── compiler_specific.h
│ │ ├── console/
│ │ │ ├── BUILD.bazel
│ │ │ ├── console.cc
│ │ │ ├── console.h
│ │ │ ├── console_stream.cc
│ │ │ ├── console_stream.h
│ │ │ ├── iostream.cc
│ │ │ ├── iostream.h
│ │ │ ├── sgr_parameter_list.h
│ │ │ ├── sgr_parameters.cc
│ │ │ ├── sgr_parameters.h
│ │ │ ├── table_writer.cc
│ │ │ └── table_writer.h
│ │ ├── containers/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adapters.h
│ │ │ ├── adapters_unittest.cc
│ │ │ ├── chunked_iterator.h
│ │ │ ├── circular_deque.h
│ │ │ ├── circular_deque_unittest.cc
│ │ │ ├── container_util.h
│ │ │ ├── container_util_unittest.cc
│ │ │ ├── contains.h
│ │ │ ├── contains_unittest.cc
│ │ │ ├── cxx20_erase.h
│ │ │ ├── cxx20_erase_deque.h
│ │ │ ├── cxx20_erase_forward_list.h
│ │ │ ├── cxx20_erase_internal.h
│ │ │ ├── cxx20_erase_list.h
│ │ │ ├── cxx20_erase_map.h
│ │ │ ├── cxx20_erase_set.h
│ │ │ ├── cxx20_erase_string.h
│ │ │ ├── cxx20_erase_unordered_map.h
│ │ │ ├── cxx20_erase_unordered_set.h
│ │ │ ├── cxx20_erase_vector.h
│ │ │ ├── stack.h
│ │ │ ├── util.h
│ │ │ ├── vector_buffer.h
│ │ │ ├── vector_buffer_unittest.cc
│ │ │ └── zipped_iterator.h
│ │ ├── cxx20_is_constant_evaluated.h
│ │ ├── cxx20_is_constant_evaluated_unittest.cc
│ │ ├── endian.cc
│ │ ├── endian.h
│ │ ├── endian_utils.h
│ │ ├── endian_utils_unittest.cc
│ │ ├── environment.h
│ │ ├── environment_posix.cc
│ │ ├── environment_unittest.cc
│ │ ├── files/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── bin_file.cc
│ │ │ ├── bin_file.h
│ │ │ ├── file.cc
│ │ │ ├── file.h
│ │ │ ├── file_enumerator.cc
│ │ │ ├── file_enumerator.h
│ │ │ ├── file_enumerator_posix.cc
│ │ │ ├── file_enumerator_unittest.cc
│ │ │ ├── file_path.cc
│ │ │ ├── file_path.h
│ │ │ ├── file_path_flag.h
│ │ │ ├── file_path_unittest.cc
│ │ │ ├── file_posix.cc
│ │ │ ├── file_unittest.cc
│ │ │ ├── file_util.cc
│ │ │ ├── file_util.h
│ │ │ ├── file_util_mac.mm
│ │ │ ├── file_util_posix.cc
│ │ │ ├── memory_mapped_file.cc
│ │ │ ├── memory_mapped_file.h
│ │ │ ├── memory_mapped_file_posix.cc
│ │ │ ├── platform_file.h
│ │ │ ├── scoped_file.cc
│ │ │ ├── scoped_file.h
│ │ │ ├── scoped_file_linux.cc
│ │ │ ├── scoped_file_linux_unittest.cc
│ │ │ ├── scoped_temp_dir.cc
│ │ │ ├── scoped_temp_dir.h
│ │ │ └── scoped_temp_dir_unittest.cc
│ │ ├── flag/
│ │ │ ├── BUILD.bazel
│ │ │ ├── flag.cc
│ │ │ ├── flag.h
│ │ │ ├── flag_forward.h
│ │ │ ├── flag_parser.cc
│ │ │ ├── flag_parser.h
│ │ │ ├── flag_parser_unittest.cc
│ │ │ ├── flag_unittest.cc
│ │ │ ├── flag_value_traits.h
│ │ │ └── numeric_flags.h
│ │ ├── functional/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── callback.h
│ │ │ ├── callback_forward.h
│ │ │ ├── function_ref.h
│ │ │ ├── function_ref_unittest.cc
│ │ │ ├── functor_traits.h
│ │ │ ├── identity.h
│ │ │ ├── identity_unittest.cc
│ │ │ ├── invoke.h
│ │ │ └── invoke_unittest.cc
│ │ ├── immediate_crash.h
│ │ ├── json/
│ │ │ ├── BUILD.bazel
│ │ │ ├── json.h
│ │ │ ├── json_unittest.cc
│ │ │ ├── rapidjson_util.cc
│ │ │ ├── rapidjson_util.h
│ │ │ └── test/
│ │ │ └── simple_data.json
│ │ ├── logging.cc
│ │ ├── logging.h
│ │ ├── mac/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── foundation_util.h
│ │ │ ├── foundation_util.mm
│ │ │ ├── mac_logging.h
│ │ │ ├── mac_logging.mm
│ │ │ ├── mach_logging.cc
│ │ │ ├── mach_logging.h
│ │ │ ├── scoped_cftyperef.h
│ │ │ ├── scoped_mach_port.cc
│ │ │ ├── scoped_mach_port.h
│ │ │ └── scoped_typeref.h
│ │ ├── maybe_owned.h
│ │ ├── maybe_owned_traits.h
│ │ ├── memory/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── aligned_memory.cc
│ │ │ ├── aligned_memory.h
│ │ │ ├── aligned_memory_unittest.cc
│ │ │ └── scoped_policy.h
│ │ ├── message_loop/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ └── message_pump_type.h
│ │ ├── no_destructor.h
│ │ ├── numerics/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── checked_math.h
│ │ │ ├── checked_math_impl.h
│ │ │ ├── clamped_math.h
│ │ │ ├── clamped_math_impl.h
│ │ │ ├── math_constants.h
│ │ │ ├── ostream_operators.h
│ │ │ ├── ranges.h
│ │ │ ├── safe_conversions.h
│ │ │ ├── safe_conversions_arm_impl.h
│ │ │ ├── safe_conversions_impl.h
│ │ │ ├── safe_math.h
│ │ │ ├── safe_math_arm_impl.h
│ │ │ ├── safe_math_clang_gcc_impl.h
│ │ │ └── safe_math_shared_impl.h
│ │ ├── openmp_util.h
│ │ ├── optional.h
│ │ ├── parallelize.h
│ │ ├── parallelize_unittest.cc
│ │ ├── posix/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── can_lower_nice_to.cc
│ │ │ ├── can_lower_nice_to.h
│ │ │ └── eintr_wrapper.h
│ │ ├── process/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── process_handle.cc
│ │ │ ├── process_handle.h
│ │ │ └── process_handle_posix.cc
│ │ ├── profiler.cc
│ │ ├── profiler.h
│ │ ├── random.cc
│ │ ├── random.h
│ │ ├── random_unittest.cc
│ │ ├── range.h
│ │ ├── range_unittest.cc
│ │ ├── ranges/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── algorithm.h
│ │ │ ├── algorithm_unittest.cc
│ │ │ ├── functional.h
│ │ │ ├── functional_unittest.cc
│ │ │ ├── ranges.h
│ │ │ └── ranges_unittest.cc
│ │ ├── ref.h
│ │ ├── ref_unittest.cc
│ │ ├── scoped_generic.h
│ │ ├── scoped_generic_unittest.cc
│ │ ├── sort.h
│ │ ├── sort_benchmark.cc
│ │ ├── static_storage.h
│ │ ├── strings/
│ │ │ ├── BUILD.bazel
│ │ │ ├── rust_stringifier.h
│ │ │ ├── string_number_conversions.cc
│ │ │ ├── string_number_conversions.h
│ │ │ ├── string_number_conversions_internal.h
│ │ │ ├── string_number_conversions_unittest.cc
│ │ │ ├── string_util.cc
│ │ │ ├── string_util.h
│ │ │ ├── string_util_impl_helpers.h
│ │ │ ├── string_util_internal.h
│ │ │ ├── string_util_unittest.cc
│ │ │ ├── sys_string_conversions.h
│ │ │ ├── sys_string_conversions_mac.mm
│ │ │ ├── sys_string_conversions_mac_unittest.mm
│ │ │ └── sys_string_conversions_posix.cc
│ │ ├── system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── sys_info.h
│ │ │ └── sys_info_posix.cc
│ │ ├── template_util.h
│ │ ├── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── copy_only_int.cc
│ │ │ ├── copy_only_int.h
│ │ │ ├── move_only_int.h
│ │ │ ├── scoped_environment.cc
│ │ │ └── scoped_environment.h
│ │ ├── threading/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── platform_thread.cc
│ │ │ ├── platform_thread.h
│ │ │ ├── platform_thread_internal_posix.cc
│ │ │ ├── platform_thread_internal_posix.h
│ │ │ ├── platform_thread_linux.cc
│ │ │ ├── platform_thread_mac.mm
│ │ │ ├── platform_thread_posix.cc
│ │ │ ├── platform_thread_ref.cc
│ │ │ └── platform_thread_ref.h
│ │ ├── time/
│ │ │ ├── BUILD.bazel
│ │ │ ├── time.cc
│ │ │ ├── time.h
│ │ │ ├── time_buildflags.bzl
│ │ │ ├── time_conversion_posix.cc
│ │ │ ├── time_delta_flag.h
│ │ │ ├── time_delta_flag_unittest.cc
│ │ │ ├── time_interval.cc
│ │ │ ├── time_interval.h
│ │ │ ├── time_interval_unittest.cc
│ │ │ ├── time_mac.mm
│ │ │ ├── time_mac_unittest.mm
│ │ │ ├── time_now_posix.cc
│ │ │ ├── time_stamp.cc
│ │ │ ├── time_stamp.h
│ │ │ ├── time_stamp_unittest.cc
│ │ │ └── time_unittest.cc
│ │ ├── type_list.h
│ │ └── types/
│ │ ├── .clang-format
│ │ ├── BUILD.bazel
│ │ ├── always_false.h
│ │ └── cxx20_is_bounded_array.h
│ ├── build/
│ │ ├── BUILD.bazel
│ │ ├── build_config.h
│ │ ├── buildflag.bzl
│ │ ├── buildflag.h
│ │ ├── cc_writer.cc
│ │ ├── cc_writer.h
│ │ ├── lastchange.bzl
│ │ ├── lastchange.py
│ │ ├── version.bzl
│ │ ├── write_buildflag_header.py
│ │ ├── write_version_header.py
│ │ ├── writer.cc
│ │ └── writer.h
│ ├── c/
│ │ ├── BUILD.bazel
│ │ ├── api.h
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── profiler.cc
│ │ │ ├── profiler.h
│ │ │ ├── profiler_type_traits.h
│ │ │ └── type_traits_forward.h
│ │ ├── crypto/
│ │ │ ├── BUILD.bazel
│ │ │ ├── commitments/
│ │ │ │ └── fri/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── two_adic_fri_impl.h
│ │ │ └── random/
│ │ │ ├── BUILD.bazel
│ │ │ ├── rng.cc
│ │ │ ├── rng.h
│ │ │ └── rng_unittest.cc
│ │ ├── examples/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.cc
│ │ │ ├── extension_field.cc
│ │ │ ├── jacobian_point.cc
│ │ │ ├── msm.cc
│ │ │ ├── point_xyzz.cc
│ │ │ ├── prime_field.cc
│ │ │ ├── projective_point.cc
│ │ │ ├── rng.cc
│ │ │ └── version.cc
│ │ ├── export.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── g1_test.h
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ ├── generator_util.cc
│ │ │ │ │ ├── generator_util.h
│ │ │ │ │ ├── msm.cc.tpl
│ │ │ │ │ ├── msm.h.tpl
│ │ │ │ │ ├── msm_gpu.cc.tpl
│ │ │ │ │ ├── msm_gpu.h.tpl
│ │ │ │ │ ├── point.cc.tpl
│ │ │ │ │ ├── point.h.tpl
│ │ │ │ │ ├── point_traits.h.tpl
│ │ │ │ │ └── point_type_traits.h.tpl
│ │ │ │ ├── msm/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── msm.h
│ │ │ │ │ ├── msm_gpu.h
│ │ │ │ │ ├── msm_gpu_replay.cc
│ │ │ │ │ ├── msm_gpu_unittest.cc
│ │ │ │ │ ├── msm_input_provider.h
│ │ │ │ │ └── msm_unittest.cc
│ │ │ │ ├── point_traits_forward.h
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ └── projective_point_unittest.cc
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── extension_field_unittest.cc
│ │ │ │ ├── generator/
│ │ │ │ │ ├── ext_field_generator/
│ │ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ │ ├── ext_field.cc.tpl
│ │ │ │ │ │ ├── ext_field.h.tpl
│ │ │ │ │ │ ├── ext_field_generator.cc
│ │ │ │ │ │ └── ext_field_type_traits.h.tpl
│ │ │ │ │ └── prime_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── prime_field.cc.tpl
│ │ │ │ │ ├── prime_field.h.tpl
│ │ │ │ │ ├── prime_field_generator.cc
│ │ │ │ │ └── prime_field_type_traits.h.tpl
│ │ │ │ └── prime_field_unittest.cc
│ │ │ ├── matrix/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear_row_major_matrix.cc
│ │ │ │ ├── baby_bear_row_major_matrix.h
│ │ │ │ ├── baby_bear_row_major_matrix_type_traits.h
│ │ │ │ └── baby_bear_row_major_matrix_unittest.cc
│ │ │ └── polynomials/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constants.h
│ │ │ └── univariate/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_univariate_dense_polynomial.cc
│ │ │ ├── bn254_univariate_dense_polynomial.h
│ │ │ ├── bn254_univariate_dense_polynomial_type_traits.h
│ │ │ ├── bn254_univariate_dense_polynomial_unittest.cc
│ │ │ ├── bn254_univariate_evaluation_domain.cc
│ │ │ ├── bn254_univariate_evaluation_domain.h
│ │ │ ├── bn254_univariate_evaluation_domain_type_traits.h
│ │ │ ├── bn254_univariate_evaluation_domain_unittest.cc
│ │ │ ├── bn254_univariate_evaluations.cc
│ │ │ ├── bn254_univariate_evaluations.h
│ │ │ ├── bn254_univariate_evaluations_type_traits.h
│ │ │ ├── bn254_univariate_evaluations_unittest.cc
│ │ │ ├── bn254_univariate_rational_evaluations.cc
│ │ │ ├── bn254_univariate_rational_evaluations.h
│ │ │ ├── bn254_univariate_rational_evaluations_type_traits.h
│ │ │ └── bn254_univariate_rational_evaluations_unittest.cc
│ │ ├── version.bzl
│ │ ├── version.cc
│ │ ├── version.h
│ │ ├── version_unittest.cc
│ │ └── zk/
│ │ ├── BUILD.bazel
│ │ ├── air/
│ │ │ ├── BUILD.bazel
│ │ │ └── sp1/
│ │ │ ├── BUILD.bazel
│ │ │ ├── baby_bear_poseidon2_commitment_vec.cc
│ │ │ ├── baby_bear_poseidon2_commitment_vec.h
│ │ │ ├── baby_bear_poseidon2_commitment_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_constants.h
│ │ │ ├── baby_bear_poseidon2_domains.cc
│ │ │ ├── baby_bear_poseidon2_domains.h
│ │ │ ├── baby_bear_poseidon2_domains_type_traits.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger.cc
│ │ │ ├── baby_bear_poseidon2_duplex_challenger.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger_type_traits.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger_unittest.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_type_traits.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_fields.h
│ │ │ ├── baby_bear_poseidon2_fri_proof.cc
│ │ │ ├── baby_bear_poseidon2_fri_proof.h
│ │ │ ├── baby_bear_poseidon2_fri_proof_type_traits.h
│ │ │ ├── baby_bear_poseidon2_hintable.h
│ │ │ ├── baby_bear_poseidon2_hintable_unittest.cc
│ │ │ ├── baby_bear_poseidon2_lde_vec.cc
│ │ │ ├── baby_bear_poseidon2_lde_vec.h
│ │ │ ├── baby_bear_poseidon2_lde_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_opened_values.cc
│ │ │ ├── baby_bear_poseidon2_opened_values.h
│ │ │ ├── baby_bear_poseidon2_opened_values_type_traits.h
│ │ │ ├── baby_bear_poseidon2_opened_values_unittest.cc
│ │ │ ├── baby_bear_poseidon2_opening_points.cc
│ │ │ ├── baby_bear_poseidon2_opening_points.h
│ │ │ ├── baby_bear_poseidon2_opening_points_type_traits.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri.cc
│ │ │ ├── baby_bear_poseidon2_two_adic_fri.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri_type_traits.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri_unittest.cc
│ │ │ ├── block.h
│ │ │ └── block_unittest.cc
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_blinder.cc
│ │ │ ├── bn254_blinder.h
│ │ │ └── bn254_blinder_type_traits.h
│ │ └── plonk/
│ │ ├── BUILD.bazel
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_constraint_system.cc
│ │ │ ├── bn254_constraint_system.h
│ │ │ ├── bn254_constraint_system_type_traits.h
│ │ │ ├── bn254_constraint_system_unittest.cc
│ │ │ ├── column_key.h
│ │ │ ├── column_type.h
│ │ │ └── phase.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_argument_data.cc
│ │ │ ├── bn254_argument_data.h
│ │ │ ├── bn254_argument_data_type_traits.h
│ │ │ ├── bn254_instance_columns_vec.cc
│ │ │ ├── bn254_instance_columns_vec.h
│ │ │ ├── bn254_instance_columns_vec_type_traits.h
│ │ │ ├── bn254_prover.cc
│ │ │ ├── bn254_prover.h
│ │ │ ├── bn254_prover_unittest.cc
│ │ │ ├── bn254_ps.h
│ │ │ ├── bn254_transcript.cc
│ │ │ ├── bn254_transcript.h
│ │ │ ├── bn254_transcript_unittest.cc
│ │ │ ├── bn254_verifier.cc
│ │ │ ├── bn254_verifier.h
│ │ │ ├── buffer_reader.h
│ │ │ ├── constants.h
│ │ │ ├── kzg_family_prover_impl.h
│ │ │ ├── prover_impl_base.h
│ │ │ ├── prover_replay.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── bn254_halo2_params_data.h
│ │ │ ├── verifier_impl.h
│ │ │ └── verifier_replay.cc
│ │ └── keys/
│ │ ├── BUILD.bazel
│ │ ├── bn254_plonk_proving_key.cc
│ │ ├── bn254_plonk_proving_key.h
│ │ ├── bn254_plonk_proving_key_unittest.cc
│ │ ├── bn254_plonk_verifying_key.cc
│ │ ├── bn254_plonk_verifying_key.h
│ │ ├── bn254_plonk_verifying_key_type_traits.h
│ │ ├── bn254_plonk_verifying_key_unittest.cc
│ │ └── proving_key_impl.h
│ ├── cc/
│ │ ├── BUILD.bazel
│ │ ├── api.h
│ │ ├── export.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── g1.cc.tpl
│ │ │ │ │ ├── g1.h.tpl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ ├── prime_field.cc.tpl
│ │ │ │ │ └── prime_field.h.tpl
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ └── projective_point_unittest.cc
│ │ │ └── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ └── prime_field_unittest.cc
│ │ ├── version.bzl
│ │ ├── version.cc
│ │ ├── version.h
│ │ └── version_unittest.cc
│ ├── crypto/
│ │ ├── challenger/
│ │ │ ├── BUILD.bazel
│ │ │ ├── challenger.h
│ │ │ ├── challenger_traits_forward.h
│ │ │ ├── duplex_challenger.h
│ │ │ ├── duplex_challenger_unittest.cc
│ │ │ ├── hash_challenger.h
│ │ │ ├── hash_challenger_unittest.cc
│ │ │ ├── multi_field32_challenger.h
│ │ │ ├── multi_field32_challenger_unittest.cc
│ │ │ └── multi_field32_conversions.h
│ │ ├── commitments/
│ │ │ ├── BUILD.bazel
│ │ │ ├── batch_commitment_state.h
│ │ │ ├── fri/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── fri_config.h
│ │ │ │ ├── fri_config_unittest.cc
│ │ │ │ ├── fri_proof.h
│ │ │ │ ├── lagrange_selectors.h
│ │ │ │ ├── prove.h
│ │ │ │ ├── simple_fri.h
│ │ │ │ ├── simple_fri_proof.h
│ │ │ │ ├── simple_fri_storage.h
│ │ │ │ ├── simple_fri_unittest.cc
│ │ │ │ ├── two_adic_fri.h
│ │ │ │ ├── two_adic_fri_unittest.cc
│ │ │ │ ├── two_adic_multiplicative_coset.h
│ │ │ │ ├── two_adic_multiplicative_coset_unittest.cc
│ │ │ │ └── verify.h
│ │ │ ├── kzg/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── gwc.h
│ │ │ │ ├── gwc_unittest.cc
│ │ │ │ ├── kzg.h
│ │ │ │ ├── kzg_family.h
│ │ │ │ ├── kzg_family_test.h
│ │ │ │ ├── kzg_unittest.cc
│ │ │ │ ├── shplonk.h
│ │ │ │ └── shplonk_unittest.cc
│ │ │ ├── merkle_tree/
│ │ │ │ ├── binary_merkle_tree/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── binary_merkle_hasher.h
│ │ │ │ │ ├── binary_merkle_proof.h
│ │ │ │ │ ├── binary_merkle_tree.h
│ │ │ │ │ ├── binary_merkle_tree_storage.h
│ │ │ │ │ ├── binary_merkle_tree_unittest.cc
│ │ │ │ │ └── simple_binary_merkle_tree_storage.h
│ │ │ │ └── field_merkle_tree/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── extension_field_merkle_tree_mmcs.h
│ │ │ │ ├── extension_field_merkle_tree_mmcs_unittest.cc
│ │ │ │ ├── field_merkle_tree.h
│ │ │ │ ├── field_merkle_tree_gpu_unittest.cc
│ │ │ │ ├── field_merkle_tree_mmcs.h
│ │ │ │ ├── field_merkle_tree_mmcs_unittest.cc
│ │ │ │ ├── field_merkle_tree_unittest.cc
│ │ │ │ └── icicle/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── icicle_mmcs.h
│ │ │ │ ├── icicle_mmcs_baby_bear.cc
│ │ │ │ ├── icicle_mmcs_baby_bear.h
│ │ │ │ ├── icicle_mmcs_bn254.cc
│ │ │ │ ├── icicle_mmcs_bn254.h
│ │ │ │ └── icicle_mmcs_holder.h
│ │ │ ├── mixed_matrix_commitment_scheme.h
│ │ │ ├── mixed_matrix_commitment_scheme_traits_forward.h
│ │ │ ├── pedersen/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── pedersen.h
│ │ │ │ └── pedersen_unittest.cc
│ │ │ ├── polynomial_openings.h
│ │ │ ├── polynomial_openings_unittest.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bn254_kzg_polynomial_openings.h
│ │ │ │ └── bn254_kzg_polynomial_openings.json
│ │ │ ├── univariate_polynomial_commitment_scheme.h
│ │ │ ├── vector_commitment_scheme.h
│ │ │ └── vector_commitment_scheme_traits_forward.h
│ │ ├── hashes/
│ │ │ ├── BUILD.bazel
│ │ │ ├── compressor.h
│ │ │ ├── hasher.h
│ │ │ ├── prime_field_serializable.h
│ │ │ ├── prime_field_serializable_unittest.cc
│ │ │ └── sponge/
│ │ │ ├── BUILD.bazel
│ │ │ ├── duplex_sponge_mode.h
│ │ │ ├── duplex_sponge_mode_unittest.cc
│ │ │ ├── padding_free_sponge.h
│ │ │ ├── padding_free_sponge_unittest.cc
│ │ │ ├── poseidon/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── poseidon.h
│ │ │ │ ├── poseidon_config.h
│ │ │ │ ├── poseidon_config_base.h
│ │ │ │ ├── poseidon_config_entry.h
│ │ │ │ ├── poseidon_config_entry_base.h
│ │ │ │ ├── poseidon_config_unittest.cc
│ │ │ │ ├── poseidon_grain_lfsr.h
│ │ │ │ ├── poseidon_grain_lfsr_unittest.cc
│ │ │ │ ├── poseidon_params.h
│ │ │ │ ├── poseidon_sponge_base.h
│ │ │ │ ├── poseidon_unittest.cc
│ │ │ │ ├── sparse_mds_matrix.h
│ │ │ │ └── sparse_mds_matrix_unittest.cc
│ │ │ ├── poseidon2/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── icicle/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── icicle_poseidon2.h
│ │ │ │ │ ├── icicle_poseidon2_baby_bear.cc
│ │ │ │ │ ├── icicle_poseidon2_baby_bear.h
│ │ │ │ │ ├── icicle_poseidon2_bn254.cc
│ │ │ │ │ ├── icicle_poseidon2_bn254.h
│ │ │ │ │ └── icicle_poseidon2_holder.h
│ │ │ │ ├── param_traits/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── poseidon2_baby_bear.h
│ │ │ │ │ ├── poseidon2_bls12_381.h
│ │ │ │ │ ├── poseidon2_bn254.h
│ │ │ │ │ ├── poseidon2_goldilocks.h
│ │ │ │ │ ├── poseidon2_koala_bear.h
│ │ │ │ │ ├── poseidon2_mersenne31.h
│ │ │ │ │ ├── poseidon2_pallas.h
│ │ │ │ │ └── poseidon2_vesta.h
│ │ │ │ ├── poseidon2.h
│ │ │ │ ├── poseidon2_config.h
│ │ │ │ ├── poseidon2_config_entry.h
│ │ │ │ ├── poseidon2_external_matrix.h
│ │ │ │ ├── poseidon2_external_matrix_traits_forward.h
│ │ │ │ ├── poseidon2_external_matrix_unittest.cc
│ │ │ │ ├── poseidon2_gpu_unittest.cc
│ │ │ │ ├── poseidon2_horizen_external_matrix.h
│ │ │ │ ├── poseidon2_horizen_internal_matrix.h
│ │ │ │ ├── poseidon2_internal_matrix_unittest.cc
│ │ │ │ ├── poseidon2_param_traits_forward.h
│ │ │ │ ├── poseidon2_params.h
│ │ │ │ ├── poseidon2_plonky3_external_matrix.h
│ │ │ │ ├── poseidon2_plonky3_internal_matrix.h
│ │ │ │ ├── poseidon2_unittest.cc
│ │ │ │ ├── poseidon2_vendor.cc
│ │ │ │ └── poseidon2_vendor.h
│ │ │ ├── sponge.h
│ │ │ ├── sponge_state.h
│ │ │ ├── truncated_permutation.h
│ │ │ └── truncated_permutation_unittest.cc
│ │ ├── random/
│ │ │ ├── BUILD.bazel
│ │ │ ├── block_rng.h
│ │ │ ├── cha_cha20/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cha_cha20_rng.h
│ │ │ │ └── cha_cha20_rng_unittest.cc
│ │ │ ├── rng.h
│ │ │ ├── rng_type.h
│ │ │ └── xor_shift/
│ │ │ ├── BUILD.bazel
│ │ │ ├── xor_shift_rng.h
│ │ │ └── xor_shift_rng_unittest.cc
│ │ ├── sumcheck/
│ │ │ └── multilinear/
│ │ │ ├── BUILD.bazel
│ │ │ ├── multilinear_sumcheck.h
│ │ │ ├── multilinear_sumcheck_unittest.cc
│ │ │ ├── sumcheck_prover.h
│ │ │ ├── sumcheck_prover_msg.h
│ │ │ ├── sumcheck_prover_msg_unittest.cc
│ │ │ ├── sumcheck_proving_key.h
│ │ │ ├── sumcheck_proving_key_unittest.cc
│ │ │ ├── sumcheck_verifier.h
│ │ │ ├── sumcheck_verifier_msg.h
│ │ │ ├── sumcheck_verifier_msg_unittest.cc
│ │ │ ├── sumcheck_verifying_key.h
│ │ │ └── sumcheck_verifying_key_unittest.cc
│ │ └── transcripts/
│ │ ├── BUILD.bazel
│ │ ├── simple_transcript.h
│ │ ├── transcript.h
│ │ └── transcript_traits.h
│ ├── device/
│ │ ├── BUILD.bazel
│ │ ├── allocator.cc
│ │ ├── allocator.h
│ │ ├── allocator_registry.cc
│ │ ├── allocator_registry.h
│ │ ├── gpu/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cuda/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cub_helper.h
│ │ │ │ ├── cuda_driver.cc
│ │ │ │ ├── cuda_driver.h
│ │ │ │ ├── cuda_driver_unittest.cc
│ │ │ │ └── cuda_memory.h
│ │ │ ├── device_perf_info.cc
│ │ │ ├── device_perf_info.h
│ │ │ ├── gpu_cudamallocasync_allocator.cc
│ │ │ ├── gpu_cudamallocasync_allocator.h
│ │ │ ├── gpu_device_functions.h
│ │ │ ├── gpu_driver.cc
│ │ │ ├── gpu_driver.h
│ │ │ ├── gpu_enums.h
│ │ │ ├── gpu_info.cc
│ │ │ ├── gpu_info.h
│ │ │ ├── gpu_init.cc
│ │ │ ├── gpu_init.h
│ │ │ ├── gpu_logging.cc
│ │ │ ├── gpu_logging.h
│ │ │ ├── gpu_memory.cc
│ │ │ ├── gpu_memory.h
│ │ │ ├── gpu_memory_unittest.cc
│ │ │ ├── gpu_types.h
│ │ │ ├── gpu_util.cc
│ │ │ ├── gpu_util.h
│ │ │ ├── platform_device_id.h
│ │ │ ├── scoped_event.cc
│ │ │ ├── scoped_event.h
│ │ │ ├── scoped_mem_pool.cc
│ │ │ ├── scoped_mem_pool.h
│ │ │ ├── scoped_stream.cc
│ │ │ └── scoped_stream.h
│ │ ├── numa.cc
│ │ ├── numa.h
│ │ ├── numa_unittest.cc
│ │ ├── tracking_allocator.cc
│ │ └── tracking_allocator.h
│ ├── examples/
│ │ ├── BUILD.bazel
│ │ ├── cuda_example.cu.cc
│ │ └── version.cc
│ ├── export.h
│ ├── math/
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── arithmetics.h
│ │ │ ├── arithmetics_results.h
│ │ │ ├── arithmetics_unittest.cc
│ │ │ ├── batch_inverse_benchmark.cc
│ │ │ ├── big_int.cc
│ │ │ ├── big_int.h
│ │ │ ├── big_int_unittest.cc
│ │ │ ├── bit_iterator.h
│ │ │ ├── bit_iterator_unittest.cc
│ │ │ ├── bit_traits_forward.h
│ │ │ ├── byinverter.h
│ │ │ ├── byinverter_unittest.cc
│ │ │ ├── const_init.h
│ │ │ ├── egcd.h
│ │ │ ├── egcd_unittest.cc
│ │ │ ├── field.h
│ │ │ ├── field_unittest.cc
│ │ │ ├── gmp/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bit_traits.h
│ │ │ │ ├── gmp.bzl
│ │ │ │ ├── gmp_util.cc
│ │ │ │ ├── gmp_util.h
│ │ │ │ ├── gmp_util_unittest.cc
│ │ │ │ └── signed_value.h
│ │ │ ├── groups.h
│ │ │ ├── groups_unittest.cc
│ │ │ ├── parallelize_threshold.h
│ │ │ ├── rational_field.h
│ │ │ ├── rational_field_unittest.cc
│ │ │ ├── ring.h
│ │ │ ├── semigroups.h
│ │ │ ├── semigroups_unittest.cc
│ │ │ ├── sign.cc
│ │ │ ├── sign.h
│ │ │ ├── sign_unittest.cc
│ │ │ ├── simd_int.h
│ │ │ ├── simd_int128_arm64.cc
│ │ │ ├── simd_int128_x86.cc
│ │ │ ├── simd_int256_x86.cc
│ │ │ ├── simd_int512_x86.cc
│ │ │ └── simd_int_unittest.cc
│ │ ├── circle/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.h
│ │ │ ├── affine_point_unittest.cc
│ │ │ ├── circle.h
│ │ │ ├── circle_traits_forward.h
│ │ │ ├── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── cpu.h.tpl
│ │ │ │ └── generator.cc
│ │ │ └── m31/
│ │ │ └── BUILD.bazel
│ │ ├── elliptic_curves/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bls12/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bls12_curve.h
│ │ │ │ ├── g2_prepared.h
│ │ │ │ └── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── curve.h.tpl
│ │ │ │ └── generator.cc
│ │ │ ├── bn/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bn254/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── halo2/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── bn254.cc
│ │ │ │ │ └── bn254.h
│ │ │ │ ├── bn384_small_two_adicity/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn_curve.h
│ │ │ │ ├── g2_prepared.h
│ │ │ │ └── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── curve.h.tpl
│ │ │ │ └── generator.cc
│ │ │ ├── msm/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── algorithms/
│ │ │ │ │ ├── icicle/
│ │ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ │ ├── icicle_msm.h
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g1.cc
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g1.h
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g2.cc
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g2.h
│ │ │ │ │ │ ├── icicle_msm_bn254_g1.cc
│ │ │ │ │ │ ├── icicle_msm_bn254_g1.h
│ │ │ │ │ │ ├── icicle_msm_bn254_g2.cc
│ │ │ │ │ │ ├── icicle_msm_bn254_g2.h
│ │ │ │ │ │ ├── icicle_msm_utils.cc
│ │ │ │ │ │ └── icicle_msm_utils.h
│ │ │ │ │ └── pippenger/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── pippenger.h
│ │ │ │ │ ├── pippenger_adapter.h
│ │ │ │ │ ├── pippenger_adapter_benchmark.cc
│ │ │ │ │ ├── pippenger_adapter_unittest.cc
│ │ │ │ │ ├── pippenger_base.h
│ │ │ │ │ ├── pippenger_benchmark.cc
│ │ │ │ │ └── pippenger_unittest.cc
│ │ │ │ ├── fixed_base_msm.h
│ │ │ │ ├── fixed_base_msm_unittest.cc
│ │ │ │ ├── glv.h
│ │ │ │ ├── glv_unittest.cc
│ │ │ │ ├── msm_ctx.h
│ │ │ │ ├── msm_util.h
│ │ │ │ ├── test/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── fixed_base_msm_test_set.h
│ │ │ │ │ └── variable_base_msm_test_set.h
│ │ │ │ ├── variable_base_msm.h
│ │ │ │ ├── variable_base_msm_gpu.h
│ │ │ │ ├── variable_base_msm_gpu_unittest.cc
│ │ │ │ └── variable_base_msm_unittest.cc
│ │ │ ├── pairing/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── ell_coeff.h
│ │ │ │ ├── g2_prepared_base.h
│ │ │ │ ├── g2_projective.h
│ │ │ │ ├── pairing.h
│ │ │ │ ├── pairing_friendly_curve.h
│ │ │ │ ├── pairing_unittest.cc
│ │ │ │ └── twist_type.h
│ │ │ ├── pasta/
│ │ │ │ ├── pallas/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ └── vesta/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── secp/
│ │ │ │ └── secp256k1/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── semigroups.h
│ │ │ ├── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── affine_point_correctness_gpu_test.cc
│ │ │ │ ├── affine_point_impl.h
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── cpu.h.tpl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ └── gpu.h.tpl
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── jacobian_point_impl.h
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── kernels/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── elliptic_curve_ops.cu.h
│ │ │ │ ├── non_affine_point_correctness_gpu_test.cc
│ │ │ │ ├── point_xyzz.h
│ │ │ │ ├── point_xyzz_impl.h
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ ├── projective_point.h
│ │ │ │ ├── projective_point_impl.h
│ │ │ │ ├── projective_point_unittest.cc
│ │ │ │ ├── sw_curve.h
│ │ │ │ ├── sw_curve_traits_forward.h
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── sw_curve_config.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ └── random.h
│ │ ├── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ ├── baby_bear/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear.h
│ │ │ │ ├── baby_bear4.h
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_baby_bear.h
│ │ │ │ │ ├── packed_baby_bear_avx2.cc
│ │ │ │ │ ├── packed_baby_bear_avx2.h
│ │ │ │ │ ├── packed_baby_bear_avx512.cc
│ │ │ │ │ ├── packed_baby_bear_avx512.h
│ │ │ │ │ ├── packed_baby_bear_neon.cc
│ │ │ │ │ └── packed_baby_bear_neon.h
│ │ │ │ └── packed_baby_bear4.h
│ │ │ ├── binary_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── binary_field.h
│ │ │ │ ├── binary_field_traits_forward.h
│ │ │ │ ├── binary_fields.h
│ │ │ │ ├── binary_fields_unittest.cc
│ │ │ │ └── binary_tower_operations.h
│ │ │ ├── carry_chain.h
│ │ │ ├── cubic_extension_field.h
│ │ │ ├── cubic_extension_field_unittest.cc
│ │ │ ├── cyclotomic_multiplicative_subgroup.h
│ │ │ ├── extended_packed_field_traits_forward.h
│ │ │ ├── extension_field_base.h
│ │ │ ├── extension_field_traits_forward.h
│ │ │ ├── finite_field.h
│ │ │ ├── finite_field_forwards.h
│ │ │ ├── finite_field_traits.h
│ │ │ ├── finite_field_unittest.cc
│ │ │ ├── fp12.h
│ │ │ ├── fp12_unittest.cc
│ │ │ ├── fp2.h
│ │ │ ├── fp2_unittest.cc
│ │ │ ├── fp3.h
│ │ │ ├── fp4.h
│ │ │ ├── fp6.h
│ │ │ ├── fp6_unittest.cc
│ │ │ ├── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── binary_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── binary_field_config.h.tpl
│ │ │ │ │ ├── binary_field_cpu.h.tpl
│ │ │ │ │ ├── binary_field_generator.cc
│ │ │ │ │ ├── binary_field_gpu.h.tpl
│ │ │ │ │ └── build_defs.bzl
│ │ │ │ ├── ext_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── ext_field_generator.cc
│ │ │ │ │ └── fp.h.tpl
│ │ │ │ ├── generator_util.cc
│ │ │ │ ├── generator_util.h
│ │ │ │ └── prime_field_generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── fail.cc.tpl
│ │ │ │ ├── fail.h.tpl
│ │ │ │ ├── prime_field_config.cc.tpl
│ │ │ │ ├── prime_field_config.h.tpl
│ │ │ │ ├── prime_field_cpu.h.tpl
│ │ │ │ ├── prime_field_generator.cc
│ │ │ │ ├── prime_field_gpu.h.tpl
│ │ │ │ ├── prime_field_x86.h.tpl
│ │ │ │ ├── small_prime_field_config.cc.tpl
│ │ │ │ ├── small_prime_field_config.h.tpl
│ │ │ │ ├── small_prime_field_cpu.h.tpl
│ │ │ │ └── small_prime_field_gpu.h.tpl
│ │ │ ├── goldilocks/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── goldilocks.h
│ │ │ │ ├── goldilocks_unittest.cc
│ │ │ │ └── internal/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── goldilocks_prime_field_x86_special.cc
│ │ │ │ └── goldilocks_prime_field_x86_special.h
│ │ │ ├── kernels/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── carry_chain.h
│ │ │ │ ├── prime_field_ops.cu.h
│ │ │ │ └── prime_field_ops_internal.cu.h
│ │ │ ├── koala_bear/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_koala_bear.h
│ │ │ │ │ ├── packed_koala_bear_avx2.cc
│ │ │ │ │ ├── packed_koala_bear_avx2.h
│ │ │ │ │ ├── packed_koala_bear_avx512.cc
│ │ │ │ │ ├── packed_koala_bear_avx512.h
│ │ │ │ │ ├── packed_koala_bear_neon.cc
│ │ │ │ │ └── packed_koala_bear_neon.h
│ │ │ │ ├── koala_bear.h
│ │ │ │ ├── koala_bear4.h
│ │ │ │ └── packed_koala_bear4.h
│ │ │ ├── legendre_symbol.h
│ │ │ ├── mersenne31/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_mersenne31.h
│ │ │ │ │ ├── packed_mersenne31_avx2.cc
│ │ │ │ │ ├── packed_mersenne31_avx2.h
│ │ │ │ │ ├── packed_mersenne31_avx512.cc
│ │ │ │ │ ├── packed_mersenne31_avx512.h
│ │ │ │ │ ├── packed_mersenne31_neon.cc
│ │ │ │ │ └── packed_mersenne31_neon.h
│ │ │ │ └── mersenne31.h
│ │ │ ├── modulus.h
│ │ │ ├── modulus_unittest.cc
│ │ │ ├── packed_field_traits_forward.h
│ │ │ ├── packed_prime_field32_avx2.h
│ │ │ ├── packed_prime_field32_avx512.h
│ │ │ ├── packed_prime_field32_neon.h
│ │ │ ├── packed_prime_field_base.h
│ │ │ ├── packed_prime_field_unittest.cc
│ │ │ ├── prime_field_base.h
│ │ │ ├── prime_field_base_unittest.cc
│ │ │ ├── prime_field_conversions.h
│ │ │ ├── prime_field_correctness_gpu_test.cc
│ │ │ ├── prime_field_fallback.h
│ │ │ ├── prime_field_generator_unittest.cc
│ │ │ ├── prime_field_gpu.h
│ │ │ ├── prime_field_gpu_debug.h
│ │ │ ├── prime_field_gpu_unittest.cc
│ │ │ ├── prime_field_ops_internal.h
│ │ │ ├── prime_field_unittest.cc
│ │ │ ├── prime_field_util.cc
│ │ │ ├── prime_field_util.h
│ │ │ ├── quadratic_extension_field.h
│ │ │ ├── quadratic_extension_field_unittest.cc
│ │ │ ├── quartic_extension_field.h
│ │ │ ├── quartic_extension_field_unittest.cc
│ │ │ ├── small_prime_field.h
│ │ │ ├── small_prime_field_mont.h
│ │ │ ├── square_root_algorithms/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── shanks.h
│ │ │ │ └── tonelli_shanks.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ └── finite_field_test.h
│ │ ├── geometry/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.h
│ │ │ ├── curve_type.h
│ │ │ ├── dimensions.h
│ │ │ ├── dimensions_unittest.cc
│ │ │ ├── jacobian_point.h
│ │ │ ├── point2.h
│ │ │ ├── point2_unittest.cc
│ │ │ ├── point3.h
│ │ │ ├── point3_unittest.cc
│ │ │ ├── point4.h
│ │ │ ├── point4_unittest.cc
│ │ │ ├── point_conversions.h
│ │ │ ├── point_conversions_forward.h
│ │ │ ├── point_xyzz.h
│ │ │ └── projective_point.h
│ │ ├── matrix/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cost_calculator_forward.h
│ │ │ ├── gmp_num_traits.h
│ │ │ ├── matrix_inverse_unittest.cc
│ │ │ ├── matrix_operations.h
│ │ │ ├── matrix_operations_benchmark.cc
│ │ │ ├── matrix_operations_unittest.cc
│ │ │ ├── matrix_types.h
│ │ │ ├── matrix_types_unittest.cc
│ │ │ ├── matrix_utils.h
│ │ │ ├── matrix_utils_unittest.cc
│ │ │ ├── prime_field_num_traits.h
│ │ │ └── sparse/
│ │ │ ├── BUILD.bazel
│ │ │ ├── sparse_matrix.h
│ │ │ └── sparse_matrix_unittest.cc
│ │ ├── polynomials/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluation_domain.h
│ │ │ ├── multivariate/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── linear_combination.h
│ │ │ │ ├── linear_combination_term.h
│ │ │ │ ├── linear_combination_unittest.cc
│ │ │ │ ├── multilinear_dense_evaluations.h
│ │ │ │ ├── multilinear_dense_evaluations_unittest.cc
│ │ │ │ ├── multilinear_extension.h
│ │ │ │ ├── multilinear_extension_ops.h
│ │ │ │ ├── multivariate_polynomial.h
│ │ │ │ ├── multivariate_polynomial_ops.h
│ │ │ │ ├── multivariate_polynomial_unittest.cc
│ │ │ │ ├── multivariate_sparse_coefficients.h
│ │ │ │ └── support_poly_operators.h
│ │ │ ├── polynomial.h
│ │ │ ├── polynomial_traits_forward.h
│ │ │ ├── support_poly_operators.h
│ │ │ └── univariate/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluations_utils.h
│ │ │ ├── fft_algorithm.cc
│ │ │ ├── fft_algorithm.h
│ │ │ ├── icicle/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── fft_algorithm_conversion.cc
│ │ │ │ ├── fft_algorithm_conversion.h
│ │ │ │ ├── icicle_ntt.h
│ │ │ │ ├── icicle_ntt_baby_bear.cc
│ │ │ │ ├── icicle_ntt_baby_bear.h
│ │ │ │ ├── icicle_ntt_bls12_381.cc
│ │ │ │ ├── icicle_ntt_bls12_381.h
│ │ │ │ ├── icicle_ntt_bn254.cc
│ │ │ │ ├── icicle_ntt_bn254.h
│ │ │ │ └── icicle_ntt_holder.h
│ │ │ ├── lagrange_interpolation.h
│ │ │ ├── lagrange_interpolation_unittest.cc
│ │ │ ├── mixed_radix_evaluation_domain.h
│ │ │ ├── naive_batch_fft.h
│ │ │ ├── radix2_evaluation_domain.h
│ │ │ ├── radix2_evaluation_domain_unittest.cc
│ │ │ ├── radix2_twiddle_cache.h
│ │ │ ├── support_poly_operators.h
│ │ │ ├── two_adic_subgroup.h
│ │ │ ├── two_adic_subgroup_traits_forward.h
│ │ │ ├── univariate_dense_coefficients.h
│ │ │ ├── univariate_dense_polynomial_unittest.cc
│ │ │ ├── univariate_evaluation_domain.h
│ │ │ ├── univariate_evaluation_domain_factory.h
│ │ │ ├── univariate_evaluation_domain_forwards.h
│ │ │ ├── univariate_evaluation_domain_gpu_unittest.cc
│ │ │ ├── univariate_evaluation_domain_unittest.cc
│ │ │ ├── univariate_evaluations.h
│ │ │ ├── univariate_evaluations_ops.h
│ │ │ ├── univariate_evaluations_unittest.cc
│ │ │ ├── univariate_polynomial.h
│ │ │ ├── univariate_polynomial_ops.h
│ │ │ ├── univariate_sparse_coefficients.h
│ │ │ └── univariate_sparse_polynomial_unittest.cc
│ │ └── test/
│ │ ├── BUILD.bazel
│ │ └── launch_op_macros.h
│ ├── node/
│ │ ├── BUILD.bazel
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── node_constructors.cc
│ │ │ ├── node_constructors.h
│ │ │ ├── node_cpp_bindable.cc
│ │ │ ├── node_cpp_bindable.h
│ │ │ ├── node_cpp_callable.h
│ │ │ ├── node_cpp_callable_data.h
│ │ │ ├── node_cpp_class.h
│ │ │ ├── node_cpp_constructor.cc
│ │ │ ├── node_cpp_constructor.h
│ │ │ ├── node_cpp_constructor_matcher.h
│ │ │ ├── node_cpp_enum.h
│ │ │ ├── node_cpp_object.h
│ │ │ ├── node_errors.cc
│ │ │ ├── node_errors.h
│ │ │ ├── node_internals.h
│ │ │ ├── node_internals_forwards.h
│ │ │ ├── node_module.cc
│ │ │ ├── node_module.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── enum.cc
│ │ │ ├── function.cc
│ │ │ ├── point.cc
│ │ │ ├── point.h
│ │ │ └── test.cc
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── base/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── big_int.h
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ └── generator.cc
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── point_xyzz.h
│ │ │ │ └── projective_point.h
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── prime_field.h
│ │ │ ├── math.cc
│ │ │ └── math.h
│ │ ├── tachyon.cc
│ │ └── test/
│ │ ├── .aspect/
│ │ │ └── rules/
│ │ │ └── external_repository_action_cache/
│ │ │ └── npm_translate_lock_LTIxMDEzMjgwMDY=
│ │ ├── .bazelignore
│ │ ├── .bazelrc
│ │ ├── .bazelversion
│ │ ├── .prettierrc.js
│ │ ├── .swcrc
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── WORKSPACE
│ │ ├── bazel/
│ │ │ ├── BUILD.bazel
│ │ │ ├── tachyon_jest.bzl
│ │ │ └── tachyon_ts.bzl
│ │ ├── bazelignore
│ │ ├── jest.config.js
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── base/
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── class.spec.ts
│ │ │ │ ├── enum.spec.ts
│ │ │ │ └── function.spec.ts
│ │ │ └── math/
│ │ │ ├── elliptic_curves/
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.spec.ts
│ │ │ │ ├── jacobian_point.spec.ts
│ │ │ │ ├── point_xyzz.spec.ts
│ │ │ │ └── projective_point.spec.ts
│ │ │ └── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ └── prime_field.spec.ts
│ │ └── tsconfig.json
│ ├── py/
│ │ ├── BUILD.bazel
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ └── pybind11.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── base/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── big_int.h
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ └── generator.cc
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── point_xyzz.h
│ │ │ │ └── projective_point.h
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── prime_field.h
│ │ │ ├── math.cc
│ │ │ └── math.h
│ │ ├── tachyon.cc
│ │ └── test/
│ │ ├── .bazelrc
│ │ ├── .bazelversion
│ │ ├── BUILD.bazel
│ │ ├── WORKSPACE
│ │ ├── bazel/
│ │ │ ├── BUILD.bazel
│ │ │ └── tachyon_py.bzl
│ │ ├── requirements_lock.txt
│ │ └── tachyon/
│ │ └── math/
│ │ ├── elliptic_curves/
│ │ │ └── short_weierstrass/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point_unittest.py
│ │ │ ├── jacobian_point_unittest.py
│ │ │ ├── point_xyzz_unittest.py
│ │ │ ├── projective_point_unittest.py
│ │ │ └── short_weierstrass_unittests.py
│ │ └── finite_fields/
│ │ ├── BUILD.bazel
│ │ ├── finite_fields_unittests.py
│ │ └── prime_field_unittest.py
│ ├── rs/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── container_util.h
│ │ │ └── rust_vec.h
│ │ └── src/
│ │ ├── lib.rs
│ │ └── math/
│ │ ├── base/
│ │ │ └── mod.rs
│ │ ├── elliptic_curves/
│ │ │ ├── bn/
│ │ │ │ ├── bn254/
│ │ │ │ │ └── mod.rs
│ │ │ │ └── mod.rs
│ │ │ ├── mod.rs
│ │ │ └── short_weierstrass/
│ │ │ └── mod.rs
│ │ ├── finite_fields/
│ │ │ ├── baby_bear/
│ │ │ │ └── mod.rs
│ │ │ └── mod.rs
│ │ ├── geometry/
│ │ │ └── mod.rs
│ │ └── mod.rs
│ ├── version.cc
│ ├── version.h
│ ├── version_unittest.cc
│ └── zk/
│ ├── air/
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ └── variable.h
│ │ └── expressions/
│ │ ├── BUILD.bazel
│ │ ├── air_evaluator.h
│ │ ├── expression_factory.h
│ │ ├── first_row_expression.h
│ │ ├── last_row_expression.h
│ │ ├── transition_expression.h
│ │ └── variable_expression.h
│ ├── base/
│ │ ├── BUILD.bazel
│ │ ├── blinded_polynomial.h
│ │ ├── blinder.h
│ │ ├── blinder_unittest.cc
│ │ ├── commitments/
│ │ │ ├── BUILD.bazel
│ │ │ ├── gwc_extension.h
│ │ │ ├── shplonk_extension.h
│ │ │ ├── univariate_polynomial_commitment_scheme_extension.h
│ │ │ └── univariate_polynomial_commitment_scheme_extension_traits_forward.h
│ │ ├── entities/
│ │ │ ├── BUILD.bazel
│ │ │ ├── entity.h
│ │ │ ├── prover_base.h
│ │ │ └── verifier_base.h
│ │ ├── nested_for_loop_openmp_benchmark.cc
│ │ ├── parallelize_benchmark.cc
│ │ ├── random_field_generator_base.h
│ │ ├── rotation.h
│ │ ├── rotation_unittest.cc
│ │ ├── row_types.h
│ │ ├── value.h
│ │ └── value_unittest.cc
│ ├── expressions/
│ │ ├── BUILD.bazel
│ │ ├── constant_expression.h
│ │ ├── constant_expression_unittest.cc
│ │ ├── evaluator.h
│ │ ├── expression.h
│ │ ├── expression_factory.h
│ │ ├── expression_type.cc
│ │ ├── expression_type.h
│ │ ├── expression_unittest.cc
│ │ ├── negated_expression.h
│ │ ├── negated_expression_unittest.cc
│ │ ├── product_expression.h
│ │ ├── product_expression_unittest.cc
│ │ ├── scaled_expression.h
│ │ ├── scaled_expression_unittest.cc
│ │ ├── sum_expression.h
│ │ └── sum_expression_unittest.cc
│ ├── lookup/
│ │ ├── BUILD.bazel
│ │ ├── argument.h
│ │ ├── evaluator.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluator.h
│ │ │ ├── opening_point_set.h
│ │ │ ├── permute_expression_pair.h
│ │ │ ├── permute_expression_pair_unittest.cc
│ │ │ ├── prover.h
│ │ │ ├── prover_impl.h
│ │ │ ├── scheme.h
│ │ │ ├── utils.h
│ │ │ ├── verifier.h
│ │ │ └── verifier_data.h
│ │ ├── log_derivative_halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluator.h
│ │ │ ├── prover.h
│ │ │ ├── prover_impl.h
│ │ │ ├── scheme.h
│ │ │ ├── verifier.h
│ │ │ └── verifier_data.h
│ │ ├── pair.h
│ │ ├── prover.h
│ │ ├── type.h
│ │ └── verifier.h
│ ├── plonk/
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── column_key.h
│ │ │ ├── column_key_unittest.cc
│ │ │ ├── column_type.cc
│ │ │ ├── column_type.h
│ │ │ ├── l_values.h
│ │ │ ├── multi_phase_evaluations.h
│ │ │ ├── multi_phase_owned_table.h
│ │ │ ├── multi_phase_ref_table.h
│ │ │ ├── owned_table.h
│ │ │ ├── phase.h
│ │ │ ├── phase_unittest.cc
│ │ │ ├── ref_table.h
│ │ │ ├── ref_table_unittest.cc
│ │ │ └── table_base.h
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── challenge.h
│ │ │ ├── circuit.h
│ │ │ ├── constraint.h
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ ├── exclusion_matrix.h
│ │ │ ├── exclusion_matrix_unittest.cc
│ │ │ ├── gate.h
│ │ │ ├── lookup_tracker.h
│ │ │ ├── query.h
│ │ │ ├── selector.h
│ │ │ ├── selector_assignment.h
│ │ │ ├── selector_compressor.h
│ │ │ ├── selector_compressor_unittest.cc
│ │ │ ├── selector_description.h
│ │ │ ├── selector_description_unittest.cc
│ │ │ ├── selector_unittest.cc
│ │ │ ├── virtual_cell.h
│ │ │ └── virtual_cells.h
│ │ ├── examples/
│ │ │ ├── BUILD.bazel
│ │ │ ├── circuit_test.h
│ │ │ ├── circuit_test_data.h
│ │ │ ├── circuit_test_type_traits.h
│ │ │ ├── fibonacci/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── README.md
│ │ │ │ ├── fibonacci1_circuit.h
│ │ │ │ ├── fibonacci1_circuit_test.cc
│ │ │ │ ├── fibonacci1_circuit_test_data.h
│ │ │ │ ├── fibonacci2_circuit.h
│ │ │ │ ├── fibonacci2_circuit_test.cc
│ │ │ │ ├── fibonacci2_circuit_test_data.h
│ │ │ │ ├── fibonacci3_circuit.h
│ │ │ │ ├── fibonacci3_circuit_test.cc
│ │ │ │ ├── fibonacci3_circuit_test_data.h
│ │ │ │ └── is_zero_chip.h
│ │ │ ├── multi_lookup_circuit.h
│ │ │ ├── multi_lookup_circuit_test.cc
│ │ │ ├── multi_lookup_circuit_test_data.h
│ │ │ ├── point.h
│ │ │ ├── shuffle_api_circuit.h
│ │ │ ├── shuffle_api_circuit_test.cc
│ │ │ ├── shuffle_api_circuit_test_data.h
│ │ │ ├── shuffle_circuit.h
│ │ │ ├── shuffle_circuit_test.cc
│ │ │ ├── shuffle_circuit_test_data.h
│ │ │ ├── simple_circuit.h
│ │ │ ├── simple_circuit_test.cc
│ │ │ ├── simple_circuit_test_data.h
│ │ │ ├── simple_lookup_circuit.h
│ │ │ ├── simple_lookup_circuit_test.cc
│ │ │ ├── simple_lookup_circuit_test_data.h
│ │ │ └── tracking_testing.md
│ │ ├── expressions/
│ │ │ ├── BUILD.bazel
│ │ │ ├── advice_expression.h
│ │ │ ├── advice_expression_unittest.cc
│ │ │ ├── challenge_expression.h
│ │ │ ├── challenge_expression_unittest.cc
│ │ │ ├── compress_expression.h
│ │ │ ├── compress_expression_unittest.cc
│ │ │ ├── evaluator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cells_querier.h
│ │ │ │ ├── identifier.h
│ │ │ │ ├── selector_replacer.h
│ │ │ │ ├── selector_replacer_unittest.cc
│ │ │ │ ├── simple_selector_extractor.h
│ │ │ │ ├── simple_selector_extractor_unittest.cc
│ │ │ │ ├── simple_selector_finder.h
│ │ │ │ ├── simple_selector_finder_unittest.cc
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── evaluator_test.h
│ │ │ ├── expression_factory.h
│ │ │ ├── expression_unittest.cc
│ │ │ ├── fixed_expression.h
│ │ │ ├── fixed_expression_unittest.cc
│ │ │ ├── instance_expression.h
│ │ │ ├── instance_expression_unittest.cc
│ │ │ ├── proving_evaluator.h
│ │ │ ├── proving_evaluator_unittest.cc
│ │ │ ├── selector_expression.h
│ │ │ ├── selector_expression_unittest.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── compress_expression_test.h
│ │ │ └── verifying_evaluator.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── argument_data.h
│ │ │ ├── argument_data_unittest.cc
│ │ │ ├── blake2b_transcript.h
│ │ │ ├── blake2b_transcript_unittest.cc
│ │ │ ├── bn254_gwc_prover_test.h
│ │ │ ├── bn254_shplonk_prover_test.h
│ │ │ ├── c_prover_impl_base_forward.h
│ │ │ ├── config.cc
│ │ │ ├── config.h
│ │ │ ├── constants.h
│ │ │ ├── pcs_type.h
│ │ │ ├── pinned_constraint_system.h
│ │ │ ├── pinned_evaluation_domain.h
│ │ │ ├── pinned_gates.h
│ │ │ ├── pinned_verifying_key.h
│ │ │ ├── pinned_verifying_key_forward.h
│ │ │ ├── poseidon_transcript.h
│ │ │ ├── poseidon_transcript_unittest.cc
│ │ │ ├── prime_field_conversion.h
│ │ │ ├── prime_field_conversion_unittest.cc
│ │ │ ├── proof.h
│ │ │ ├── proof_reader.h
│ │ │ ├── proof_serializer.h
│ │ │ ├── proof_serializer_unittest.cc
│ │ │ ├── proof_unittest.cc
│ │ │ ├── prover.h
│ │ │ ├── prover_test.h
│ │ │ ├── proving_scheme.h
│ │ │ ├── random_field_generator.h
│ │ │ ├── random_field_generator_unittest.cc
│ │ │ ├── sha256_transcript.h
│ │ │ ├── sha256_transcript_unittest.cc
│ │ │ ├── snark_verifier_poseidon_transcript.h
│ │ │ ├── snark_verifier_poseidon_transcript_unittest.cc
│ │ │ ├── stringifiers/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── challenge_stringifier.h
│ │ │ │ ├── column_key_stringifier.h
│ │ │ │ ├── column_type_stringifier.h
│ │ │ │ ├── expression_stringifier.h
│ │ │ │ ├── field_stringifier.h
│ │ │ │ ├── lookup_argument_stringifier.h
│ │ │ │ ├── lookup_tracker_stringifier.h
│ │ │ │ ├── permutation_argument_stringifier.h
│ │ │ │ ├── permutation_verifying_key_stringifier.h
│ │ │ │ ├── phase_stringifier.h
│ │ │ │ ├── point_stringifier.h
│ │ │ │ ├── query_stringifier.h
│ │ │ │ ├── rotation_stringifier.h
│ │ │ │ ├── selector_stringifier.h
│ │ │ │ └── shuffle_argument_stringifier.h
│ │ │ ├── synthesizer.h
│ │ │ ├── transcript_type.h
│ │ │ ├── vendor.cc
│ │ │ ├── vendor.h
│ │ │ ├── verifier.h
│ │ │ ├── witness_collection.h
│ │ │ └── witness_collection_unittest.cc
│ │ ├── keys/
│ │ │ ├── BUILD.bazel
│ │ │ ├── assembly.h
│ │ │ ├── c_proving_key_impl_forward.h
│ │ │ ├── key.h
│ │ │ ├── proving_key.h
│ │ │ ├── proving_key_forward.h
│ │ │ └── verifying_key.h
│ │ ├── layout/
│ │ │ ├── BUILD.bazel
│ │ │ ├── assigned_cell.h
│ │ │ ├── assignment.h
│ │ │ ├── cell.h
│ │ │ ├── floor_planner/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── allocated_region.h
│ │ │ │ ├── allocations.h
│ │ │ │ ├── constant.h
│ │ │ │ ├── empty_space.h
│ │ │ │ ├── floor_planner.h
│ │ │ │ ├── lookup_table_assigner.h
│ │ │ │ ├── plan_region.h
│ │ │ │ ├── scoped_region.h
│ │ │ │ ├── simple_floor_planner.h
│ │ │ │ ├── simple_lookup_table_layouter.h
│ │ │ │ ├── single_chip_layouter.h
│ │ │ │ └── v1/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── assignment_pass.h
│ │ │ │ ├── measurement_pass.h
│ │ │ │ ├── v1_floor_planner.h
│ │ │ │ ├── v1_pass.h
│ │ │ │ ├── v1_plan.h
│ │ │ │ ├── v1_strategy.cc
│ │ │ │ └── v1_strategy.h
│ │ │ ├── layouter.h
│ │ │ ├── lookup_table.h
│ │ │ ├── lookup_table_column.h
│ │ │ ├── lookup_table_column_unittest.cc
│ │ │ ├── namespaced_layouter.h
│ │ │ ├── region.h
│ │ │ ├── region_column.h
│ │ │ ├── region_column_unittest.cc
│ │ │ ├── region_layouter.h
│ │ │ └── region_shape.h
│ │ ├── permutation/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cycle_store.cc
│ │ │ ├── cycle_store.h
│ │ │ ├── cycle_store_unittest.cc
│ │ │ ├── grand_product_argument.h
│ │ │ ├── label.h
│ │ │ ├── permutation_argument.h
│ │ │ ├── permutation_argument_unittest.cc
│ │ │ ├── permutation_assembly.h
│ │ │ ├── permutation_assembly_unittest.cc
│ │ │ ├── permutation_evaluator.h
│ │ │ ├── permutation_opening_point_set.h
│ │ │ ├── permutation_prover.h
│ │ │ ├── permutation_prover_impl.h
│ │ │ ├── permutation_proving_key.h
│ │ │ ├── permutation_table_store.h
│ │ │ ├── permutation_table_store_unittest.cc
│ │ │ ├── permutation_utils.h
│ │ │ ├── permutation_utils_unittest.cc
│ │ │ ├── permutation_verifier.h
│ │ │ ├── permutation_verifier_data.h
│ │ │ ├── permutation_verifying_key.h
│ │ │ ├── permuted_table.h
│ │ │ ├── unpermuted_table.h
│ │ │ └── unpermuted_table_unittest.cc
│ │ └── vanishing/
│ │ ├── BUILD.bazel
│ │ ├── calculation.cc
│ │ ├── calculation.h
│ │ ├── circuit_polynomial_builder.h
│ │ ├── circuit_polynomial_builder_forward.h
│ │ ├── custom_gate_evaluator.h
│ │ ├── evaluation_input.h
│ │ ├── graph_evaluator.h
│ │ ├── graph_evaluator_unittest.cc
│ │ ├── value_source.cc
│ │ ├── value_source.h
│ │ ├── value_source_unittest.cc
│ │ ├── vanishing_argument.h
│ │ ├── vanishing_prover.h
│ │ ├── vanishing_prover_impl.h
│ │ ├── vanishing_utils.h
│ │ ├── vanishing_utils_unittest.cc
│ │ ├── vanishing_verifier.h
│ │ └── vanishing_verifier_data.h
│ ├── r1cs/
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── circuit.h
│ │ │ ├── constraint_matrices.h
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ ├── linear_combination.h
│ │ │ ├── linear_combination_unittest.cc
│ │ │ ├── matrix.h
│ │ │ ├── optimization_goal.h
│ │ │ ├── qap_instance_map_result.h
│ │ │ ├── qap_witness_map_result.h
│ │ │ ├── quadratic_arithmetic_program.h
│ │ │ ├── synthesis_mode.h
│ │ │ ├── term.h
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── simple_circuit.h
│ │ │ ├── variable.cc
│ │ │ ├── variable.h
│ │ │ └── variable_unittest.cc
│ │ └── groth16/
│ │ ├── BUILD.bazel
│ │ ├── groth16_unittest.cc
│ │ ├── key.h
│ │ ├── prepared_verifying_key.h
│ │ ├── proof.h
│ │ ├── prove.h
│ │ ├── proving_key.h
│ │ ├── toxic_waste.h
│ │ ├── verify.h
│ │ └── verifying_key.h
│ └── shuffle/
│ ├── BUILD.bazel
│ ├── argument.h
│ ├── evaluator.h
│ ├── opening_point_set.h
│ ├── pair.h
│ ├── prover.h
│ ├── prover_impl.h
│ ├── utils.h
│ ├── verifier.h
│ └── verifier_data.h
├── third_party/
│ ├── BUILD.bazel
│ ├── absl/
│ │ ├── BUILD.bazel
│ │ ├── add_missing_linkopts.patch
│ │ └── ignore-maybe-uninitialized-warning.patch
│ ├── boringssl/
│ │ ├── BUILD.bazel
│ │ ├── blake2b512.patch
│ │ └── chacha_core.patch
│ ├── circomlib/
│ │ ├── BUILD.bazel
│ │ └── workspace.bzl
│ ├── clang_toolchain/
│ │ ├── BUILD.bazel
│ │ ├── cc_configure_clang.bzl
│ │ └── download_clang.bzl
│ ├── cxx_rs/
│ │ ├── BUILD.bazel
│ │ └── add_more_args_to_cxx_bridge.patch
│ ├── doxygen/
│ │ ├── BUILD.bazel
│ │ ├── doxygen_archive.BUILD
│ │ └── workspace.bzl
│ ├── eigen3/
│ │ ├── BUILD.bazel
│ │ ├── Eigen/
│ │ │ ├── Cholesky
│ │ │ ├── Core
│ │ │ ├── Eigenvalues
│ │ │ ├── LU
│ │ │ ├── OrderingMethods
│ │ │ ├── QR
│ │ │ ├── SVD
│ │ │ ├── SparseCholesky
│ │ │ └── SparseCore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── add_sfinae_to_num_traits.patch
│ │ ├── add_sfinae_to_scalar_random_op.patch
│ │ ├── allow_field_inverse.patch
│ │ ├── eigen_archive.BUILD
│ │ ├── unsupported/
│ │ │ └── Eigen/
│ │ │ ├── CXX11/
│ │ │ │ ├── Tensor
│ │ │ │ └── ThreadPool
│ │ │ ├── MatrixFunctions
│ │ │ └── SpecialFunctions
│ │ ├── use_faster_constant_method.patch
│ │ └── workspace.bzl
│ ├── env/
│ │ ├── BUILD.bazel
│ │ ├── env.bzl.tpl
│ │ └── env_configure.bzl
│ ├── ffiasm/
│ │ ├── BUILD.bazel
│ │ ├── build_defs.bzl
│ │ ├── ffiasm.BUILD
│ │ └── workspace.bzl
│ ├── glog/
│ │ ├── BUILD.bazel
│ │ ├── enable_constexpr_check_op.patch
│ │ └── enable_elaborate_ostream_operator.patch
│ ├── gmp/
│ │ ├── BUILD.bazel
│ │ ├── gmp.BUILD
│ │ ├── gmp.BUILD.tpl
│ │ └── gmp_configure.bzl
│ ├── goldilocks/
│ │ ├── BUILD.bazel
│ │ ├── goldilocks.BUILD
│ │ └── workspace.bzl
│ ├── gpus/
│ │ ├── BUILD.bazel
│ │ ├── check_cuda_libs.py
│ │ ├── compress_find_cuda_config.py
│ │ ├── compress_find_rocm_config.py
│ │ ├── crosstool/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.rocm.tpl
│ │ │ ├── BUILD.tpl
│ │ │ ├── LICENSE
│ │ │ ├── cc_toolchain_config.bzl.tpl
│ │ │ ├── clang/
│ │ │ │ └── bin/
│ │ │ │ ├── crosstool_wrapper_driver_is_not_gcc.tpl
│ │ │ │ └── crosstool_wrapper_driver_rocm.tpl
│ │ │ ├── hipcc_cc_toolchain_config.bzl.tpl
│ │ │ └── windows/
│ │ │ └── msvc_wrapper_for_nvcc.py.tpl
│ │ ├── cuda/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.tpl
│ │ │ ├── BUILD.windows.tpl
│ │ │ ├── LICENSE
│ │ │ ├── build_defs.bzl.tpl
│ │ │ ├── cuda_config.h.tpl
│ │ │ └── cuda_config.py.tpl
│ │ ├── cuda_configure.bzl
│ │ ├── find_cuda_config.py
│ │ ├── find_cuda_config.py.gz.base64
│ │ ├── find_rocm_config.py
│ │ ├── find_rocm_config.py.gz.base64
│ │ ├── local_config_cuda.BUILD
│ │ ├── rocm/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.tpl
│ │ │ ├── build_defs.bzl.tpl
│ │ │ └── rocm_config.h.tpl
│ │ └── rocm_configure.bzl
│ ├── gtest/
│ │ ├── BUILD.bazel
│ │ ├── add_missing_linkopts.patch
│ │ └── print_with_to_string.patch
│ ├── hwloc/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.system
│ │ ├── hwloc.BUILD
│ │ ├── static-components.h
│ │ └── workspace.bzl
│ ├── icicle/
│ │ ├── BUILD.bazel
│ │ ├── build_defs.bzl
│ │ ├── change_sort_function.patch
│ │ ├── fix_first_digest_copy_bug.patch
│ │ ├── icicle.BUILD
│ │ ├── inlinize.patch
│ │ ├── pragma.patch
│ │ ├── remove_kernels_from_header.patch
│ │ ├── rename.patch
│ │ ├── separate_hash_config.patch
│ │ ├── separate_merkle_tree_config.patch
│ │ ├── separate_msm_config.patch
│ │ ├── separate_ntt_algorithm.patch
│ │ └── workspace.bzl
│ ├── json/
│ │ ├── BUILD.bazel
│ │ └── workspace.bzl
│ ├── matplotlibcpp17/
│ │ ├── BUILD.bazel
│ │ └── matplotlibcpp17.BUILD
│ ├── nasm/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.system
│ │ ├── config.h
│ │ ├── nasm.BUILD
│ │ └── workspace.bzl
│ ├── node_addon_api/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── install_node_addon_api.bzl
│ │ └── package.json
│ ├── omp/
│ │ ├── BUILD.bazel
│ │ ├── omp.BUILD
│ │ └── omp_configure.bzl
│ ├── pdqsort/
│ │ ├── BUILD.bazel
│ │ ├── pdqsort.BUILD
│ │ └── workspace.bzl
│ ├── perfetto/
│ │ └── perfetto.BUILD
│ ├── powersort/
│ │ ├── BUILD.bazel
│ │ ├── fix_multiple_definitions.patch
│ │ ├── fix_sign_compare_warning.patch
│ │ ├── fix_static_assertion.patch
│ │ ├── powersort.BUILD
│ │ ├── remove_binary_function.patch
│ │ └── workspace.bzl
│ ├── py/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── numpy/
│ │ │ ├── BUILD
│ │ │ └── LICENSE
│ │ └── python_configure.bzl
│ ├── rapidjson/
│ │ └── rapidjson.BUILD
│ ├── rapidsnark/
│ │ ├── BUILD.bazel
│ │ ├── nozk.patch
│ │ ├── rapidsnark.BUILD
│ │ └── workspace.bzl
│ ├── remote_config/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── common.bzl
│ │ └── remote_platform_configure.bzl
│ └── repo.bzl
└── vendors/
├── circom/
│ ├── .bazelrc
│ ├── .bazelversion
│ ├── .gitignore
│ ├── BUILD.bazel
│ ├── README.md
│ ├── WORKSPACE
│ ├── benchmark/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── bit_conversion.h
│ │ ├── circom_benchmark.cc
│ │ ├── rapidsnark_runner.h
│ │ ├── runner.h
│ │ ├── sha256_512.circom
│ │ ├── sha256_512.zkey
│ │ ├── sha256_512_verification_key.json
│ │ └── tachyon_runner.h
│ ├── build_defs.bzl
│ ├── circom.BUILD
│ ├── circomlib/
│ │ ├── CPPLINT.cfg
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── fr_element_conversion.h
│ │ │ ├── modulus.cc
│ │ │ ├── modulus.h
│ │ │ ├── modulus_unittest.cc
│ │ │ ├── sections.h
│ │ │ └── sections_unittest.cc
│ │ ├── circuit/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adder_circuit_unittest.cc
│ │ │ ├── adder_data.json
│ │ │ ├── circuit.h
│ │ │ ├── circuit_test.h
│ │ │ ├── multiplier_3_circuit_unittest.cc
│ │ │ ├── multiplier_3_data.json
│ │ │ ├── quadratic_arithmetic_program.h
│ │ │ └── witness_loader.h
│ │ ├── generated/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── bls12381/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── bn128/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── common/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── calcwit.cpp
│ │ │ │ ├── calcwit.cpp.diff
│ │ │ │ ├── calcwit.hpp
│ │ │ │ ├── calcwit.hpp.diff
│ │ │ │ ├── circom.hpp
│ │ │ │ └── circom.hpp.diff
│ │ │ ├── goldilocks/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── grumpkin/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── pallas/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── secq256r1/
│ │ │ │ └── BUILD.bazel
│ │ │ └── vesta/
│ │ │ └── BUILD.bazel
│ │ ├── json/
│ │ │ ├── BUILD.bazel
│ │ │ ├── groth16_proof.h
│ │ │ ├── groth16_proof_unittest.cc
│ │ │ ├── json.h
│ │ │ ├── json_converter_forward.h
│ │ │ ├── points.h
│ │ │ ├── prime_field.h
│ │ │ └── prime_field_unittest.cc
│ │ ├── r1cs/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constraint.h
│ │ │ ├── r1cs.cc
│ │ │ ├── r1cs.h
│ │ │ └── r1cs_unittest.cc
│ │ ├── wtns/
│ │ │ ├── BUILD.bazel
│ │ │ ├── multiplier_3.wtns
│ │ │ ├── wtns.cc
│ │ │ ├── wtns.h
│ │ │ └── wtns_unittest.cc
│ │ └── zkey/
│ │ ├── BUILD.bazel
│ │ ├── coefficient.h
│ │ ├── proving_key.h
│ │ ├── verifying_key.h
│ │ ├── zkey.cc
│ │ ├── zkey.h
│ │ └── zkey_unittest.cc
│ ├── examples/
│ │ ├── BUILD.bazel
│ │ ├── adder.circom
│ │ ├── adder.zkey
│ │ ├── compute_witness_multiplier_3.cc
│ │ ├── multiplier_2.circom
│ │ ├── multiplier_3.circom
│ │ ├── multiplier_3.zkey
│ │ └── multiplier_n.circom
│ └── prover_main.cc
├── plonky3/
│ ├── BUILD.bazel
│ ├── Cargo.toml
│ ├── include/
│ │ └── baby_bear_row_major_matrix.h
│ └── src/
│ ├── baby_bear.rs
│ ├── baby_bear_row_major_matrix.cc
│ ├── lib.rs
│ └── row_major_matrix.rs
├── scroll_halo2/
│ ├── BUILD.bazel
│ ├── Cargo.toml
│ ├── README.md
│ ├── include/
│ │ ├── bn254_blake2b_writer.h
│ │ ├── bn254_evals.h
│ │ ├── bn254_msm.h
│ │ ├── bn254_msm_gpu.h
│ │ ├── bn254_poly.h
│ │ ├── bn254_poseidon_writer.h
│ │ ├── bn254_prover.h
│ │ ├── bn254_proving_key.h
│ │ ├── bn254_rational_evals.h
│ │ ├── bn254_rational_evals_view.h
│ │ ├── bn254_sha256_writer.h
│ │ ├── bn254_snark_verifier_poseidon_writer.h
│ │ ├── cha_cha20_rng.h
│ │ └── xor_shift_rng.h
│ └── src/
│ ├── bn254.rs
│ ├── bn254_blake2b_writer.cc
│ ├── bn254_evals.cc
│ ├── bn254_msm.cc
│ ├── bn254_msm_gpu.cc
│ ├── bn254_poly.cc
│ ├── bn254_poseidon_writer.cc
│ ├── bn254_prover.cc
│ ├── bn254_proving_key.cc
│ ├── bn254_rational_evals.cc
│ ├── bn254_rational_evals_view.cc
│ ├── bn254_sha256_writer.cc
│ ├── bn254_snark_verifier_poseidon_writer.cc
│ ├── cha_cha20_rng.cc
│ ├── cha_cha20_rng.rs
│ ├── circuits/
│ │ ├── mod.rs
│ │ ├── shuffle_circuit.rs
│ │ ├── simple_circuit.rs
│ │ └── simple_lookup_circuit.rs
│ ├── consts.rs
│ ├── lib.rs
│ ├── msm.rs
│ ├── prover.rs
│ ├── proving_key.rs
│ ├── rng.rs
│ ├── sha.rs
│ ├── transcript.rs
│ ├── xor_shift_rng.cc
│ └── xor_shift_rng.rs
└── sp1/
├── BUILD.bazel
├── Cargo.toml
├── include/
│ ├── baby_bear_poseidon2_commitment_vec.h
│ ├── baby_bear_poseidon2_domains.h
│ ├── baby_bear_poseidon2_duplex_challenger.h
│ ├── baby_bear_poseidon2_fri_proof.h
│ ├── baby_bear_poseidon2_lde_vec.h
│ ├── baby_bear_poseidon2_opened_values.h
│ ├── baby_bear_poseidon2_opening_points.h
│ ├── baby_bear_poseidon2_opening_proof.h
│ ├── baby_bear_poseidon2_prover_data.h
│ ├── baby_bear_poseidon2_prover_data_vec.h
│ └── baby_bear_poseidon2_two_adic_fri_pcs.h
└── src/
├── baby_bear_poseidon2.rs
├── baby_bear_poseidon2_commitment_vec.cc
├── baby_bear_poseidon2_domains.cc
├── baby_bear_poseidon2_duplex_challenger.cc
├── baby_bear_poseidon2_fri_proof.cc
├── baby_bear_poseidon2_lde_vec.cc
├── baby_bear_poseidon2_opened_values.cc
├── baby_bear_poseidon2_opening_points.cc
├── baby_bear_poseidon2_opening_proof.cc
├── baby_bear_poseidon2_prover_data.cc
├── baby_bear_poseidon2_prover_data_vec.cc
├── baby_bear_poseidon2_two_adic_fri_pcs.cc
├── challenger.rs
├── lib.rs
├── two_adic_fri_pcs.rs
└── util.rs
================================================
FILE CONTENTS
================================================
================================================
FILE: .bazelignore
================================================
tachyon/node/test
tachyon/py/test
vendors/circom
================================================
FILE: .bazelrc
================================================
# Tachyon Bazel configuration file.
# This file tries to group and simply build option for Tachyon
#
# ----CONFIG OPTIONS----
#
# Other build options:
# dbg: Build with debug info
#
# Hardware support options:
# cuda: Build with NVIDIA GPU support (cuda).
# rocm: Build with AMD GPU support (rocm).
# numa: Enable numa using hwloc.
#
# Default build options. These are applied first and unconditionally.
# For projects which use Tachyon as part of a Bazel build process, putting
# nothing in a bazelrc will default to a monolithic build. The following line
# opts in to modular op registration support by default.
build -c opt
# Make Bazel print out all options from rc files.
build --announce_rc
# TODO(chokobole): Remove when `cc_shared_library` is enabled by default
build --experimental_cc_shared_library
# Enable platform specific configurations by default depending on host machine.
common --enable_platform_specific_config
build:macos_x86_64 --config=macos
build:macos_x86_64 --cpu=darwin_x86_64
build:macos_x86_64 --host_cpu=darwin_x86_64
build:macos_arm64 --config=macos
build:macos_arm64 --cpu=darwin_arm64
build:macos_arm64 --host_cpu=darwin_arm64
# This config refers to building sources with nvcc.
build:cuda --repo_env TACHYON_NEED_CUDA=1
build:cuda --crosstool_top=@local_config_cuda//crosstool:toolchain
build:cuda --@local_config_cuda//:enable_cuda
build:cuda --//:has_rtti
# This config refers to building sources with clang.
# NOTE(chokobole): I didn't test it, though!
build:cuda_clang --config=cuda
build:cuda_clang --repo_env TACHYON_CUDA_CLANG=1
build:cuda_clang --@local_config_cuda//:cuda_compiler=clang
# This config refers to building sources kernels.
build:rocm --crosstool_top=@local_config_rocm//crosstool:toolchain
build:rocm --define=using_rocm_hipcc=true
build:rocm --define=tensorflow_mkldnn_contraction_kernel=0
build:rocm --repo_env TACHYON_NEED_ROCM=1
# Options extracted from configure script
build:numa --//:has_numa
# Fastbuild config
build:fastbuild -c fastbuild
# Debug config
build:dbg -c dbg
# Opt config
build:opt -c opt
build:opt --//:has_openmp
build:maxopt -c opt
build:maxopt --//:has_openmp
build:maxopt --config=native
build:maxopt --copt=-flto
build:maxopt --linkopt=-flto
# By default, build Tachyon in C++ 17 mode.
build:linux --cxxopt=-std=c++17
build:linux --host_cxxopt=-std=c++17
build:macos --cxxopt=-std=c++17
build:macos --host_cxxopt=-std=c++17
build:macos --objccopt=-std=c++17
build:windows --cxxopt=/std:c++17
build:windows --host_cxxopt=/std:c++17
# Instruction set optimizations
# TODO(chokobole): Create a feature in toolchains for avx/avx2 to
# avoid having to define linux/win separately.
build:avx_linux --copt=-mavx
build:avx2_linux --copt=-mavx2
build:avx512_linux --copt=-mavx512f
build:avx_windows --copt=/arch=AVX
build:avx2_windows --copt=/arch=AVX2
build:avx512_windows --copt=/arch=AVX512
# Compile for the native architecture
# WARN(batzor): this will make the build non-portable
build:native --copt=-march=native
# Enable googletest build with absl.
# See https://github.com/google/googletest/blob/v1.13.0/BUILD.bazel#L67C1-L70
build --define absl=1
# FIXME(chokobole): If this option is enabled, gtest cannot be built with nvcc.
build:cuda --define absl=0
# gmp needs exception.
build --//:has_exception
test --test_tag_filters -benchmark,-manual,-cuda,-rust
# TODO(GideokKim): Currently, NTT operates assuming that GPU memory is always
# sufficient. Until the issue is resolved, add a tag to manually test in cuda
# tests.
test:cuda --test_tag_filters -benchmark,-manual,-cuda,-rust,-gpu_heavy_test
build:linux --build_tag_filters -objc,-cuda,-rust
build:macos --build_tag_filters -cuda,-rust,-doxygen
build:windows --build_tag_filters -objc,-cuda,-rust,-doxygen
# Config-specific options should come above this line.
# Load rc file with user-specific options.
try-import %workspace%/.bazelrc.user
================================================
FILE: .bazelversion
================================================
6.3.0
================================================
FILE: .clang-format
================================================
BasedOnStyle: Google
# This defaults to 'Auto'. Explicitly set it for a while, so that
# 'vector<vector<int> >' in existing files gets formatted to
# 'vector<vector<int>>'. ('Auto' means that clang-format will only use
# 'int>>' if the file already contains at least one such instance.)
Standard: Cpp11
# Specify the #include statement order. This implements the order mandated by
# the Google C++ Style Guide: related header, C headers, C++ headers, library
# headers, and finally the project headers.
#
# To obtain updated lists of system headers used in the below expressions, see:
# http://stackoverflow.com/questions/2027991/list-of-standard-header-files-in-c-and-c/2029106#2029106.
#
# Reference URL: https://github.com/RobotLocomotion/drake/blob/master/.clang-format
IncludeBlocks: Regroup
IncludeCategories:
# C system headers. The header_dependency_test.py contains a copy of this
# list; be sure to update that test anytime this list changes.
- Regex: '^[<"](aio|arm_neon|arpa/inet|assert|complex|cpio|ctype|curses|dirent|dlfcn|errno|fcntl|fenv|float|fmtmsg|fnmatch|ftw|glob|grp|iconv|immintrin|inttypes|iso646|langinfo|libgen|limits|locale|math|monetary|mqueue|ndbm|netdb|net/if|netinet/in|netinet/tcp|nl_types|poll|pthread|pwd|regex|sched|search|semaphore|setjmp|signal|spawn|stdalign|stdarg|stdatomic|stdbool|stddef|stdint|stdio|stdlib|stdnoreturn|string|strings|stropts|sys/ioctl|sys/ipc|syslog|sys/mman|sys/msg|sys/resource|sys/select|sys/sem|sys/shm|sys/socket|sys/stat|sys/statvfs|sys/time|sys/times|sys/types|sys/uio|sys/un|sys/utsname|sys/wait|tar|term|termios|tgmath|threads|time|trace|uchar|ulimit|uncntrl|unistd|utime|utmpx|wchar|wctype|wordexp)\.h[">]$'
Priority: 20
# C++ system headers (as of C++23). The header_dependency_test.py contains a
# copy of this list; be sure to update that test anytime this list changes.
- Regex: '^[<"](algorithm|any|array|atomic|barrier|bit|bitset|cassert|ccomplex|cctype|cerrno|cfenv|cfloat|charconv|chrono|cinttypes|ciso646|climits|clocale|cmath|codecvt|compare|complex|concepts|condition_variable|coroutine|csetjmp|csignal|cstdalign|cstdarg|cstdbool|cstddef|cstdint|cstdio|cstdlib|cstring|ctgmath|ctime|cuchar|cwchar|cwctype|deque|exception|execution|expected|filesystem|flat_map|flat_set|format|forward_list|fstream|functional|future|generator|initializer_list|iomanip|ios|iosfwd|iostream|istream|iterator|latch|limits|list|locale|map|mdspan|memory|memory_resource|mutex|new|numbers|numeric|optional|ostream|print|queue|random|ranges|ratio|regex|scoped_allocator|semaphore|set|shared_mutex|source_location|span|spanstream|sstream|stack|stacktrace|stdexcept|stdfloat|stop_token|streambuf|string|string_view|strstream|syncstream|system_error|thread|tuple|type_traits|typeindex|typeinfo|unordered_map|unordered_set|utility|valarray|variant|vector|version)[">]$'
Priority: 30
# Other libraries' h files (with angles).
- Regex: '^<'
Priority: 40
# Your project's h files.
- Regex: '^"(circomlib|tachyon|vendors)'
Priority: 50
# Other libraries' h files (with quotes).
- Regex: '^"'
Priority: 40
================================================
FILE: .dockerignore
================================================
# Created by https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node
# Edit at https://www.toptal.com/developers/gitignore?templates=c++,vim,bazel,linux,macos,python,visualstudiocode,node
### Bazel ###
# gitignore template for Bazel build system
# website: https://bazel.build/
# Ignore all bazel-* symlinks. There is no full list since this can change
# based on the name of the directory bazel is cloned into.
/bazel-*
# Directories for the Bazel IntelliJ plugin containing the generated
# IntelliJ project files and plugin configuration. Seperate directories are
# for the IntelliJ, Android Studio and CLion versions of the plugin.
/.ijwb/
/.aswb/
/.clwb/
### C++ ###
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### macOS Patch ###
# iCloud generated files
*.icloud
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line in if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
### Python Patch ###
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
poetry.toml
# ruff
.ruff_cache/
# LSP config files
pyrightconfig.json
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
# End of https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node
!/tachyon/build
!/third_party/env
/.bazelrc.user
docker
docs
/tachyon/node/test/bazel-*
/tachyon/py/test/bazel-*
================================================
FILE: .github/workflows/ci.yml
================================================
name: CI
on:
push:
branches: ["main"]
pull_request:
branches: ["main"]
jobs:
test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest-xlarge]
build_flag: [fastbuild, opt]
runs-on: ${{ matrix.os }}
steps:
- name: Free up space on linux
if: matrix.os == 'ubuntu-latest'
run: |
df -h
rm -rf /usr/share/dotnet/
rm -rf /opt/hostedtoolcache
df -h
- name: Free up space on macos
if: matrix.os == 'macos-latest-xlarge'
run: |
df -h
sudo rm -rf ~/Library/Caches/*
df -h
- name: Checkout code
uses: actions/checkout@v4
- name: Set up Bazel
uses: bazel-contrib/setup-bazel@0.8.5
with:
# Avoid downloading Bazel every time.
bazelisk-cache: true
# Share a single build cache between workflows.
disk-cache: ${{ matrix.os }}-${{ matrix.build_flag }}-build
# Share repository cache between workflows.
repository-cache: false
# Cache external repositories
external-cache: false
- name: Setup Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install numpy
run: python3 -m pip install numpy
- name: Install OpenMP on linux
if: matrix.os == 'ubuntu-latest' && matrix.build_flag == 'opt'
run: sudo apt-get install -y libomp-dev
- name: Install OpenMP on macos
if: matrix.os == 'macos-latest-xlarge' && matrix.build_flag == 'opt'
run: brew install libomp
- name: Add .bazelrc.user on linux
if: matrix.os == 'ubuntu-latest'
run: echo "build --action_env=CARGO=$HOME/.cargo/bin/cargo" >> .bazelrc.user &&
echo "build --@rules_rust//rust/toolchain/channel=nightly" >> .bazelrc.user
- name: Add .bazelrc.user on macos
if: matrix.os == 'macos-latest-xlarge'
run: brew install coreutils &&
export PATH="/opt/homebrew/opt/coreutils/libexec/gnubin:$PATH" &&
echo "build --action_env=CARGO=$HOME/.cargo/bin/cargo" >> .bazelrc.user &&
echo "build --@rules_rust//rust/toolchain/channel=nightly" >> .bazelrc.user
- name: Build
run: bazel build --config ${{ matrix.build_flag }} //...
- name: Test
# NOTE(chokobole): Test timeouts are overridden 1.5x of the default timeout due to timeout failure on GitHub Actions.
# See https://github.com/kroma-network/tachyon/actions/runs/9581476338/job/26418352737.
run: bazel test --config ${{ matrix.build_flag }} --test_output=errors --test_tag_filters -benchmark,-manual,-cuda //... --test_timeout=90,450,1350,5400
- name: Test Node Binding
run: |
cd tachyon/node/test
bazel test -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Py Binding
run: |
cd tachyon/py/test
bazel test -c ${{ matrix.build_flag}} --test_output=errors //...
- name: Test Circom
run: |
cd vendors/circom
CARGO_BAZEL_REPIN=true bazel test --config ${{ matrix.build_flag}} --test_output=errors //...
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Set up Git
run: |
git config --global user.name 'github-actions'
git config --global user.email 'github-actions@github.com'
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}
git fetch --all
- name: Setup Python for cpplint
uses: actions/setup-python@v5
with:
python-version: "3.10.12"
- name: Install cpplint
run: pip install cpplint
- name: Run cpplint
if: github.event_name == 'pull_request'
run: git diff --name-status HEAD origin/${{ github.base_ref }} | cut -f 2,3 | xargs cpplint --filter=-legal/copyright,-whitespace/line_length,-whitespace/indent_namespace,-build/namespaces,-runtime/references
- name: Run clang-format lint
uses: jidicula/clang-format-action@v4.11.0
with:
clang-format-version: "17"
check-path: "."
- name: Install Buildifier
run: |
wget https://github.com/bazelbuild/buildtools/releases/download/v6.4.0/buildifier-linux-amd64
chmod +x buildifier-linux-amd64
sudo mv buildifier-linux-amd64 /usr/local/bin/buildifier
- name: Run Buildifier
run: |
find . -iname "*.bazel" -o -iname "*.bzl" -o -name "WORKSPACE" -o -iname "*.BUILD" | xargs buildifier --lint=fix
find . -iname "*.bazel" -o -iname "*.bzl" -o -name "WORKSPACE" -o -iname "*.BUILD" | xargs buildifier --mode=check
git diff --exit-code
================================================
FILE: .github/workflows/delete_cache.yml
================================================
name: Delete Cache
on:
pull_request:
branches: ["closed"]
jobs:
if_merged:
if: github.event.pull_request.merged == true
runs-on: ubuntu-latest
steps:
- run: |
# get the ref key
ref_key="refs/pull/${{ github.event.pull_request.number }}/merge"
# delete cache
gh cache list --ref $ref_key --limit 100 | cut -f 1 | xargs -n1 gh cache delete
continue-on-error: true
================================================
FILE: .gitignore
================================================
# Created by https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node
# Edit at https://www.toptal.com/developers/gitignore?templates=c++,vim,bazel,linux,macos,python,visualstudiocode,node
### Bazel ###
# gitignore template for Bazel build system
# website: https://bazel.build/
# Ignore all bazel-* symlinks. There is no full list since this can change
# based on the name of the directory bazel is cloned into.
/bazel-*
# Directories for the Bazel IntelliJ plugin containing the generated
# IntelliJ project files and plugin configuration. Seperate directories are
# for the IntelliJ, Android Studio and CLion versions of the plugin.
/.ijwb/
/.aswb/
/.clwb/
### C++ ###
# Prerequisites
*.d
# Compiled Object files
*.slo
*.lo
*.o
*.obj
# Precompiled Headers
*.gch
*.pch
# Compiled Dynamic libraries
*.so
*.dylib
*.dll
# Fortran module files
*.mod
*.smod
# Compiled Static libraries
*.lai
*.la
*.a
*.lib
# Executables
*.exe
*.out
*.app
### Linux ###
*~
# temporary files which can be created if a process still has a handle open of a deleted file
.fuse_hidden*
# KDE directory preferences
.directory
# Linux trash folder which might appear on any partition or disk
.Trash-*
# .nfs files are created when an open file is removed but is still being accessed
.nfs*
### macOS ###
# General
.DS_Store
.AppleDouble
.LSOverride
# Icon must end with two \r
Icon
# Thumbnails
._*
# Files that might appear in the root of a volume
.DocumentRevisions-V100
.fseventsd
.Spotlight-V100
.TemporaryItems
.Trashes
.VolumeIcon.icns
.com.apple.timemachine.donotpresent
# Directories potentially created on remote AFP share
.AppleDB
.AppleDesktop
Network Trash Folder
Temporary Items
.apdisk
### macOS Patch ###
# iCloud generated files
*.icloud
### Node ###
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
.pnpm-debug.log*
# Diagnostic reports (https://nodejs.org/api/report.html)
report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Directory for instrumented libs generated by jscoverage/JSCover
lib-cov
# Coverage directory used by tools like Istanbul
coverage
*.lcov
# nyc test coverage
.nyc_output
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
.grunt
# Bower dependency directory (https://bower.io/)
bower_components
# node-waf configuration
.lock-wscript
# Compiled binary addons (https://nodejs.org/api/addons.html)
build/Release
# Dependency directories
node_modules/
jspm_packages/
# Snowpack dependency directory (https://snowpack.dev/)
web_modules/
# TypeScript cache
*.tsbuildinfo
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional stylelint cache
.stylelintcache
# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# Next.js build output
.next
out
# Nuxt.js build / generate output
.nuxt
dist
# Gatsby files
.cache/
# Comment in the public line if your project uses Gatsby and not Next.js
# https://nextjs.org/blog/next-9-1#public-directory-support
# public
# vuepress build output
.vuepress/dist
# vuepress v2.x temp and cache directory
.temp
# Docusaurus cache and generated files
.docusaurus
# Serverless directories
.serverless/
# FuseBox cache
.fusebox/
# DynamoDB Local files
.dynamodb/
# TernJS port file
.tern-port
# Stores VSCode versions used for testing VSCode extensions
.vscode-test
# yarn v2
.yarn/cache
.yarn/unplugged
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
### Node Patch ###
# Serverless Webpack directories
.webpack/
# Optional stylelint cache
# SvelteKit build / generate output
.svelte-kit
### Python ###
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
# Usually these files are written by a python script from a template
# before PyInstaller builds the exe, so as to inject date/other infos into it.
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.nox/
.coverage
.coverage.*
nosetests.xml
coverage.xml
*.cover
*.py,cover
.hypothesis/
.pytest_cache/
cover/
# Translations
*.mo
*.pot
# Django stuff:
local_settings.py
db.sqlite3
db.sqlite3-journal
# Flask stuff:
instance/
.webassets-cache
# Scrapy stuff:
.scrapy
# Sphinx documentation
docs/_build/
# PyBuilder
.pybuilder/
target/
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pyenv
# For a library or package, you might want to ignore these files since the code is
# intended to run in multiple environments; otherwise, check them in:
# .python-version
# pipenv
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
# However, in case of collaboration, if having platform-specific dependencies or dependencies
# having no cross-platform support, pipenv may install dependencies that don't work, or not
# install all needed dependencies.
#Pipfile.lock
# poetry
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
# This is especially recommended for binary packages to ensure reproducibility, and is more
# commonly ignored for libraries.
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
#poetry.lock
# pdm
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
#pdm.lock
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
# in version control.
# https://pdm.fming.dev/#use-with-ide
.pdm.toml
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
__pypackages__/
# Celery stuff
celerybeat-schedule
celerybeat.pid
# SageMath parsed files
*.sage.py
# Environments
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# Spyder project settings
.spyderproject
.spyproject
# Rope project settings
.ropeproject
# mkdocs documentation
/site
# mypy
.mypy_cache/
.dmypy.json
dmypy.json
# Pyre type checker
.pyre/
# pytype static type analyzer
.pytype/
# Cython debug symbols
cython_debug/
# PyCharm
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
### Python Patch ###
# Poetry local configuration file - https://python-poetry.org/docs/configuration/#local-configuration
poetry.toml
# ruff
.ruff_cache/
# LSP config files
pyrightconfig.json
### Vim ###
# Swap
[._]*.s[a-v][a-z]
!*.svg # comment out if you don't need vector files
[._]*.sw[a-p]
[._]s[a-rt-v][a-z]
[._]ss[a-gi-z]
[._]sw[a-p]
# Session
Session.vim
Sessionx.vim
# Temporary
.netrwhist
# Auto-generated tag files
tags
# Persistent undo
[._]*.un~
### VisualStudioCode ###
.vscode/*
!.vscode/settings.json
!.vscode/tasks.json
!.vscode/launch.json
!.vscode/extensions.json
!.vscode/*.code-snippets
# Local History for Visual Studio Code
.history/
# Built Visual Studio Code Extensions
*.vsix
### VisualStudioCode Patch ###
# Ignore all local history of files
.history
.ionide
# End of https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node
!/tachyon/build
!/third_party/env
/.bazelrc.user
/tachyon/node/test/bazel-*
/tachyon/py/test/bazel-*
================================================
FILE: .gitmessage
================================================
<type>(<scope>): <summary>
# ──────────────────────────────── 80 chars ───────────────────────────────────┤
<Describe the motivation behind this change - explain WHY you are making this
change. Wrap all lines at 80 characters.>
See #<reference>
Resolves: #<issue number>
Related: #<issue number>
# ──────────────────────────────── 80 chars ───────────────────────────────────┤
# Example Commit Messages
# =======================
# ─── Example: Simple refactor ────────────────────────────────────────────────┤
# refac: remove system dictator
#
# Since the owner of all contracts in this system is ProxyAdmin, SystemDictator
# is no longer necessary. Additionally, the deployment scripts have been
# modified to update the proxy when deploying implementation contracts.
#
# Resolves: #36332
# ─────────────────────────────────────────────────────────────────────────────┤
# ─── Example: Simple docs change ─────────────────────────────────────────────┤
# docs: update commit message format
# ─────────────────────────────────────────────────────────────────────────────┤
# ─── Example: A bug fix ──────────────────────────────────────────────────────┤
# fix(trie): use hash once on account to compute path
#
# Path must be computed using poseidon hash once. But, by mistake, it
# was computed using twice.
# ─────────────────────────────────────────────────────────────────────────────┤
# ─── Example: A feature ──────────────────────────────────────────────────────┤
# feat!: use keccak256 for codehash
#
# BREAKING CHANGE: Previously, codehash was calculated using poseidon.
# So the state root since this commit will be produced differently.
#
# See belows for details.
#
# - https://eips.ethereum.org/EIPS/eip-1052
# - https://github.com/scroll-tech/go-ethereum/pull/188
# ─────────────────────────────────────────────────────────────────────────────┤
# Commit Message Format
# =====================
#
# We have very precise rules over how our Git commit messages must be formatted.
# This format leads to easier to read commit history.
#
# Each commit message consists of a header, a body, and a footer.
#
# <header>
# <BLANK LINE>
# <body>
# <BLANK LINE>
# <footer>
#
# The header is mandatory.
#
# The body is mandatory for all commits except for those of type “docs”. When
# the body is present it must be at least 20 characters long.
#
# The footer is optional.
#
# Any line of the commit message cannot be longer than 80 characters.
#
# Commit Message Header
# ---------------------
#
# ```
# <type>(<scope>): <short summary>
# │ │ │
# │ │ └─⫸ Summary in present tense. Not capitalized.
# │ │ No period at the end.
# │ │
# │ └─⫸ Commit Scope: base|benchmark|build|c(subscope)|cc(subscope)|
# │ circom|crypto|device|examples|halo2|math|
# │ node(subscope)|plonky3|rs(subscope)|sp1|zk
# │
# └─⫸ Commit Type: build|chore|ci|docs|feat|fix|perf|refac|style|test
# ```
#
# Commit Message Body
# -------------------
#
# Just as in the summary, use the imperative, present tense: “fix” not “fixed”
# nor “fixes”.
#
# Explain the motivation for the change in the commit message body. This commit
# message should explain why you are making the change. You can include a
# comparison of the previous behavior with the new behavior in order to
# illustrate the impact of the change.
#
# Commit Message Footer
# ---------------------
#
# The footer can contain information about usage and is also the place to
# reference GitHub issues, yona links, and other PRs that this commit closes or
# is related to.
#
# ```
# USAGE: <usage summary>
# <BLANK LINE>
# <usage description + instruction example>
# <BLANK LINE>
# See #<reference>
# <BLANK LINE>
# Resolves|Related #<issue number>
# ```
#
# USAGE section should start with the phrase “USAGE: ” followed by a summary of
# the usage summary, a blank line, and a detailed description of the usage.
================================================
FILE: BUILD.bazel
================================================
load("@bazel_skylib//rules:common_settings.bzl", "bool_flag")
load("@com_github_bazelbuild_buildtools//buildifier:def.bzl", "buildifier")
package(default_visibility = ["//visibility:public"])
bool_flag(
name = "shared_object",
build_setting_default = False,
)
bool_flag(
name = "c_shared_object",
build_setting_default = False,
)
bool_flag(
name = "cc_shared_object",
build_setting_default = False,
)
bool_flag(
name = "has_exception",
build_setting_default = False,
)
bool_flag(
name = "has_rtti",
build_setting_default = False,
)
bool_flag(
name = "has_openmp",
build_setting_default = False,
)
bool_flag(
name = "has_intel_openmp",
build_setting_default = False,
)
bool_flag(
name = "has_avx512",
build_setting_default = False,
)
bool_flag(
name = "has_matplotlib",
build_setting_default = False,
)
bool_flag(
name = "has_numa",
build_setting_default = False,
)
bool_flag(
name = "has_asm_prime_field",
build_setting_default = True,
)
bool_flag(
name = "py_binding",
build_setting_default = False,
)
bool_flag(
name = "node_binding",
build_setting_default = False,
)
config_setting(
name = "linux_x86_64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:x86_64",
],
)
config_setting(
name = "linux_aarch64",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:aarch64",
],
)
config_setting(
name = "linux_ppc",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:ppc",
],
)
config_setting(
name = "linux_s390x",
constraint_values = [
"@platforms//os:linux",
"@platforms//cpu:s390x",
],
)
config_setting(
name = "macos_x86_64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:x86_64",
],
)
config_setting(
name = "macos_aarch64",
constraint_values = [
"@platforms//os:macos",
"@platforms//cpu:aarch64",
],
)
config_setting(
name = "optimized",
values = {"compilation_mode": "opt"},
)
config_setting(
name = "tachyon_shared_object",
flag_values = {":shared_object": "true"},
)
config_setting(
name = "tachyon_c_shared_object",
flag_values = {":c_shared_object": "true"},
)
config_setting(
name = "tachyon_cc_shared_object",
flag_values = {":cc_shared_object": "true"},
)
config_setting(
name = "tachyon_has_exception",
flag_values = {":has_exception": "true"},
)
config_setting(
name = "tachyon_has_rtti",
flag_values = {":has_rtti": "true"},
)
config_setting(
name = "tachyon_has_openmp",
flag_values = {":has_openmp": "true"},
)
config_setting(
name = "tachyon_has_intel_openmp",
flag_values = {
":has_openmp": "true",
":has_intel_openmp": "true",
},
)
config_setting(
name = "tachyon_has_openmp_on_macos",
constraint_values = [
"@platforms//os:macos",
],
flag_values = {
":has_openmp": "true",
},
)
config_setting(
name = "tachyon_has_avx512",
constraint_values = ["@platforms//cpu:x86_64"],
flag_values = {":has_avx512": "true"},
)
config_setting(
name = "tachyon_has_matplotlib",
flag_values = {":has_matplotlib": "true"},
)
config_setting(
name = "tachyon_has_numa",
flag_values = {"has_numa": "true"},
)
config_setting(
name = "tachyon_has_asm_prime_field",
flag_values = {"has_asm_prime_field": "true"},
)
config_setting(
name = "tachyon_py_binding",
flag_values = {"py_binding": "true"},
)
config_setting(
name = "tachyon_node_binding",
flag_values = {"node_binding": "true"},
)
buildifier(
name = "buildifier",
)
================================================
FILE: Cargo.toml
================================================
[workspace]
members = [
"benchmark/msm/arkworks",
"benchmark/msm/bellman",
"benchmark/msm/halo2",
"benchmark/fft/arkworks",
"benchmark/fft/bellman",
"benchmark/fft/halo2",
"benchmark/fft_batch/plonky3",
"benchmark/fri/plonky3",
"benchmark/poseidon/arkworks",
"benchmark/poseidon2/horizen",
"benchmark/poseidon2/plonky3",
"tachyon/rs",
"vendors/scroll_halo2",
"vendors/plonky3",
"vendors/sp1",
]
================================================
FILE: LICENSE
================================================
(The MIT License)
Copyright 2023 Lightscale Inc.
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: LICENSE-APACHE.EF
================================================
APACHE LICENSE
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
Definitions.
“License” shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
You must give any other recipients of the Work or Derivative Works a copy of this License; and
You must cause any modified files to carry prominent notices stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License.
You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets "[ ]" replaced with your own identifying information. (Don't include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same "printed page" as the copyright notice for easier identification within third-party archives.
Copyright 2022 Ethereum Foundation
Licensed under the Apache License, Version 2.0 (the "License");
You may not use this file except in compliance with the License.
You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
================================================
FILE: LICENSE-APACHE.arkworks-rs
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2022 arkworks contributors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE-APACHE.era-bellman-cuda
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
================================================
FILE: LICENSE-APACHE.halo2
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE-APACHE.plonky3
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE-APACHE.scroll
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE-APACHE.stwo
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2024 StarkWare Industries Ltd.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE-MIT.EF
================================================
MIT LICENSE
Copyright 2022 Ethereum Foundation
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
================================================
FILE: LICENSE-MIT.arkworks-rs
================================================
The MIT License (MIT)
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: LICENSE-MIT.era-bellman-cuda
================================================
MIT License
Copyright (c) 2022 Matter Labs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: LICENSE-MIT.halo2
================================================
The MIT License (MIT)
Copyright (c) 2020-2022 The Electric Coin Company
Copyright (c) 2022 The Halo 2 developers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: LICENSE-MIT.plonky3
================================================
The MIT License (MIT)
Copyright (c) 2022 The Plonky3 Authors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
================================================
FILE: LICENSE-MIT.scroll
================================================
MIT License
Copyright (c) 2022-2024 Scroll
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
================================================
FILE: LICENSE.chromium
================================================
// Copyright 2015 The Chromium Authors
//
// Redistribution and use in source and binary forms, with or without
// modification, are permitted provided that the following conditions are
// met:
//
// * Redistributions of source code must retain the above copyright
// notice, this list of conditions and the following disclaimer.
// * Redistributions in binary form must reproduce the above
// copyright notice, this list of conditions and the following disclaimer
// in the documentation and/or other materials provided with the
// distribution.
// * Neither the name of Google LLC nor the names of its
// contributors may be used to endorse or promote products derived from
// this software without specific prior written permission.
//
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
================================================
FILE: LICENSE.lambdaworks
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.****
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: LICENSE.tensorflow
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
## Some of TensorFlow's code is derived from Caffe, which is subject to the following copyright notice:
COPYRIGHT
All contributions by the University of California:
Copyright (c) 2014, The Regents of the University of California (Regents)
All rights reserved.
All other contributions:
Copyright (c) 2014, the respective contributors
All rights reserved.
Caffe uses a shared copyright model: each contributor holds copyright over
their contributions to Caffe. The project versioning records all such
contribution and copyright details. If a contributor wants to further mark
their specific copyright on a particular contribution, they should indicate
their copyright solely in the commit message of the change when it is
committed.
LICENSE
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
CONTRIBUTION AGREEMENT
By contributing to the BVLC/caffe repository through pull-request, comment,
or otherwise, the contributor releases their content to the
license and copyright terms herein.
================================================
FILE: LICENSE.ulvetanna
================================================
Apache License
Version 2.0, January 2004
http://www.apache.org/licenses/
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
1. Definitions.
"License" shall mean the terms and conditions for use, reproduction,
and distribution as defined by Sections 1 through 9 of this document.
"Licensor" shall mean the copyright owner or entity authorized by
the copyright owner that is granting the License.
"Legal Entity" shall mean the union of the acting entity and all
other entities that control, are controlled by, or are under common
control with that entity. For the purposes of this definition,
"control" means (i) the power, direct or indirect, to cause the
direction or management of such entity, whether by contract or
otherwise, or (ii) ownership of fifty percent (50%) or more of the
outstanding shares, or (iii) beneficial ownership of such entity.
"You" (or "Your") shall mean an individual or Legal Entity
exercising permissions granted by this License.
"Source" form shall mean the preferred form for making modifications,
including but not limited to software source code, documentation
source, and configuration files.
"Object" form shall mean any form resulting from mechanical
transformation or translation of a Source form, including but
not limited to compiled object code, generated documentation,
and conversions to other media types.
"Work" shall mean the work of authorship, whether in Source or
Object form, made available under the License, as indicated by a
copyright notice that is included in or attached to the work
(an example is provided in the Appendix below).
"Derivative Works" shall mean any work, whether in Source or Object
form, that is based on (or derived from) the Work and for which the
editorial revisions, annotations, elaborations, or other modifications
represent, as a whole, an original work of authorship. For the purposes
of this License, Derivative Works shall not include works that remain
separable from, or merely link (or bind by name) to the interfaces of,
the Work and Derivative Works thereof.
"Contribution" shall mean any work of authorship, including
the original version of the Work and any modifications or additions
to that Work or Derivative Works thereof, that is intentionally
submitted to Licensor for inclusion in the Work by the copyright owner
or by an individual or Legal Entity authorized to submit on behalf of
the copyright owner. For the purposes of this definition, "submitted"
means any form of electronic, verbal, or written communication sent
to the Licensor or its representatives, including but not limited to
communication on electronic mailing lists, source code control systems,
and issue tracking systems that are managed by, or on behalf of, the
Licensor for the purpose of discussing and improving the Work, but
excluding communication that is conspicuously marked or otherwise
designated in writing by the copyright owner as "Not a Contribution."
"Contributor" shall mean Licensor and any individual or Legal Entity
on behalf of whom a Contribution has been received by Licensor and
subsequently incorporated within the Work.
2. Grant of Copyright License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
copyright license to reproduce, prepare Derivative Works of,
publicly display, publicly perform, sublicense, and distribute the
Work and such Derivative Works in Source or Object form.
3. Grant of Patent License. Subject to the terms and conditions of
this License, each Contributor hereby grants to You a perpetual,
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
(except as stated in this section) patent license to make, have made,
use, offer to sell, sell, import, and otherwise transfer the Work,
where such license applies only to those patent claims licensable
by such Contributor that are necessarily infringed by their
Contribution(s) alone or by combination of their Contribution(s)
with the Work to which such Contribution(s) was submitted. If You
institute patent litigation against any entity (including a
cross-claim or counterclaim in a lawsuit) alleging that the Work
or a Contribution incorporated within the Work constitutes direct
or contributory patent infringement, then any patent licenses
granted to You under this License for that Work shall terminate
as of the date such litigation is filed.
4. Redistribution. You may reproduce and distribute copies of the
Work or Derivative Works thereof in any medium, with or without
modifications, and in Source or Object form, provided that You
meet the following conditions:
(a) You must give any other recipients of the Work or
Derivative Works a copy of this License; and
(b) You must cause any modified files to carry prominent notices
stating that You changed the files; and
(c) You must retain, in the Source form of any Derivative Works
that You distribute, all copyright, patent, trademark, and
attribution notices from the Source form of the Work,
excluding those notices that do not pertain to any part of
the Derivative Works; and
(d) If the Work includes a "NOTICE" text file as part of its
distribution, then any Derivative Works that You distribute must
include a readable copy of the attribution notices contained
within such NOTICE file, excluding those notices that do not
pertain to any part of the Derivative Works, in at least one
of the following places: within a NOTICE text file distributed
as part of the Derivative Works; within the Source form or
documentation, if provided along with the Derivative Works; or,
within a display generated by the Derivative Works, if and
wherever such third-party notices normally appear. The contents
of the NOTICE file are for informational purposes only and
do not modify the License. You may add Your own attribution
notices within Derivative Works that You distribute, alongside
or as an addendum to the NOTICE text from the Work, provided
that such additional attribution notices cannot be construed
as modifying the License.
You may add Your own copyright statement to Your modifications and
may provide additional or different license terms and conditions
for use, reproduction, or distribution of Your modifications, or
for any such Derivative Works as a whole, provided Your use,
reproduction, and distribution of the Work otherwise complies with
the conditions stated in this License.
5. Submission of Contributions. Unless You explicitly state otherwise,
any Contribution intentionally submitted for inclusion in the Work
by You to the Licensor shall be under the terms and conditions of
this License, without any additional terms or conditions.
Notwithstanding the above, nothing herein shall supersede or modify
the terms of any separate license agreement you may have executed
with Licensor regarding such Contributions.
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor,
except as required for reasonable and customary use in describing the
origin of the Work and reproducing the content of the NOTICE file.
7. Disclaimer of Warranty. Unless required by applicable law or
agreed to in writing, Licensor provides the Work (and each
Contributor provides its Contributions) on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
implied, including, without limitation, any warranties or conditions
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
PARTICULAR PURPOSE. You are solely responsible for determining the
appropriateness of using or redistributing the Work and assume any
risks associated with Your exercise of permissions under this License.
8. Limitation of Liability. In no event and under no legal theory,
whether in tort (including negligence), contract, or otherwise,
unless required by applicable law (such as deliberate and grossly
negligent acts) or agreed to in writing, shall any Contributor be
liable to You for damages, including any direct, indirect, special,
incidental, or consequential damages of any character arising as a
result of this License or out of the use or inability to use the
Work (including but not limited to damages for loss of goodwill,
work stoppage, computer failure or malfunction, or any and all
other commercial damages or losses), even if such Contributor
has been advised of the possibility of such damages.
9. Accepting Warranty or Additional Liability. While redistributing
the Work or Derivative Works thereof, You may choose to offer,
and charge a fee for, acceptance of support, warranty, indemnity,
or other liability obligations and/or rights consistent with this
License. However, in accepting such obligations, You may act only
on Your own behalf and on Your sole responsibility, not on behalf
of any other Contributor, and only if You agree to indemnify,
defend, and hold each Contributor harmless for any liability
incurred by, or claims asserted against, such Contributor by reason
of your accepting any such warranty or additional liability.
END OF TERMS AND CONDITIONS
APPENDIX: How to apply the Apache License to your work.
To apply the Apache License to your work, attach the following
boilerplate notice, with the fields enclosed by brackets "[]"
replaced with your own identifying information. (Don't include
the brackets!) The text should be enclosed in the appropriate
comment syntax for the file format. We also recommend that a
file or class name and description of purpose be included on the
same "printed page" as the copyright notice for easier
identification within third-party archives.
Copyright 2023 Ulvetanna Inc.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
================================================
FILE: README.md
================================================
<div align="center">
<br /><br /><br />
<img src="tachyon_logo_horizontal.png" style="width: 50%;">
<br /><br /><br />
</div>
## Overview
**Tachyon** is a Modular ZK Backend, powered by GPU.
## Join Our Developer Community
We're thrilled to have you become a part of our community!
If your passion for Tachyon matches ours, we extend a warm invitation for you to join our developer community on [Telegram](https://t.me/zktachyon). Ask questions, share insights, or simply stay informed on Tachyon's newest updates with other developers and the original team through our Telegram group. We hope to see you there!
Thank you for your keen interest in contributing to Tachyon! ✨
## Design Goals
1. General Purpose: A versatile ZK library empowers developers to implement any proving scheme with minimal effort, often enhancing developer productivity. To create a general-purpose backend, aligning the code structure as closely as possible with the algebraic structure is paramount.
2. Easy to Use: Achieving widespread adoption is essential for the success of any product. Consequently, one of the key focal points of the Tachyon project is to include offering packages for various programming languages and runtimes.
3. Blazing Fast: Tachyon's foremost requirement is speed, and not just any speed, but blazing speed! This entails Tachyon delivering exceptional performance on both CPU and GPU platforms.
4. GPU Interoperability: Tachyon's code is designed to be compatible with both CPU and GPU in the majority of scenarios.
## List of Features
Symbol Definitions:
- :heavy_check_mark: Currently supported.
- 🏗️ Partially implemented or is under active construction.
- :x: Not currently supported.
### Finite Fields
| | CPU | GPU |
| ------------ | ------------------ | ------------------ |
| BabyBear | :heavy_check_mark: | :heavy_check_mark: |
| BinaryFields | :heavy_check_mark: | :heavy_check_mark: |
| Goldilocks | :heavy_check_mark: | :heavy_check_mark: |
| Mersenne-31 | :heavy_check_mark: | :heavy_check_mark: |
| KoalaBear | :heavy_check_mark: | :heavy_check_mark: |
### Elliptic Curves
| | CPU | GPU |
| --------- | ------------------ | ------------------ |
| BN254 | :heavy_check_mark: | :heavy_check_mark: |
| BLS12-381 | :heavy_check_mark: | :heavy_check_mark: |
| Secp256k1 | :heavy_check_mark: | :heavy_check_mark: |
| Pallas | :heavy_check_mark: | :heavy_check_mark: |
| Vesta | :heavy_check_mark: | :heavy_check_mark: |
### Commitment Schemes
| | CPU | GPU |
| -------- | ------------------ | ------------------ |
| GWC | :heavy_check_mark: | :heavy_check_mark: |
| SHPlonk | :heavy_check_mark: | :heavy_check_mark: |
| FRI | :heavy_check_mark: | :x: |
| Pedersen | :heavy_check_mark: | :heavy_check_mark: |
### Hashes
| | CPU | GPU |
| --------- | ------------------ | --- |
| Poseidon | :heavy_check_mark: | :x: |
| Poseidon2 | :heavy_check_mark: | :x: |
### FFT
| | CPU | GPU |
| ------------- | ------------------ | ------------------ |
| Radix2FFT | :heavy_check_mark: | :heavy_check_mark: |
| MixedRadixFFT | :heavy_check_mark: | :heavy_check_mark: |
### Lookups
| | CPU | GPU |
| ----- | ------------------ | --- |
| Halo2 | :heavy_check_mark: | :x: |
### SNARKs
| | CPU | GPU |
| ------- | ------------------ | ------------------ |
| Groth16 | :heavy_check_mark: | :heavy_check_mark: |
| Halo2 | :heavy_check_mark: | :x: |
### Frontends
| | CPU | GPU |
| --------------- | ------------------ | ------------------ |
| Circom(groth16) | :heavy_check_mark: | :heavy_check_mark: |
| Halo2 | :heavy_check_mark: | :x: |
## Roadmap
- [x] 2024Q1 - Enable producing the [zkEVM](https://github.com/kroma-network/zkevm-circuits) proof.
- [x] 2024Q2 - Replace Halo2 with Tachyon in [Kroma](https://kroma.network/) mainnet.
- [ ] 2024Q3a - Implement and optimize [Plonky3](https://github.com/Plonky3/Plonky3) in Tachyon.
- [ ] 2024Q3b - Replace zkEVM with [SP1](https://github.com/succinctlabs/sp1) zkVM in [Kroma](https://kroma.network/) mainnet.
## Prerequisites
### Bazel
Please follow the instructions [here](https://bazel.build/install).
### Ubuntu
```shell
sudo apt install libgmp-dev libomp-dev
```
### Macos
```shell
brew install gmp libomp
```
## Getting started
### Build
```shell
bazel build //...
```
### Test
```shell
bazel test //...
```
Check [How To Build](/docs/how_to_use/how_to_build.md) for more information.
================================================
FILE: WORKSPACE
================================================
workspace(name = "kroma_network_tachyon")
load("//bazel:tachyon_deps.bzl", "tachyon_deps")
tachyon_deps()
# Start of buildifier
load("//bazel:buildifier_deps.bzl", "buildifier_deps")
buildifier_deps()
load("@io_bazel_rules_go//go:deps.bzl", "go_register_toolchains", "go_rules_dependencies")
go_rules_dependencies()
go_register_toolchains(version = "1.20.3")
load("@bazel_gazelle//:deps.bzl", "gazelle_dependencies")
gazelle_dependencies()
load("@com_google_protobuf//:protobuf_deps.bzl", "protobuf_deps")
protobuf_deps()
# End of buildifier
# Start of rules_rust
load("@rules_rust//rust:repositories.bzl", "rules_rust_dependencies", "rust_register_toolchains")
rules_rust_dependencies()
rust_register_toolchains(
edition = "2021",
versions = ["nightly/2024-04-17"],
)
load("@rules_rust//crate_universe:repositories.bzl", "crate_universe_dependencies")
crate_universe_dependencies()
load("@rules_rust//crate_universe:defs.bzl", "crate", "crates_repository")
crates_repository(
name = "crate_index",
cargo_lockfile = "//:Cargo.lock",
lockfile = "//:Cargo.Bazel.lock",
manifests = [
"//:Cargo.toml",
"//benchmark/msm/arkworks:Cargo.toml",
"//benchmark/msm/bellman:Cargo.toml",
"//benchmark/msm/halo2:Cargo.toml",
"//benchmark/fft/arkworks:Cargo.toml",
"//benchmark/fft/bellman:Cargo.toml",
"//benchmark/fft/halo2:Cargo.toml",
"//benchmark/fft_batch/plonky3:Cargo.toml",
"//benchmark/fri/plonky3:Cargo.toml",
"//benchmark/poseidon/arkworks:Cargo.toml",
"//benchmark/poseidon2/horizen:Cargo.toml",
"//benchmark/poseidon2/plonky3:Cargo.toml",
"//tachyon/rs:Cargo.toml",
"//vendors/plonky3:Cargo.toml",
"//vendors/scroll_halo2:Cargo.toml",
"//vendors/sp1:Cargo.toml",
],
packages = {
"hashbrown": crate.spec(
features = ["raw"],
version = "0.12.3",
),
"deranged": crate.spec(
features = [
"powerfmt",
"std",
],
version = "0.3.9",
),
},
rust_version = "nightly/2024-04-17",
)
load(
"@crate_index//:defs.bzl",
tachyon_crate_repositories = "crate_repositories",
)
tachyon_crate_repositories()
# End of rules_rust
load("@cxx.rs//third-party/bazel:defs.bzl", cxx_create_repositories = "crate_repositories")
cxx_create_repositories()
load("//bazel:pybind11_deps.bzl", "pybind11_deps")
pybind11_deps()
load("@rules_pkg//:deps.bzl", "rules_pkg_dependencies")
rules_pkg_dependencies()
# Start of rules_js
load("//bazel:js_deps.bzl", "js_deps")
js_deps()
load("@aspect_rules_js//js:repositories.bzl", "rules_js_dependencies")
rules_js_dependencies()
load("@aspect_bazel_lib//lib:repositories.bzl", "aspect_bazel_lib_dependencies")
aspect_bazel_lib_dependencies()
# Fetch and register node, if you haven't already
load("@rules_nodejs//nodejs:repositories.bzl", "DEFAULT_NODE_VERSION", "nodejs_register_toolchains")
nodejs_register_toolchains(
name = "nodejs",
node_version = DEFAULT_NODE_VERSION,
)
load("@aspect_rules_js//npm:repositories.bzl", "npm_translate_lock")
npm_translate_lock(
name = "npm",
data = ["@iden3_ffiasm//:package.json"],
npm_package_lock = "@iden3_ffiasm//:package-lock.json",
pnpm_lock = "@iden3_ffiasm//:pnpm-lock.yaml",
update_pnpm_lock = True,
verify_node_modules_ignored = "@iden3_ffiasm//:.bazelignore",
)
load("@npm//:repositories.bzl", "npm_repositories")
npm_repositories()
# End of rules_js
================================================
FILE: bazel/BUILD.bazel
================================================
================================================
FILE: bazel/buildifier_deps.bzl
================================================
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
# See https://github.com/bazelbuild/buildtools/blob/master/buildifier/README.md
def buildifier_deps():
if not native.existing_rule("bazel_gazelle"):
http_archive(
name = "bazel_gazelle",
sha256 = "727f3e4edd96ea20c29e8c2ca9e8d2af724d8c7778e7923a854b2c80952bc405",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-gazelle/releases/download/v0.30.0/bazel-gazelle-v0.30.0.tar.gz",
"https://github.com/bazelbuild/bazel-gazelle/releases/download/v0.30.0/bazel-gazelle-v0.30.0.tar.gz",
],
)
if not native.existing_rule("com_github_bazelbuild_buildtools"):
http_archive(
name = "com_github_bazelbuild_buildtools",
sha256 = "05c3c3602d25aeda1e9dbc91d3b66e624c1f9fdadf273e5480b489e744ca7269",
strip_prefix = "buildtools-6.4.0",
urls = [
"https://github.com/bazelbuild/buildtools/archive/refs/tags/v6.4.0.tar.gz",
],
)
if not native.existing_rule("com_google_protobuf"):
http_archive(
name = "com_google_protobuf",
sha256 = "3bd7828aa5af4b13b99c191e8b1e884ebfa9ad371b0ce264605d347f135d2568",
strip_prefix = "protobuf-3.19.4",
urls = [
"https://github.com/protocolbuffers/protobuf/archive/v3.19.4.tar.gz",
],
)
if not native.existing_rule("io_bazel_rules_go"):
http_archive(
name = "io_bazel_rules_go",
sha256 = "6dc2da7ab4cf5d7bfc7c949776b1b7c733f05e56edc4bcd9022bb249d2e2a996",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
"https://github.com/bazelbuild/rules_go/releases/download/v0.39.1/rules_go-v0.39.1.zip",
],
)
================================================
FILE: bazel/js_deps.bzl
================================================
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def js_deps():
if not native.existing_rule("aspect_bazel_lib"):
http_archive(
name = "aspect_bazel_lib",
sha256 = "262e3d6693cdc16dd43880785cdae13c64e6a3f63f75b1993c716295093d117f",
strip_prefix = "bazel-lib-1.38.1",
url = "https://github.com/aspect-build/bazel-lib/releases/download/v1.38.1/bazel-lib-v1.38.1.tar.gz",
)
if not native.existing_rule("aspect_rules_js"):
http_archive(
name = "aspect_rules_js",
sha256 = "d9ceb89e97bb5ad53b278148e01a77a3e9100db272ce4ebdcd59889d26b9076e",
strip_prefix = "rules_js-1.34.0",
url = "https://github.com/aspect-build/rules_js/releases/download/v1.34.0/rules_js-v1.34.0.tar.gz",
)
if not native.existing_rule("rules_nodejs"):
http_archive(
name = "rules_nodejs",
sha256 = "a50986c7d2f2dc43a5b9b81a6245fd89bdc4866f1d5e316d9cef2782dd859292",
strip_prefix = "rules_nodejs-6.0.5",
url = "https://github.com/bazelbuild/rules_nodejs/releases/download/v6.0.5/rules_nodejs-v6.0.5.tar.gz",
)
================================================
FILE: bazel/pybind11_deps.bzl
================================================
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
def pybind11_deps():
if not native.existing_rule("pybind11_bazel"):
http_archive(
name = "pybind11_bazel",
strip_prefix = "pybind11_bazel-b162c7c88a253e3f6b673df0c621aca27596ce6b",
urls = ["https://github.com/pybind/pybind11_bazel/archive/b162c7c88a253e3f6b673df0c621aca27596ce6b.zip"],
)
if not native.existing_rule("pybind11"):
http_archive(
name = "pybind11",
strip_prefix = "pybind11-2.11.1",
urls = ["https://github.com/pybind/pybind11/archive/v2.11.1.tar.gz"],
build_file = "@pybind11_bazel//:pybind11.BUILD",
)
================================================
FILE: bazel/tachyon.bzl
================================================
load("@local_config_cuda//cuda:build_defs.bzl", "if_cuda_is_configured")
load("@local_config_rocm//rocm:build_defs.bzl", "if_rocm_is_configured")
# See https://semver.org/
VERSION_MAJOR = 0
VERSION_MINOR = 4
VERSION_PATCH = 0
VERSION_PRERELEASE = ""
VERSION = ".".join([str(VERSION_MAJOR), str(VERSION_MINOR), str(VERSION_PATCH)])
def if_x86_32(a, b = []):
return select({
"@platforms//cpu:x86_32": a,
"//conditions:default": b,
})
def if_x86_64(a, b = []):
return select({
"@platforms//cpu:x86_64": a,
"//conditions:default": b,
})
def if_arm(a, b = []):
return select({
"@platforms//cpu:arm": a,
"//conditions:default": b,
})
def if_aarch64(a, b = []):
return select({
"@platforms//cpu:aarch64": a,
"//conditions:default": b,
})
def if_linux(a, b = []):
return select({
"@platforms//os:linux": a,
"//conditions:default": b,
})
def if_linux_x86_64(a, b = []):
return select({
"@kroma_network_tachyon//:linux_x86_64": a,
"//conditions:default": b,
})
def if_macos(a, b = []):
return select({
"@platforms//os:macos": a,
"//conditions:default": b,
})
def if_windows(a, b = []):
return select({
"@platforms//os:windows": a,
"//conditions:default": b,
})
def if_posix(a, b = []):
return select({
"@platforms//os:windows": b,
"//conditions:default": a,
})
def if_optimized(a, b = []):
return select({
"@kroma_network_tachyon//:optimized": a,
"//conditions:default": b,
})
def if_static(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_shared_object": b,
"@kroma_network_tachyon//:tachyon_c_shared_object": b,
"@kroma_network_tachyon//:tachyon_cc_shared_object": b,
"//conditions:default": a,
})
def if_has_exception(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_exception": a,
"//conditions:default": b,
})
def if_has_rtti(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_rtti": a,
"//conditions:default": b,
})
def if_has_openmp(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_openmp": a,
"//conditions:default": b,
})
def if_has_openmp_on_macos(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_openmp_on_macos": a,
"//conditions:default": b,
})
def if_has_avx512(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_avx512": a,
"//conditions:default": b,
})
def if_has_matplotlib(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_matplotlib": a,
"//conditions:default": b,
})
def if_has_numa(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_numa": a,
"//conditions:default": b,
})
def if_has_asm_prime_field(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_has_asm_prime_field": a,
"//conditions:default": b,
})
def if_c_shared_object(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_c_shared_object": a,
"//conditions:default": b,
})
def if_cc_shared_object(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_cc_shared_object": a,
"//conditions:default": b,
})
def if_py_binding(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_py_binding": a,
"//conditions:default": b,
})
def if_node_binding(a, b = []):
return select({
"@kroma_network_tachyon//:tachyon_node_binding": a,
"//conditions:default": b,
})
def if_gpu_is_configured(x):
return if_cuda_is_configured(x) + if_rocm_is_configured(x)
================================================
FILE: bazel/tachyon_cc.bzl
================================================
load("@local_config_cuda//cuda:build_defs.bzl", "cuda_library", "if_cuda")
load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library", "cc_test", "objc_library")
load(
"//bazel:tachyon.bzl",
"if_has_asm_prime_field",
"if_has_avx512",
"if_has_exception",
"if_has_matplotlib",
"if_has_openmp",
"if_has_rtti",
"if_linux_x86_64",
"if_static",
)
def tachyon_safe_code():
return ["-Wall", "-Werror"]
def tachyon_warnings(safe_code):
warnings = []
if safe_code:
warnings.extend(tachyon_safe_code())
return warnings
def tachyon_hide_symbols():
return if_static([], ["-fvisibility=hidden"])
def tachyon_exceptions(force_exceptions):
return if_has_exception(["-fexceptions"], (["-fexceptions"] if force_exceptions else ["-fno-exceptions"]))
def tachyon_rtti(force_rtti):
return if_has_rtti(["-frtti"], (["-frtti"] if force_rtti else ["-fno-rtti"]))
def tachyon_simd_copts():
return if_linux_x86_64(["-msse3"])
def tachyon_openmp_copts():
return select({
"@kroma_network_tachyon//:tachyon_has_openmp_on_macos": ["-Xclang -fopenmp"],
"@kroma_network_tachyon//:tachyon_has_openmp": ["-fopenmp"],
"//conditions:default": [],
})
def tachyon_copts(safe_code = True):
return tachyon_warnings(safe_code) + tachyon_hide_symbols() + tachyon_simd_copts() + tachyon_openmp_copts()
def tachyon_cxxopts(safe_code = True, force_exceptions = False, force_rtti = False):
return tachyon_copts(safe_code) + tachyon_exceptions(force_exceptions) + tachyon_rtti(force_rtti)
def tachyon_openmp_defines():
return if_has_openmp(["TACHYON_HAS_OPENMP"])
def tachyon_avx512_defines():
return if_has_avx512(["TACHYON_HAS_AVX512"])
def tachyon_asm_prime_field_defines():
return if_has_asm_prime_field(["TACHYON_HAS_ASM_PRIME_FIELD"])
def tachyon_cuda_defines():
return if_cuda(["TACHYON_CUDA"])
def tachyon_matplotlib_defines():
return if_has_matplotlib(["TACHYON_HAS_MATPLOTLIB"])
def tachyon_defines(use_cuda = False):
defines = tachyon_defines_shared_lib_build() + tachyon_openmp_defines()
if use_cuda:
defines += tachyon_cuda_defines()
return defines
def tachyon_defines_shared_lib_build():
return select({
"@kroma_network_tachyon//:tachyon_shared_object": ["TACHYON_COMPONENT_BUILD"],
"@kroma_network_tachyon//:tachyon_c_shared_object": ["TACHYON_C_SHARED_LIB_BUILD"],
"@kroma_network_tachyon//:tachyon_cc_shared_object": ["TACHYON_CC_SHARED_LIB_BUILD"],
"//conditions:default": [],
})
def tachyon_local_defines():
return tachyon_local_defines_compile_library()
def tachyon_local_defines_compile_library():
return if_static([], ["TACHYON_COMPILE_LIBRARY"])
def tachyon_openmp_linkopts():
return select({
"@kroma_network_tachyon//:tachyon_has_openmp_on_macos": ["-Xclang -fopenmp"],
"@kroma_network_tachyon//:tachyon_has_openmp": ["-fopenmp"],
"@kroma_network_tachyon//:tachyon_has_intel_openmp": ["-liomp5"],
"//conditions:default": [],
})
def tachyon_linkopts():
return tachyon_openmp_linkopts()
def tachyon_openmp_num_threads_env(n):
return if_has_openmp({
"OMP_NUM_THREADS": "{}".format(n),
}, {})
def tachyon_cc_library(
name,
copts = [],
defines = [],
local_defines = [],
linkopts = [],
alwayslink = True,
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
cc_library(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(),
local_defines = local_defines + tachyon_local_defines(),
linkopts = linkopts + tachyon_linkopts(),
alwayslink = alwayslink,
**kwargs
)
def tachyon_cc_binary(
name,
copts = [],
defines = [],
local_defines = [],
linkopts = [],
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
cc_binary(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(),
local_defines = local_defines + tachyon_local_defines(),
linkopts = linkopts + tachyon_linkopts(),
**kwargs
)
def tachyon_cc_test(
name,
copts = [],
defines = [],
local_defines = [],
linkopts = [],
linkstatic = True,
deps = [],
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
cc_test(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(),
local_defines = local_defines + tachyon_local_defines(),
linkopts = linkopts + tachyon_linkopts(),
linkstatic = linkstatic,
deps = deps + ["@com_google_googletest//:gtest_main"],
**kwargs
)
def tachyon_cc_unittest(
name,
size = "small",
**kwargs):
tachyon_cc_test(
name = name,
size = size,
**kwargs
)
def tachyon_cc_benchmark(
name,
copts = [],
defines = [],
local_defines = [],
linkopts = [],
tags = [],
linkstatic = True,
deps = [],
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
cc_test(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(),
local_defines = local_defines + tachyon_local_defines(),
linkopts = linkopts + tachyon_linkopts(),
tags = tags + ["benchmark"],
deps = deps + ["@com_github_google_benchmark//:benchmark_main"],
linkstatic = linkstatic,
**kwargs
)
# This is taken and modified from tf_cc_shared_object in tensorflow/tensorflow.bzl
def tachyon_cc_shared_library(
name,
user_link_flags = [],
deps = [],
linkstatic = False,
soversion = None,
testonly = False,
visibility = ["//visibility:public"],
**kwargs):
cc_library_name = name + "_cclib"
cc_library(
name = cc_library_name,
linkstatic = linkstatic,
testonly = testonly,
deps = deps,
)
if soversion != None:
major_version = soversion.split(".")[0]
for os in ["macos", "linux"]:
native.genrule(
name = "%s_sym_%s" % (name, os),
outs = [("lib%s.dylib" if os == "macos" else "lib%s.so") % name],
srcs = [":%s_%s_sym_%s" % (name, major_version, os)],
output_to_bindir = True,
cmd = "ln -sf $$(basename $<) $@",
)
native.genrule(
name = "%s_%s_sym_%s" % (name, major_version, os),
outs = [("lib%s.%s.dylib" if os == "macos" else "lib%s.so.%s") % (name, major_version)],
srcs = [":" + name],
output_to_bindir = True,
cmd = "ln -sf $$(basename $<) $@",
)
native.cc_shared_library(
name = name,
shared_lib_name = select({
"@platforms//os:macos": "lib%s.%s.dylib" % (name, soversion),
"@platforms//os:windows": "%s.dll" % name,
"//conditions:default": "lib%s.so.%s" % (name, soversion),
}),
user_link_flags = user_link_flags + select({
"@platforms//os:macos": [
"-Wl,-install_name,@rpath/" + "lib%s.%s.dylib" % (name, major_version),
],
"@platforms//os:windows": [],
"//conditions:default": [
"-Wl,-soname," + "lib%s.so.%s" % (name, major_version),
],
}),
visibility = visibility,
deps = [":" + cc_library_name],
testonly = testonly,
**kwargs
)
else:
native.cc_shared_library(
name = name,
user_link_flags = user_link_flags,
visibility = visibility,
deps = [":" + cc_library_name],
testonly = testonly,
**kwargs
)
def tachyon_objc_library(
name,
copts = [],
defines = [],
tags = [],
alwayslink = True,
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
objc_library(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(),
tags = tags + ["objc"],
alwayslink = alwayslink,
**kwargs
)
def tachyon_cuda_library(
name,
copts = [],
defines = [],
local_defines = [],
linkopts = [],
alwayslink = True,
safe_code = True,
force_exceptions = False,
force_rtti = False,
**kwargs):
cuda_library(
name = name,
copts = copts + tachyon_cxxopts(safe_code = safe_code, force_exceptions = force_exceptions, force_rtti = force_rtti),
defines = defines + tachyon_defines(use_cuda = True),
local_defines = local_defines + tachyon_local_defines(),
linkopts = linkopts + tachyon_linkopts(),
alwayslink = alwayslink,
**kwargs
)
def tachyon_cuda_binary(
name,
deps = [],
testonly = False,
**kwargs):
lib_name = "{}_lib".format(name)
tachyon_cuda_library(
name = lib_name,
deps = deps + if_cuda([
"@local_config_cuda//cuda:cudart_static",
]),
testonly = testonly,
**kwargs
)
tachyon_cc_binary(
name = name,
deps = [":" + lib_name],
testonly = testonly,
)
def tachyon_cuda_test(
name,
deps = [],
tags = [],
size = "medium",
**kwargs):
lib_name = "{}_lib".format(name)
tachyon_cuda_library(
name = lib_name,
deps = deps + if_cuda([
"@local_config_cuda//cuda:cudart_static",
]) + [
"@com_google_googletest//:gtest",
],
testonly = True,
**kwargs
)
tachyon_cc_test(
name = name,
tags = tags + ["cuda"],
size = size,
deps = [":" + lib_name],
)
def tachyon_cuda_unittest(
name,
size = "small",
**kwargs):
tachyon_cuda_test(
name = name,
size = size,
**kwargs
)
def _get_hdrs(hdrs, deps):
return depset(
hdrs,
transitive = [
dep[CcInfo].compilation_context.headers
for dep in deps
if CcInfo in dep
] +
[
dep[DefaultInfo].files
for dep in deps
if DefaultInfo in dep
],
)
def _collect_hdrs_impl(ctx):
result = _get_hdrs(ctx.files.hdrs, ctx.attr.deps)
return DefaultInfo(files = result)
collect_hdrs = rule(
attrs = {
"hdrs": attr.label_list(allow_files = [".h"]),
"deps": attr.label_list(
allow_rules = [
"cc_library",
"filegroup",
],
providers = [[CcInfo], [DefaultInfo]],
),
},
implementation = _collect_hdrs_impl,
)
================================================
FILE: bazel/tachyon_deps.bzl
================================================
load("@bazel_tools//tools/build_defs/repo:http.bzl", "http_archive")
load("//third_party/circomlib:workspace.bzl", circomlib = "repo")
load("//third_party/doxygen:workspace.bzl", doxygen = "repo")
load("//third_party/eigen3:workspace.bzl", eigen3 = "repo")
load("//third_party/env:env_configure.bzl", "env_configure")
load("//third_party/ffiasm:workspace.bzl", ffiasm = "repo")
load("//third_party/gmp:gmp_configure.bzl", "gmp_configure")
load("//third_party/goldilocks:workspace.bzl", goldilocks = "repo")
load("//third_party/gpus:cuda_configure.bzl", "cuda_configure")
load("//third_party/gpus:rocm_configure.bzl", "rocm_configure")
load("//third_party/hwloc:workspace.bzl", hwloc = "repo")
load("//third_party/icicle:workspace.bzl", icicle = "repo")
load("//third_party/json:workspace.bzl", json = "repo")
load("//third_party/nasm:workspace.bzl", nasm = "repo")
load("//third_party/node_addon_api:install_node_addon_api.bzl", "install_node_addon_api")
load("//third_party/omp:omp_configure.bzl", "omp_configure")
load("//third_party/pdqsort:workspace.bzl", pdqsort = "repo")
load("//third_party/powersort:workspace.bzl", powersort = "repo")
load("//third_party/py:python_configure.bzl", "python_configure")
load("//third_party/rapidsnark:workspace.bzl", rapidsnark = "repo")
def tachyon_deps():
cuda_configure(name = "local_config_cuda")
env_configure(name = "local_config_env")
gmp_configure(name = "local_config_gmp")
omp_configure(name = "local_config_omp")
rocm_configure(name = "local_config_rocm")
python_configure(name = "local_config_python")
circomlib()
doxygen()
eigen3()
ffiasm()
goldilocks()
hwloc()
icicle()
json()
nasm()
pdqsort()
powersort()
rapidsnark()
install_node_addon_api(name = "node_addon_api")
if not native.existing_rule("bazel_skylib"):
http_archive(
name = "bazel_skylib",
sha256 = "66ffd9315665bfaafc96b52278f57c7e2dd09f5ede279ea6d39b2be471e7e3aa",
urls = [
"https://mirror.bazel.build/github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz",
"https://github.com/bazelbuild/bazel-skylib/releases/download/1.4.2/bazel-skylib-1.4.2.tar.gz",
],
)
if not native.existing_rule("com_github_google_benchmark"):
http_archive(
name = "com_github_google_benchmark",
sha256 = "2aab2980d0376137f969d92848fbb68216abb07633034534fc8c65cc4e7a0e93",
strip_prefix = "benchmark-1.8.2",
urls = ["https://github.com/google/benchmark/archive/v1.8.2.tar.gz"],
)
# Needed by com_github_google_glog
if not native.existing_rule("com_github_gflags_gflags"):
http_archive(
name = "com_github_gflags_gflags",
strip_prefix = "gflags-2.2.2",
urls = [
"https://mirror.bazel.build/github.com/gflags/gflags/archive/v2.2.2.tar.gz",
"https://github.com/gflags/gflags/archive/v2.2.2.tar.gz",
],
)
if not native.existing_rule("com_github_google_glog"):
# TODO(chokobole): Bump up to 0.6.0.
# glog v0.6.0 can't be built with --config cuda.
http_archive(
name = "com_github_google_glog",
sha256 = "21bc744fb7f2fa701ee8db339ded7dce4f975d0d55837a97be7d46e8382dea5a",
strip_prefix = "glog-0.5.0",
urls = ["https://github.com/google/glog/archive/v0.5.0.zip"],
patch_args = ["-p1"],
patches = [
"@kroma_network_tachyon//third_party/glog:enable_constexpr_check_op.patch",
"@kroma_network_tachyon//third_party/glog:enable_elaborate_ostream_operator.patch",
],
)
if not native.existing_rule("com_github_soblin_matplotlibcpp17"):
http_archive(
name = "com_github_soblin_matplotlibcpp17",
sha256 = "f5889241b57c6a06e9f07745c2e4062bb2c584a67756aad3dd042a65147cc830",
strip_prefix = "matplotlibcpp17-779f108f192a27761cae3724929850fe65de625c",
urls = ["https://github.com/soblin/matplotlibcpp17/archive/779f108f192a27761cae3724929850fe65de625c.tar.gz"],
build_file = "@kroma_network_tachyon//third_party/matplotlibcpp17:matplotlibcpp17.BUILD",
)
if not native.existing_rule("com_google_absl"):
http_archive(
name = "com_google_absl",
sha256 = "51d676b6846440210da48899e4df618a357e6e44ecde7106f1e44ea16ae8adc7",
strip_prefix = "abseil-cpp-20230125.3",
urls = ["https://github.com/abseil/abseil-cpp/archive/20230125.3.zip"],
patch_args = ["-p1"],
patches = [
"@kroma_network_tachyon//third_party/absl:add_missing_linkopts.patch",
"@kroma_network_tachyon//third_party/absl:ignore-maybe-uninitialized-warning.patch",
],
)
if not native.existing_rule("com_google_boringssl"):
http_archive(
name = "com_google_boringssl",
sha256 = "c17af0c3ddd72613a6cacf3761cebaa583806fc49fb53ac021ae479aa8265c93",
strip_prefix = "boringssl-b69f4d27a75dcf4b94138790883b44274fab56c2",
urls = ["https://github.com/google/boringssl/archive/b69f4d27a75dcf4b94138790883b44274fab56c2.tar.gz"],
patch_args = ["-p1"],
patches = [
"@kroma_network_tachyon//third_party/boringssl:blake2b512.patch",
"@kroma_network_tachyon//third_party/boringssl:chacha_core.patch",
],
)
if not native.existing_rule("com_google_googletest"):
http_archive(
name = "com_google_googletest",
sha256 = "ffa17fbc5953900994e2deec164bb8949879ea09b411e07f215bfbb1f87f4632",
strip_prefix = "googletest-1.13.0",
urls = ["https://github.com/google/googletest/archive/v1.13.0.zip"],
patch_args = ["-p1"],
patches = [
"@kroma_network_tachyon//third_party/gtest:add_missing_linkopts.patch",
"@kroma_network_tachyon//third_party/gtest:print_with_to_string.patch",
],
)
if not native.existing_rule("com_github_tencent_rapidjson"):
http_archive(
name = "com_github_tencent_rapidjson",
strip_prefix = "rapidjson-1.1.0",
sha256 = "8e00c38829d6785a2dfb951bb87c6974fa07dfe488aa5b25deec4b8bc0f6a3ab",
urls = ["https://github.com/Tencent/rapidjson/archive/v1.1.0.zip"],
build_file = "@kroma_network_tachyon//third_party:rapidjson/rapidjson.BUILD",
)
# Needed by com_google_googletest
if not native.existing_rule("com_googlesource_code_re2"):
http_archive(
name = "com_googlesource_code_re2",
sha256 = "4ccdd5aafaa1bcc24181e6dd3581c3eee0354734bb9f3cb4306273ffa434b94f",
strip_prefix = "re2-2023-06-02",
urls = ["https://github.com/google/re2/archive/2023-06-02.tar.gz"],
)
if not native.existing_rule("cxx.rs"):
http_archive(
name = "cxx.rs",
sha256 = "ab918028d85b1c0a5c21a24d9a78bb6a1adc78608191e6ff382bcbb2bcd57ccd",
strip_prefix = "cxx-1.0.102",
urls = ["https://github.com/dtolnay/cxx/archive/refs/tags/1.0.102.tar.gz"],
patch_args = ["-p1"],
patches = ["@kroma_network_tachyon//third_party/cxx_rs:add_more_args_to_cxx_bridge.patch"],
)
if not native.existing_rule("perfetto"):
http_archive(
name = "perfetto",
sha256 = "dfc9b645c020d7a7469bae73d7432545b8005411c8176f46f04875058df0aa97",
strip_prefix = "perfetto-46.0",
urls = ["https://github.com/google/perfetto/archive/refs/tags/v46.0.tar.gz"],
build_file = "@kroma_network_tachyon//third_party:perfetto/perfetto.BUILD",
)
if not native.existing_rule("rules_pkg"):
http_archive(
name = "rules_pkg",
sha256 = "8f9ee2dc10c1ae514ee599a8b42ed99fa262b757058f65ad3c384289ff70c4b8",
urls = ["https://github.com/bazelbuild/rules_pkg/releases/download/0.9.1/rules_pkg-0.9.1.tar.gz"],
)
# Needed by com_google_googletest
if not native.existing_rule("rules_python"):
http_archive(
name = "rules_python",
sha256 = "84aec9e21cc56fbc7f1335035a71c850d1b9b5cc6ff497306f84cced9a769841",
strip_prefix = "rules_python-0.23.1",
urls = ["https://github.com/bazelbuild/rules_python/releases/download/0.23.1/rules_python-0.23.1.tar.gz"],
)
if not native.existing_rule("rules_rust"):
http_archive(
name = "rules_rust",
sha256 = "9d04e658878d23f4b00163a72da3db03ddb451273eb347df7d7c50838d698f49",
urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.26.0/rules_rust-v0.26.0.tar.gz"],
)
================================================
FILE: bazel/tachyon_node.bzl
================================================
load("//bazel:tachyon.bzl", "if_node_binding")
load("//bazel:tachyon_cc.bzl", "tachyon_cc_library", "tachyon_cc_shared_library")
def tachyon_node_library(
name,
testonly = False,
visibility = ["//visibility:public"],
**kwrargs):
tachyon_cc_library(
name = name + "_lib",
testonly = testonly,
**kwrargs
)
tachyon_cc_shared_library(
name = name + "_shared_lib",
deps = [":{}_lib".format(name)] + if_node_binding([
"@node_addon_api",
]),
testonly = testonly,
)
native.genrule(
name = name,
srcs = [":{}_shared_lib".format(name)],
outs = [name + ".node"],
cmd = "cp -f $< $@",
testonly = testonly,
visibility = visibility,
)
================================================
FILE: bazel/tachyon_p
gitextract_hzd_88mr/
├── .bazelignore
├── .bazelrc
├── .bazelversion
├── .clang-format
├── .dockerignore
├── .github/
│ └── workflows/
│ ├── ci.yml
│ └── delete_cache.yml
├── .gitignore
├── .gitmessage
├── BUILD.bazel
├── Cargo.toml
├── LICENSE
├── LICENSE-APACHE.EF
├── LICENSE-APACHE.arkworks-rs
├── LICENSE-APACHE.era-bellman-cuda
├── LICENSE-APACHE.halo2
├── LICENSE-APACHE.plonky3
├── LICENSE-APACHE.scroll
├── LICENSE-APACHE.stwo
├── LICENSE-MIT.EF
├── LICENSE-MIT.arkworks-rs
├── LICENSE-MIT.era-bellman-cuda
├── LICENSE-MIT.halo2
├── LICENSE-MIT.plonky3
├── LICENSE-MIT.scroll
├── LICENSE.chromium
├── LICENSE.lambdaworks
├── LICENSE.tensorflow
├── LICENSE.ulvetanna
├── README.md
├── WORKSPACE
├── bazel/
│ ├── BUILD.bazel
│ ├── buildifier_deps.bzl
│ ├── js_deps.bzl
│ ├── pybind11_deps.bzl
│ ├── tachyon.bzl
│ ├── tachyon_cc.bzl
│ ├── tachyon_deps.bzl
│ ├── tachyon_node.bzl
│ ├── tachyon_py.bzl
│ ├── tachyon_repo.bzl
│ └── tachyon_rust.bzl
├── benchmark/
│ ├── BUILD.bazel
│ ├── config.cc
│ ├── config.h
│ ├── ec/
│ │ ├── BUILD.bazel
│ │ ├── ec_config.cc
│ │ ├── ec_config.h
│ │ └── ec_double_benchmark_gpu.cc
│ ├── fft/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── bellman/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── fft_benchmark.cc
│ │ ├── fft_benchmark_gpu.cc
│ │ ├── fft_config.cc
│ │ ├── fft_config.h
│ │ ├── fft_runner.h
│ │ └── halo2/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── fft_batch/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── fft_batch_benchmark.cc
│ │ ├── fft_batch_config.cc
│ │ ├── fft_batch_config.h
│ │ ├── fft_batch_runner.h
│ │ └── plonky3/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── field_type.h
│ ├── fri/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── fri_benchmark.cc
│ │ ├── fri_config.cc
│ │ ├── fri_config.h
│ │ ├── fri_runner.h
│ │ └── plonky3/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ └── src/
│ │ └── lib.rs
│ ├── msm/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── bellman/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── msm_benchmark.cc
│ │ ├── msm_benchmark_gpu.cc
│ │ ├── msm_config.cc
│ │ ├── msm_config.h
│ │ └── msm_runner.h
│ ├── poseidon/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── arkworks/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── poseidon_benchmark.cc
│ │ ├── poseidon_benchmark_runner.h
│ │ ├── poseidon_config.cc
│ │ └── poseidon_config.h
│ ├── poseidon2/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── horizen/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── plonky3/
│ │ │ ├── BUILD.bazel
│ │ │ ├── Cargo.toml
│ │ │ └── src/
│ │ │ └── lib.rs
│ │ ├── poseidon2_benchmark.cc
│ │ ├── poseidon2_benchmark_runner.h
│ │ ├── poseidon2_config.cc
│ │ └── poseidon2_config.h
│ ├── simple_reporter.cc
│ ├── simple_reporter.h
│ └── vendor.h
├── docker/
│ ├── Dockerfile.base.jammy
│ ├── Dockerfile.circom.jammy
│ └── Dockerfile.halo2.jammy
├── docs/
│ ├── doxygen/
│ │ ├── BUILD.bazel
│ │ ├── Doxyfile.in
│ │ └── main_page.md
│ ├── how_to_contribute/
│ │ ├── conventions.md
│ │ └── math/
│ │ ├── how_to_add_elliptic_curves.md
│ │ ├── how_to_add_prime_fields.md
│ │ └── math_structure.md
│ └── how_to_use/
│ └── how_to_build.md
├── funding.json
├── scripts/
│ └── packages/
│ ├── BUILD.bazel
│ ├── copy_hdr.py
│ ├── debian/
│ │ ├── BUILD.bazel
│ │ ├── copyright
│ │ ├── debian.bzl
│ │ ├── description
│ │ ├── dev/
│ │ │ ├── BUILD.bazel
│ │ │ └── tachyon.pc.tpl
│ │ └── runtime/
│ │ └── BUILD.bazel
│ └── install_package.sh
├── tachyon/
│ ├── BUILD.bazel
│ ├── base/
│ │ ├── BUILD.bazel
│ │ ├── apple/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── bridging.h
│ │ │ ├── bundle_locations.h
│ │ │ └── bundle_locations.mm
│ │ ├── auto_reset.h
│ │ ├── auto_reset_unittest.cc
│ │ ├── binding/
│ │ │ ├── BUILD.bazel
│ │ │ ├── callable_util.h
│ │ │ ├── cpp_constructor.cc
│ │ │ ├── cpp_constructor.h
│ │ │ ├── cpp_constructor_matcher.cc
│ │ │ ├── cpp_constructor_matcher.h
│ │ │ ├── cpp_raw_ptr.h
│ │ │ ├── cpp_shared_ptr.h
│ │ │ ├── cpp_stack_value.h
│ │ │ ├── cpp_type.h
│ │ │ ├── cpp_type_names.cc
│ │ │ ├── cpp_type_names.h
│ │ │ ├── cpp_unique_ptr.h
│ │ │ ├── cpp_value.cc
│ │ │ ├── cpp_value.h
│ │ │ ├── cpp_value_factory.h
│ │ │ ├── holder_util.h
│ │ │ ├── property_util.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adder.cc
│ │ │ ├── adder.h
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── colored_point.cc
│ │ │ ├── colored_point.h
│ │ │ ├── functions.cc
│ │ │ ├── functions.h
│ │ │ ├── move_only_int.cc
│ │ │ ├── move_only_int.h
│ │ │ ├── point.cc
│ │ │ ├── point.h
│ │ │ ├── rect.cc
│ │ │ ├── rect.h
│ │ │ ├── variant.cc
│ │ │ └── variant.h
│ │ ├── bit_cast.h
│ │ ├── bit_cast_unittest.cc
│ │ ├── bits.cc
│ │ ├── bits.h
│ │ ├── bits_unittest.cc
│ │ ├── buffer/
│ │ │ ├── BUILD.bazel
│ │ │ ├── buffer.cc
│ │ │ ├── buffer.h
│ │ │ ├── buffer_unittest.cc
│ │ │ ├── copyable.h
│ │ │ ├── copyable_forward.h
│ │ │ ├── endian_auto_reset.h
│ │ │ ├── read_only_buffer.cc
│ │ │ ├── read_only_buffer.h
│ │ │ ├── string_buffer.h
│ │ │ ├── vector_buffer.cc
│ │ │ └── vector_buffer.h
│ │ ├── color/
│ │ │ ├── BUILD.bazel
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── color_conversions.cc
│ │ │ ├── color_conversions.h
│ │ │ ├── color_conversions_unittest.cc
│ │ │ ├── color_unittest.cc
│ │ │ └── named_color.h
│ │ ├── compiler_specific.h
│ │ ├── console/
│ │ │ ├── BUILD.bazel
│ │ │ ├── console.cc
│ │ │ ├── console.h
│ │ │ ├── console_stream.cc
│ │ │ ├── console_stream.h
│ │ │ ├── iostream.cc
│ │ │ ├── iostream.h
│ │ │ ├── sgr_parameter_list.h
│ │ │ ├── sgr_parameters.cc
│ │ │ ├── sgr_parameters.h
│ │ │ ├── table_writer.cc
│ │ │ └── table_writer.h
│ │ ├── containers/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adapters.h
│ │ │ ├── adapters_unittest.cc
│ │ │ ├── chunked_iterator.h
│ │ │ ├── circular_deque.h
│ │ │ ├── circular_deque_unittest.cc
│ │ │ ├── container_util.h
│ │ │ ├── container_util_unittest.cc
│ │ │ ├── contains.h
│ │ │ ├── contains_unittest.cc
│ │ │ ├── cxx20_erase.h
│ │ │ ├── cxx20_erase_deque.h
│ │ │ ├── cxx20_erase_forward_list.h
│ │ │ ├── cxx20_erase_internal.h
│ │ │ ├── cxx20_erase_list.h
│ │ │ ├── cxx20_erase_map.h
│ │ │ ├── cxx20_erase_set.h
│ │ │ ├── cxx20_erase_string.h
│ │ │ ├── cxx20_erase_unordered_map.h
│ │ │ ├── cxx20_erase_unordered_set.h
│ │ │ ├── cxx20_erase_vector.h
│ │ │ ├── stack.h
│ │ │ ├── util.h
│ │ │ ├── vector_buffer.h
│ │ │ ├── vector_buffer_unittest.cc
│ │ │ └── zipped_iterator.h
│ │ ├── cxx20_is_constant_evaluated.h
│ │ ├── cxx20_is_constant_evaluated_unittest.cc
│ │ ├── endian.cc
│ │ ├── endian.h
│ │ ├── endian_utils.h
│ │ ├── endian_utils_unittest.cc
│ │ ├── environment.h
│ │ ├── environment_posix.cc
│ │ ├── environment_unittest.cc
│ │ ├── files/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── bin_file.cc
│ │ │ ├── bin_file.h
│ │ │ ├── file.cc
│ │ │ ├── file.h
│ │ │ ├── file_enumerator.cc
│ │ │ ├── file_enumerator.h
│ │ │ ├── file_enumerator_posix.cc
│ │ │ ├── file_enumerator_unittest.cc
│ │ │ ├── file_path.cc
│ │ │ ├── file_path.h
│ │ │ ├── file_path_flag.h
│ │ │ ├── file_path_unittest.cc
│ │ │ ├── file_posix.cc
│ │ │ ├── file_unittest.cc
│ │ │ ├── file_util.cc
│ │ │ ├── file_util.h
│ │ │ ├── file_util_mac.mm
│ │ │ ├── file_util_posix.cc
│ │ │ ├── memory_mapped_file.cc
│ │ │ ├── memory_mapped_file.h
│ │ │ ├── memory_mapped_file_posix.cc
│ │ │ ├── platform_file.h
│ │ │ ├── scoped_file.cc
│ │ │ ├── scoped_file.h
│ │ │ ├── scoped_file_linux.cc
│ │ │ ├── scoped_file_linux_unittest.cc
│ │ │ ├── scoped_temp_dir.cc
│ │ │ ├── scoped_temp_dir.h
│ │ │ └── scoped_temp_dir_unittest.cc
│ │ ├── flag/
│ │ │ ├── BUILD.bazel
│ │ │ ├── flag.cc
│ │ │ ├── flag.h
│ │ │ ├── flag_forward.h
│ │ │ ├── flag_parser.cc
│ │ │ ├── flag_parser.h
│ │ │ ├── flag_parser_unittest.cc
│ │ │ ├── flag_unittest.cc
│ │ │ ├── flag_value_traits.h
│ │ │ └── numeric_flags.h
│ │ ├── functional/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── callback.h
│ │ │ ├── callback_forward.h
│ │ │ ├── function_ref.h
│ │ │ ├── function_ref_unittest.cc
│ │ │ ├── functor_traits.h
│ │ │ ├── identity.h
│ │ │ ├── identity_unittest.cc
│ │ │ ├── invoke.h
│ │ │ └── invoke_unittest.cc
│ │ ├── immediate_crash.h
│ │ ├── json/
│ │ │ ├── BUILD.bazel
│ │ │ ├── json.h
│ │ │ ├── json_unittest.cc
│ │ │ ├── rapidjson_util.cc
│ │ │ ├── rapidjson_util.h
│ │ │ └── test/
│ │ │ └── simple_data.json
│ │ ├── logging.cc
│ │ ├── logging.h
│ │ ├── mac/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── foundation_util.h
│ │ │ ├── foundation_util.mm
│ │ │ ├── mac_logging.h
│ │ │ ├── mac_logging.mm
│ │ │ ├── mach_logging.cc
│ │ │ ├── mach_logging.h
│ │ │ ├── scoped_cftyperef.h
│ │ │ ├── scoped_mach_port.cc
│ │ │ ├── scoped_mach_port.h
│ │ │ └── scoped_typeref.h
│ │ ├── maybe_owned.h
│ │ ├── maybe_owned_traits.h
│ │ ├── memory/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── aligned_memory.cc
│ │ │ ├── aligned_memory.h
│ │ │ ├── aligned_memory_unittest.cc
│ │ │ └── scoped_policy.h
│ │ ├── message_loop/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ └── message_pump_type.h
│ │ ├── no_destructor.h
│ │ ├── numerics/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── checked_math.h
│ │ │ ├── checked_math_impl.h
│ │ │ ├── clamped_math.h
│ │ │ ├── clamped_math_impl.h
│ │ │ ├── math_constants.h
│ │ │ ├── ostream_operators.h
│ │ │ ├── ranges.h
│ │ │ ├── safe_conversions.h
│ │ │ ├── safe_conversions_arm_impl.h
│ │ │ ├── safe_conversions_impl.h
│ │ │ ├── safe_math.h
│ │ │ ├── safe_math_arm_impl.h
│ │ │ ├── safe_math_clang_gcc_impl.h
│ │ │ └── safe_math_shared_impl.h
│ │ ├── openmp_util.h
│ │ ├── optional.h
│ │ ├── parallelize.h
│ │ ├── parallelize_unittest.cc
│ │ ├── posix/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── can_lower_nice_to.cc
│ │ │ ├── can_lower_nice_to.h
│ │ │ └── eintr_wrapper.h
│ │ ├── process/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── process_handle.cc
│ │ │ ├── process_handle.h
│ │ │ └── process_handle_posix.cc
│ │ ├── profiler.cc
│ │ ├── profiler.h
│ │ ├── random.cc
│ │ ├── random.h
│ │ ├── random_unittest.cc
│ │ ├── range.h
│ │ ├── range_unittest.cc
│ │ ├── ranges/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── algorithm.h
│ │ │ ├── algorithm_unittest.cc
│ │ │ ├── functional.h
│ │ │ ├── functional_unittest.cc
│ │ │ ├── ranges.h
│ │ │ └── ranges_unittest.cc
│ │ ├── ref.h
│ │ ├── ref_unittest.cc
│ │ ├── scoped_generic.h
│ │ ├── scoped_generic_unittest.cc
│ │ ├── sort.h
│ │ ├── sort_benchmark.cc
│ │ ├── static_storage.h
│ │ ├── strings/
│ │ │ ├── BUILD.bazel
│ │ │ ├── rust_stringifier.h
│ │ │ ├── string_number_conversions.cc
│ │ │ ├── string_number_conversions.h
│ │ │ ├── string_number_conversions_internal.h
│ │ │ ├── string_number_conversions_unittest.cc
│ │ │ ├── string_util.cc
│ │ │ ├── string_util.h
│ │ │ ├── string_util_impl_helpers.h
│ │ │ ├── string_util_internal.h
│ │ │ ├── string_util_unittest.cc
│ │ │ ├── sys_string_conversions.h
│ │ │ ├── sys_string_conversions_mac.mm
│ │ │ ├── sys_string_conversions_mac_unittest.mm
│ │ │ └── sys_string_conversions_posix.cc
│ │ ├── system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── sys_info.h
│ │ │ └── sys_info_posix.cc
│ │ ├── template_util.h
│ │ ├── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── copy_only_int.cc
│ │ │ ├── copy_only_int.h
│ │ │ ├── move_only_int.h
│ │ │ ├── scoped_environment.cc
│ │ │ └── scoped_environment.h
│ │ ├── threading/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── platform_thread.cc
│ │ │ ├── platform_thread.h
│ │ │ ├── platform_thread_internal_posix.cc
│ │ │ ├── platform_thread_internal_posix.h
│ │ │ ├── platform_thread_linux.cc
│ │ │ ├── platform_thread_mac.mm
│ │ │ ├── platform_thread_posix.cc
│ │ │ ├── platform_thread_ref.cc
│ │ │ └── platform_thread_ref.h
│ │ ├── time/
│ │ │ ├── BUILD.bazel
│ │ │ ├── time.cc
│ │ │ ├── time.h
│ │ │ ├── time_buildflags.bzl
│ │ │ ├── time_conversion_posix.cc
│ │ │ ├── time_delta_flag.h
│ │ │ ├── time_delta_flag_unittest.cc
│ │ │ ├── time_interval.cc
│ │ │ ├── time_interval.h
│ │ │ ├── time_interval_unittest.cc
│ │ │ ├── time_mac.mm
│ │ │ ├── time_mac_unittest.mm
│ │ │ ├── time_now_posix.cc
│ │ │ ├── time_stamp.cc
│ │ │ ├── time_stamp.h
│ │ │ ├── time_stamp_unittest.cc
│ │ │ └── time_unittest.cc
│ │ ├── type_list.h
│ │ └── types/
│ │ ├── .clang-format
│ │ ├── BUILD.bazel
│ │ ├── always_false.h
│ │ └── cxx20_is_bounded_array.h
│ ├── build/
│ │ ├── BUILD.bazel
│ │ ├── build_config.h
│ │ ├── buildflag.bzl
│ │ ├── buildflag.h
│ │ ├── cc_writer.cc
│ │ ├── cc_writer.h
│ │ ├── lastchange.bzl
│ │ ├── lastchange.py
│ │ ├── version.bzl
│ │ ├── write_buildflag_header.py
│ │ ├── write_version_header.py
│ │ ├── writer.cc
│ │ └── writer.h
│ ├── c/
│ │ ├── BUILD.bazel
│ │ ├── api.h
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── profiler.cc
│ │ │ ├── profiler.h
│ │ │ ├── profiler_type_traits.h
│ │ │ └── type_traits_forward.h
│ │ ├── crypto/
│ │ │ ├── BUILD.bazel
│ │ │ ├── commitments/
│ │ │ │ └── fri/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── two_adic_fri_impl.h
│ │ │ └── random/
│ │ │ ├── BUILD.bazel
│ │ │ ├── rng.cc
│ │ │ ├── rng.h
│ │ │ └── rng_unittest.cc
│ │ ├── examples/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.cc
│ │ │ ├── extension_field.cc
│ │ │ ├── jacobian_point.cc
│ │ │ ├── msm.cc
│ │ │ ├── point_xyzz.cc
│ │ │ ├── prime_field.cc
│ │ │ ├── projective_point.cc
│ │ │ ├── rng.cc
│ │ │ └── version.cc
│ │ ├── export.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── g1_test.h
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ ├── generator_util.cc
│ │ │ │ │ ├── generator_util.h
│ │ │ │ │ ├── msm.cc.tpl
│ │ │ │ │ ├── msm.h.tpl
│ │ │ │ │ ├── msm_gpu.cc.tpl
│ │ │ │ │ ├── msm_gpu.h.tpl
│ │ │ │ │ ├── point.cc.tpl
│ │ │ │ │ ├── point.h.tpl
│ │ │ │ │ ├── point_traits.h.tpl
│ │ │ │ │ └── point_type_traits.h.tpl
│ │ │ │ ├── msm/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── msm.h
│ │ │ │ │ ├── msm_gpu.h
│ │ │ │ │ ├── msm_gpu_replay.cc
│ │ │ │ │ ├── msm_gpu_unittest.cc
│ │ │ │ │ ├── msm_input_provider.h
│ │ │ │ │ └── msm_unittest.cc
│ │ │ │ ├── point_traits_forward.h
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ └── projective_point_unittest.cc
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── extension_field_unittest.cc
│ │ │ │ ├── generator/
│ │ │ │ │ ├── ext_field_generator/
│ │ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ │ ├── ext_field.cc.tpl
│ │ │ │ │ │ ├── ext_field.h.tpl
│ │ │ │ │ │ ├── ext_field_generator.cc
│ │ │ │ │ │ └── ext_field_type_traits.h.tpl
│ │ │ │ │ └── prime_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── prime_field.cc.tpl
│ │ │ │ │ ├── prime_field.h.tpl
│ │ │ │ │ ├── prime_field_generator.cc
│ │ │ │ │ └── prime_field_type_traits.h.tpl
│ │ │ │ └── prime_field_unittest.cc
│ │ │ ├── matrix/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear_row_major_matrix.cc
│ │ │ │ ├── baby_bear_row_major_matrix.h
│ │ │ │ ├── baby_bear_row_major_matrix_type_traits.h
│ │ │ │ └── baby_bear_row_major_matrix_unittest.cc
│ │ │ └── polynomials/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constants.h
│ │ │ └── univariate/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_univariate_dense_polynomial.cc
│ │ │ ├── bn254_univariate_dense_polynomial.h
│ │ │ ├── bn254_univariate_dense_polynomial_type_traits.h
│ │ │ ├── bn254_univariate_dense_polynomial_unittest.cc
│ │ │ ├── bn254_univariate_evaluation_domain.cc
│ │ │ ├── bn254_univariate_evaluation_domain.h
│ │ │ ├── bn254_univariate_evaluation_domain_type_traits.h
│ │ │ ├── bn254_univariate_evaluation_domain_unittest.cc
│ │ │ ├── bn254_univariate_evaluations.cc
│ │ │ ├── bn254_univariate_evaluations.h
│ │ │ ├── bn254_univariate_evaluations_type_traits.h
│ │ │ ├── bn254_univariate_evaluations_unittest.cc
│ │ │ ├── bn254_univariate_rational_evaluations.cc
│ │ │ ├── bn254_univariate_rational_evaluations.h
│ │ │ ├── bn254_univariate_rational_evaluations_type_traits.h
│ │ │ └── bn254_univariate_rational_evaluations_unittest.cc
│ │ ├── version.bzl
│ │ ├── version.cc
│ │ ├── version.h
│ │ ├── version_unittest.cc
│ │ └── zk/
│ │ ├── BUILD.bazel
│ │ ├── air/
│ │ │ ├── BUILD.bazel
│ │ │ └── sp1/
│ │ │ ├── BUILD.bazel
│ │ │ ├── baby_bear_poseidon2_commitment_vec.cc
│ │ │ ├── baby_bear_poseidon2_commitment_vec.h
│ │ │ ├── baby_bear_poseidon2_commitment_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_constants.h
│ │ │ ├── baby_bear_poseidon2_domains.cc
│ │ │ ├── baby_bear_poseidon2_domains.h
│ │ │ ├── baby_bear_poseidon2_domains_type_traits.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger.cc
│ │ │ ├── baby_bear_poseidon2_duplex_challenger.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger_type_traits.h
│ │ │ ├── baby_bear_poseidon2_duplex_challenger_unittest.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_type_traits.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec.cc
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec.h
│ │ │ ├── baby_bear_poseidon2_field_merkle_tree_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_fields.h
│ │ │ ├── baby_bear_poseidon2_fri_proof.cc
│ │ │ ├── baby_bear_poseidon2_fri_proof.h
│ │ │ ├── baby_bear_poseidon2_fri_proof_type_traits.h
│ │ │ ├── baby_bear_poseidon2_hintable.h
│ │ │ ├── baby_bear_poseidon2_hintable_unittest.cc
│ │ │ ├── baby_bear_poseidon2_lde_vec.cc
│ │ │ ├── baby_bear_poseidon2_lde_vec.h
│ │ │ ├── baby_bear_poseidon2_lde_vec_type_traits.h
│ │ │ ├── baby_bear_poseidon2_opened_values.cc
│ │ │ ├── baby_bear_poseidon2_opened_values.h
│ │ │ ├── baby_bear_poseidon2_opened_values_type_traits.h
│ │ │ ├── baby_bear_poseidon2_opened_values_unittest.cc
│ │ │ ├── baby_bear_poseidon2_opening_points.cc
│ │ │ ├── baby_bear_poseidon2_opening_points.h
│ │ │ ├── baby_bear_poseidon2_opening_points_type_traits.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri.cc
│ │ │ ├── baby_bear_poseidon2_two_adic_fri.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri_type_traits.h
│ │ │ ├── baby_bear_poseidon2_two_adic_fri_unittest.cc
│ │ │ ├── block.h
│ │ │ └── block_unittest.cc
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_blinder.cc
│ │ │ ├── bn254_blinder.h
│ │ │ └── bn254_blinder_type_traits.h
│ │ └── plonk/
│ │ ├── BUILD.bazel
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_constraint_system.cc
│ │ │ ├── bn254_constraint_system.h
│ │ │ ├── bn254_constraint_system_type_traits.h
│ │ │ ├── bn254_constraint_system_unittest.cc
│ │ │ ├── column_key.h
│ │ │ ├── column_type.h
│ │ │ └── phase.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bn254_argument_data.cc
│ │ │ ├── bn254_argument_data.h
│ │ │ ├── bn254_argument_data_type_traits.h
│ │ │ ├── bn254_instance_columns_vec.cc
│ │ │ ├── bn254_instance_columns_vec.h
│ │ │ ├── bn254_instance_columns_vec_type_traits.h
│ │ │ ├── bn254_prover.cc
│ │ │ ├── bn254_prover.h
│ │ │ ├── bn254_prover_unittest.cc
│ │ │ ├── bn254_ps.h
│ │ │ ├── bn254_transcript.cc
│ │ │ ├── bn254_transcript.h
│ │ │ ├── bn254_transcript_unittest.cc
│ │ │ ├── bn254_verifier.cc
│ │ │ ├── bn254_verifier.h
│ │ │ ├── buffer_reader.h
│ │ │ ├── constants.h
│ │ │ ├── kzg_family_prover_impl.h
│ │ │ ├── prover_impl_base.h
│ │ │ ├── prover_replay.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── bn254_halo2_params_data.h
│ │ │ ├── verifier_impl.h
│ │ │ └── verifier_replay.cc
│ │ └── keys/
│ │ ├── BUILD.bazel
│ │ ├── bn254_plonk_proving_key.cc
│ │ ├── bn254_plonk_proving_key.h
│ │ ├── bn254_plonk_proving_key_unittest.cc
│ │ ├── bn254_plonk_verifying_key.cc
│ │ ├── bn254_plonk_verifying_key.h
│ │ ├── bn254_plonk_verifying_key_type_traits.h
│ │ ├── bn254_plonk_verifying_key_unittest.cc
│ │ └── proving_key_impl.h
│ ├── cc/
│ │ ├── BUILD.bazel
│ │ ├── api.h
│ │ ├── export.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── g1.cc.tpl
│ │ │ │ │ ├── g1.h.tpl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ ├── prime_field.cc.tpl
│ │ │ │ │ └── prime_field.h.tpl
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ └── projective_point_unittest.cc
│ │ │ └── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ └── prime_field_unittest.cc
│ │ ├── version.bzl
│ │ ├── version.cc
│ │ ├── version.h
│ │ └── version_unittest.cc
│ ├── crypto/
│ │ ├── challenger/
│ │ │ ├── BUILD.bazel
│ │ │ ├── challenger.h
│ │ │ ├── challenger_traits_forward.h
│ │ │ ├── duplex_challenger.h
│ │ │ ├── duplex_challenger_unittest.cc
│ │ │ ├── hash_challenger.h
│ │ │ ├── hash_challenger_unittest.cc
│ │ │ ├── multi_field32_challenger.h
│ │ │ ├── multi_field32_challenger_unittest.cc
│ │ │ └── multi_field32_conversions.h
│ │ ├── commitments/
│ │ │ ├── BUILD.bazel
│ │ │ ├── batch_commitment_state.h
│ │ │ ├── fri/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── fri_config.h
│ │ │ │ ├── fri_config_unittest.cc
│ │ │ │ ├── fri_proof.h
│ │ │ │ ├── lagrange_selectors.h
│ │ │ │ ├── prove.h
│ │ │ │ ├── simple_fri.h
│ │ │ │ ├── simple_fri_proof.h
│ │ │ │ ├── simple_fri_storage.h
│ │ │ │ ├── simple_fri_unittest.cc
│ │ │ │ ├── two_adic_fri.h
│ │ │ │ ├── two_adic_fri_unittest.cc
│ │ │ │ ├── two_adic_multiplicative_coset.h
│ │ │ │ ├── two_adic_multiplicative_coset_unittest.cc
│ │ │ │ └── verify.h
│ │ │ ├── kzg/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── gwc.h
│ │ │ │ ├── gwc_unittest.cc
│ │ │ │ ├── kzg.h
│ │ │ │ ├── kzg_family.h
│ │ │ │ ├── kzg_family_test.h
│ │ │ │ ├── kzg_unittest.cc
│ │ │ │ ├── shplonk.h
│ │ │ │ └── shplonk_unittest.cc
│ │ │ ├── merkle_tree/
│ │ │ │ ├── binary_merkle_tree/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── binary_merkle_hasher.h
│ │ │ │ │ ├── binary_merkle_proof.h
│ │ │ │ │ ├── binary_merkle_tree.h
│ │ │ │ │ ├── binary_merkle_tree_storage.h
│ │ │ │ │ ├── binary_merkle_tree_unittest.cc
│ │ │ │ │ └── simple_binary_merkle_tree_storage.h
│ │ │ │ └── field_merkle_tree/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── extension_field_merkle_tree_mmcs.h
│ │ │ │ ├── extension_field_merkle_tree_mmcs_unittest.cc
│ │ │ │ ├── field_merkle_tree.h
│ │ │ │ ├── field_merkle_tree_gpu_unittest.cc
│ │ │ │ ├── field_merkle_tree_mmcs.h
│ │ │ │ ├── field_merkle_tree_mmcs_unittest.cc
│ │ │ │ ├── field_merkle_tree_unittest.cc
│ │ │ │ └── icicle/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── icicle_mmcs.h
│ │ │ │ ├── icicle_mmcs_baby_bear.cc
│ │ │ │ ├── icicle_mmcs_baby_bear.h
│ │ │ │ ├── icicle_mmcs_bn254.cc
│ │ │ │ ├── icicle_mmcs_bn254.h
│ │ │ │ └── icicle_mmcs_holder.h
│ │ │ ├── mixed_matrix_commitment_scheme.h
│ │ │ ├── mixed_matrix_commitment_scheme_traits_forward.h
│ │ │ ├── pedersen/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── pedersen.h
│ │ │ │ └── pedersen_unittest.cc
│ │ │ ├── polynomial_openings.h
│ │ │ ├── polynomial_openings_unittest.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bn254_kzg_polynomial_openings.h
│ │ │ │ └── bn254_kzg_polynomial_openings.json
│ │ │ ├── univariate_polynomial_commitment_scheme.h
│ │ │ ├── vector_commitment_scheme.h
│ │ │ └── vector_commitment_scheme_traits_forward.h
│ │ ├── hashes/
│ │ │ ├── BUILD.bazel
│ │ │ ├── compressor.h
│ │ │ ├── hasher.h
│ │ │ ├── prime_field_serializable.h
│ │ │ ├── prime_field_serializable_unittest.cc
│ │ │ └── sponge/
│ │ │ ├── BUILD.bazel
│ │ │ ├── duplex_sponge_mode.h
│ │ │ ├── duplex_sponge_mode_unittest.cc
│ │ │ ├── padding_free_sponge.h
│ │ │ ├── padding_free_sponge_unittest.cc
│ │ │ ├── poseidon/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── poseidon.h
│ │ │ │ ├── poseidon_config.h
│ │ │ │ ├── poseidon_config_base.h
│ │ │ │ ├── poseidon_config_entry.h
│ │ │ │ ├── poseidon_config_entry_base.h
│ │ │ │ ├── poseidon_config_unittest.cc
│ │ │ │ ├── poseidon_grain_lfsr.h
│ │ │ │ ├── poseidon_grain_lfsr_unittest.cc
│ │ │ │ ├── poseidon_params.h
│ │ │ │ ├── poseidon_sponge_base.h
│ │ │ │ ├── poseidon_unittest.cc
│ │ │ │ ├── sparse_mds_matrix.h
│ │ │ │ └── sparse_mds_matrix_unittest.cc
│ │ │ ├── poseidon2/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── icicle/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── icicle_poseidon2.h
│ │ │ │ │ ├── icicle_poseidon2_baby_bear.cc
│ │ │ │ │ ├── icicle_poseidon2_baby_bear.h
│ │ │ │ │ ├── icicle_poseidon2_bn254.cc
│ │ │ │ │ ├── icicle_poseidon2_bn254.h
│ │ │ │ │ └── icicle_poseidon2_holder.h
│ │ │ │ ├── param_traits/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── poseidon2_baby_bear.h
│ │ │ │ │ ├── poseidon2_bls12_381.h
│ │ │ │ │ ├── poseidon2_bn254.h
│ │ │ │ │ ├── poseidon2_goldilocks.h
│ │ │ │ │ ├── poseidon2_koala_bear.h
│ │ │ │ │ ├── poseidon2_mersenne31.h
│ │ │ │ │ ├── poseidon2_pallas.h
│ │ │ │ │ └── poseidon2_vesta.h
│ │ │ │ ├── poseidon2.h
│ │ │ │ ├── poseidon2_config.h
│ │ │ │ ├── poseidon2_config_entry.h
│ │ │ │ ├── poseidon2_external_matrix.h
│ │ │ │ ├── poseidon2_external_matrix_traits_forward.h
│ │ │ │ ├── poseidon2_external_matrix_unittest.cc
│ │ │ │ ├── poseidon2_gpu_unittest.cc
│ │ │ │ ├── poseidon2_horizen_external_matrix.h
│ │ │ │ ├── poseidon2_horizen_internal_matrix.h
│ │ │ │ ├── poseidon2_internal_matrix_unittest.cc
│ │ │ │ ├── poseidon2_param_traits_forward.h
│ │ │ │ ├── poseidon2_params.h
│ │ │ │ ├── poseidon2_plonky3_external_matrix.h
│ │ │ │ ├── poseidon2_plonky3_internal_matrix.h
│ │ │ │ ├── poseidon2_unittest.cc
│ │ │ │ ├── poseidon2_vendor.cc
│ │ │ │ └── poseidon2_vendor.h
│ │ │ ├── sponge.h
│ │ │ ├── sponge_state.h
│ │ │ ├── truncated_permutation.h
│ │ │ └── truncated_permutation_unittest.cc
│ │ ├── random/
│ │ │ ├── BUILD.bazel
│ │ │ ├── block_rng.h
│ │ │ ├── cha_cha20/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cha_cha20_rng.h
│ │ │ │ └── cha_cha20_rng_unittest.cc
│ │ │ ├── rng.h
│ │ │ ├── rng_type.h
│ │ │ └── xor_shift/
│ │ │ ├── BUILD.bazel
│ │ │ ├── xor_shift_rng.h
│ │ │ └── xor_shift_rng_unittest.cc
│ │ ├── sumcheck/
│ │ │ └── multilinear/
│ │ │ ├── BUILD.bazel
│ │ │ ├── multilinear_sumcheck.h
│ │ │ ├── multilinear_sumcheck_unittest.cc
│ │ │ ├── sumcheck_prover.h
│ │ │ ├── sumcheck_prover_msg.h
│ │ │ ├── sumcheck_prover_msg_unittest.cc
│ │ │ ├── sumcheck_proving_key.h
│ │ │ ├── sumcheck_proving_key_unittest.cc
│ │ │ ├── sumcheck_verifier.h
│ │ │ ├── sumcheck_verifier_msg.h
│ │ │ ├── sumcheck_verifier_msg_unittest.cc
│ │ │ ├── sumcheck_verifying_key.h
│ │ │ └── sumcheck_verifying_key_unittest.cc
│ │ └── transcripts/
│ │ ├── BUILD.bazel
│ │ ├── simple_transcript.h
│ │ ├── transcript.h
│ │ └── transcript_traits.h
│ ├── device/
│ │ ├── BUILD.bazel
│ │ ├── allocator.cc
│ │ ├── allocator.h
│ │ ├── allocator_registry.cc
│ │ ├── allocator_registry.h
│ │ ├── gpu/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cuda/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cub_helper.h
│ │ │ │ ├── cuda_driver.cc
│ │ │ │ ├── cuda_driver.h
│ │ │ │ ├── cuda_driver_unittest.cc
│ │ │ │ └── cuda_memory.h
│ │ │ ├── device_perf_info.cc
│ │ │ ├── device_perf_info.h
│ │ │ ├── gpu_cudamallocasync_allocator.cc
│ │ │ ├── gpu_cudamallocasync_allocator.h
│ │ │ ├── gpu_device_functions.h
│ │ │ ├── gpu_driver.cc
│ │ │ ├── gpu_driver.h
│ │ │ ├── gpu_enums.h
│ │ │ ├── gpu_info.cc
│ │ │ ├── gpu_info.h
│ │ │ ├── gpu_init.cc
│ │ │ ├── gpu_init.h
│ │ │ ├── gpu_logging.cc
│ │ │ ├── gpu_logging.h
│ │ │ ├── gpu_memory.cc
│ │ │ ├── gpu_memory.h
│ │ │ ├── gpu_memory_unittest.cc
│ │ │ ├── gpu_types.h
│ │ │ ├── gpu_util.cc
│ │ │ ├── gpu_util.h
│ │ │ ├── platform_device_id.h
│ │ │ ├── scoped_event.cc
│ │ │ ├── scoped_event.h
│ │ │ ├── scoped_mem_pool.cc
│ │ │ ├── scoped_mem_pool.h
│ │ │ ├── scoped_stream.cc
│ │ │ └── scoped_stream.h
│ │ ├── numa.cc
│ │ ├── numa.h
│ │ ├── numa_unittest.cc
│ │ ├── tracking_allocator.cc
│ │ └── tracking_allocator.h
│ ├── examples/
│ │ ├── BUILD.bazel
│ │ ├── cuda_example.cu.cc
│ │ └── version.cc
│ ├── export.h
│ ├── math/
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── arithmetics.h
│ │ │ ├── arithmetics_results.h
│ │ │ ├── arithmetics_unittest.cc
│ │ │ ├── batch_inverse_benchmark.cc
│ │ │ ├── big_int.cc
│ │ │ ├── big_int.h
│ │ │ ├── big_int_unittest.cc
│ │ │ ├── bit_iterator.h
│ │ │ ├── bit_iterator_unittest.cc
│ │ │ ├── bit_traits_forward.h
│ │ │ ├── byinverter.h
│ │ │ ├── byinverter_unittest.cc
│ │ │ ├── const_init.h
│ │ │ ├── egcd.h
│ │ │ ├── egcd_unittest.cc
│ │ │ ├── field.h
│ │ │ ├── field_unittest.cc
│ │ │ ├── gmp/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bit_traits.h
│ │ │ │ ├── gmp.bzl
│ │ │ │ ├── gmp_util.cc
│ │ │ │ ├── gmp_util.h
│ │ │ │ ├── gmp_util_unittest.cc
│ │ │ │ └── signed_value.h
│ │ │ ├── groups.h
│ │ │ ├── groups_unittest.cc
│ │ │ ├── parallelize_threshold.h
│ │ │ ├── rational_field.h
│ │ │ ├── rational_field_unittest.cc
│ │ │ ├── ring.h
│ │ │ ├── semigroups.h
│ │ │ ├── semigroups_unittest.cc
│ │ │ ├── sign.cc
│ │ │ ├── sign.h
│ │ │ ├── sign_unittest.cc
│ │ │ ├── simd_int.h
│ │ │ ├── simd_int128_arm64.cc
│ │ │ ├── simd_int128_x86.cc
│ │ │ ├── simd_int256_x86.cc
│ │ │ ├── simd_int512_x86.cc
│ │ │ └── simd_int_unittest.cc
│ │ ├── circle/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.h
│ │ │ ├── affine_point_unittest.cc
│ │ │ ├── circle.h
│ │ │ ├── circle_traits_forward.h
│ │ │ ├── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── cpu.h.tpl
│ │ │ │ └── generator.cc
│ │ │ └── m31/
│ │ │ └── BUILD.bazel
│ │ ├── elliptic_curves/
│ │ │ ├── BUILD.bazel
│ │ │ ├── bls12/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bls12_curve.h
│ │ │ │ ├── g2_prepared.h
│ │ │ │ └── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── curve.h.tpl
│ │ │ │ └── generator.cc
│ │ │ ├── bn/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── bn254/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── halo2/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── bn254.cc
│ │ │ │ │ └── bn254.h
│ │ │ │ ├── bn384_small_two_adicity/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn_curve.h
│ │ │ │ ├── g2_prepared.h
│ │ │ │ └── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── curve.h.tpl
│ │ │ │ └── generator.cc
│ │ │ ├── msm/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── algorithms/
│ │ │ │ │ ├── icicle/
│ │ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ │ ├── icicle_msm.h
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g1.cc
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g1.h
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g2.cc
│ │ │ │ │ │ ├── icicle_msm_bls12_381_g2.h
│ │ │ │ │ │ ├── icicle_msm_bn254_g1.cc
│ │ │ │ │ │ ├── icicle_msm_bn254_g1.h
│ │ │ │ │ │ ├── icicle_msm_bn254_g2.cc
│ │ │ │ │ │ ├── icicle_msm_bn254_g2.h
│ │ │ │ │ │ ├── icicle_msm_utils.cc
│ │ │ │ │ │ └── icicle_msm_utils.h
│ │ │ │ │ └── pippenger/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── pippenger.h
│ │ │ │ │ ├── pippenger_adapter.h
│ │ │ │ │ ├── pippenger_adapter_benchmark.cc
│ │ │ │ │ ├── pippenger_adapter_unittest.cc
│ │ │ │ │ ├── pippenger_base.h
│ │ │ │ │ ├── pippenger_benchmark.cc
│ │ │ │ │ └── pippenger_unittest.cc
│ │ │ │ ├── fixed_base_msm.h
│ │ │ │ ├── fixed_base_msm_unittest.cc
│ │ │ │ ├── glv.h
│ │ │ │ ├── glv_unittest.cc
│ │ │ │ ├── msm_ctx.h
│ │ │ │ ├── msm_util.h
│ │ │ │ ├── test/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── fixed_base_msm_test_set.h
│ │ │ │ │ └── variable_base_msm_test_set.h
│ │ │ │ ├── variable_base_msm.h
│ │ │ │ ├── variable_base_msm_gpu.h
│ │ │ │ ├── variable_base_msm_gpu_unittest.cc
│ │ │ │ └── variable_base_msm_unittest.cc
│ │ │ ├── pairing/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── ell_coeff.h
│ │ │ │ ├── g2_prepared_base.h
│ │ │ │ ├── g2_projective.h
│ │ │ │ ├── pairing.h
│ │ │ │ ├── pairing_friendly_curve.h
│ │ │ │ ├── pairing_unittest.cc
│ │ │ │ └── twist_type.h
│ │ │ ├── pasta/
│ │ │ │ ├── pallas/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ └── vesta/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── secp/
│ │ │ │ └── secp256k1/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── semigroups.h
│ │ │ ├── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── affine_point_correctness_gpu_test.cc
│ │ │ │ ├── affine_point_impl.h
│ │ │ │ ├── affine_point_unittest.cc
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── cpu.h.tpl
│ │ │ │ │ ├── generator.cc
│ │ │ │ │ └── gpu.h.tpl
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── jacobian_point_impl.h
│ │ │ │ ├── jacobian_point_unittest.cc
│ │ │ │ ├── kernels/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ └── elliptic_curve_ops.cu.h
│ │ │ │ ├── non_affine_point_correctness_gpu_test.cc
│ │ │ │ ├── point_xyzz.h
│ │ │ │ ├── point_xyzz_impl.h
│ │ │ │ ├── point_xyzz_unittest.cc
│ │ │ │ ├── projective_point.h
│ │ │ │ ├── projective_point_impl.h
│ │ │ │ ├── projective_point_unittest.cc
│ │ │ │ ├── sw_curve.h
│ │ │ │ ├── sw_curve_traits_forward.h
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── sw_curve_config.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ └── random.h
│ │ ├── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ ├── baby_bear/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── baby_bear.h
│ │ │ │ ├── baby_bear4.h
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_baby_bear.h
│ │ │ │ │ ├── packed_baby_bear_avx2.cc
│ │ │ │ │ ├── packed_baby_bear_avx2.h
│ │ │ │ │ ├── packed_baby_bear_avx512.cc
│ │ │ │ │ ├── packed_baby_bear_avx512.h
│ │ │ │ │ ├── packed_baby_bear_neon.cc
│ │ │ │ │ └── packed_baby_bear_neon.h
│ │ │ │ └── packed_baby_bear4.h
│ │ │ ├── binary_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── binary_field.h
│ │ │ │ ├── binary_field_traits_forward.h
│ │ │ │ ├── binary_fields.h
│ │ │ │ ├── binary_fields_unittest.cc
│ │ │ │ └── binary_tower_operations.h
│ │ │ ├── carry_chain.h
│ │ │ ├── cubic_extension_field.h
│ │ │ ├── cubic_extension_field_unittest.cc
│ │ │ ├── cyclotomic_multiplicative_subgroup.h
│ │ │ ├── extended_packed_field_traits_forward.h
│ │ │ ├── extension_field_base.h
│ │ │ ├── extension_field_traits_forward.h
│ │ │ ├── finite_field.h
│ │ │ ├── finite_field_forwards.h
│ │ │ ├── finite_field_traits.h
│ │ │ ├── finite_field_unittest.cc
│ │ │ ├── fp12.h
│ │ │ ├── fp12_unittest.cc
│ │ │ ├── fp2.h
│ │ │ ├── fp2_unittest.cc
│ │ │ ├── fp3.h
│ │ │ ├── fp4.h
│ │ │ ├── fp6.h
│ │ │ ├── fp6_unittest.cc
│ │ │ ├── generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── binary_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── binary_field_config.h.tpl
│ │ │ │ │ ├── binary_field_cpu.h.tpl
│ │ │ │ │ ├── binary_field_generator.cc
│ │ │ │ │ ├── binary_field_gpu.h.tpl
│ │ │ │ │ └── build_defs.bzl
│ │ │ │ ├── ext_field_generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ ├── ext_field_generator.cc
│ │ │ │ │ └── fp.h.tpl
│ │ │ │ ├── generator_util.cc
│ │ │ │ ├── generator_util.h
│ │ │ │ └── prime_field_generator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── build_defs.bzl
│ │ │ │ ├── fail.cc.tpl
│ │ │ │ ├── fail.h.tpl
│ │ │ │ ├── prime_field_config.cc.tpl
│ │ │ │ ├── prime_field_config.h.tpl
│ │ │ │ ├── prime_field_cpu.h.tpl
│ │ │ │ ├── prime_field_generator.cc
│ │ │ │ ├── prime_field_gpu.h.tpl
│ │ │ │ ├── prime_field_x86.h.tpl
│ │ │ │ ├── small_prime_field_config.cc.tpl
│ │ │ │ ├── small_prime_field_config.h.tpl
│ │ │ │ ├── small_prime_field_cpu.h.tpl
│ │ │ │ └── small_prime_field_gpu.h.tpl
│ │ │ ├── goldilocks/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── goldilocks.h
│ │ │ │ ├── goldilocks_unittest.cc
│ │ │ │ └── internal/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── goldilocks_prime_field_x86_special.cc
│ │ │ │ └── goldilocks_prime_field_x86_special.h
│ │ │ ├── kernels/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── carry_chain.h
│ │ │ │ ├── prime_field_ops.cu.h
│ │ │ │ └── prime_field_ops_internal.cu.h
│ │ │ ├── koala_bear/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_koala_bear.h
│ │ │ │ │ ├── packed_koala_bear_avx2.cc
│ │ │ │ │ ├── packed_koala_bear_avx2.h
│ │ │ │ │ ├── packed_koala_bear_avx512.cc
│ │ │ │ │ ├── packed_koala_bear_avx512.h
│ │ │ │ │ ├── packed_koala_bear_neon.cc
│ │ │ │ │ └── packed_koala_bear_neon.h
│ │ │ │ ├── koala_bear.h
│ │ │ │ ├── koala_bear4.h
│ │ │ │ └── packed_koala_bear4.h
│ │ │ ├── legendre_symbol.h
│ │ │ ├── mersenne31/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── internal/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── packed_mersenne31.h
│ │ │ │ │ ├── packed_mersenne31_avx2.cc
│ │ │ │ │ ├── packed_mersenne31_avx2.h
│ │ │ │ │ ├── packed_mersenne31_avx512.cc
│ │ │ │ │ ├── packed_mersenne31_avx512.h
│ │ │ │ │ ├── packed_mersenne31_neon.cc
│ │ │ │ │ └── packed_mersenne31_neon.h
│ │ │ │ └── mersenne31.h
│ │ │ ├── modulus.h
│ │ │ ├── modulus_unittest.cc
│ │ │ ├── packed_field_traits_forward.h
│ │ │ ├── packed_prime_field32_avx2.h
│ │ │ ├── packed_prime_field32_avx512.h
│ │ │ ├── packed_prime_field32_neon.h
│ │ │ ├── packed_prime_field_base.h
│ │ │ ├── packed_prime_field_unittest.cc
│ │ │ ├── prime_field_base.h
│ │ │ ├── prime_field_base_unittest.cc
│ │ │ ├── prime_field_conversions.h
│ │ │ ├── prime_field_correctness_gpu_test.cc
│ │ │ ├── prime_field_fallback.h
│ │ │ ├── prime_field_generator_unittest.cc
│ │ │ ├── prime_field_gpu.h
│ │ │ ├── prime_field_gpu_debug.h
│ │ │ ├── prime_field_gpu_unittest.cc
│ │ │ ├── prime_field_ops_internal.h
│ │ │ ├── prime_field_unittest.cc
│ │ │ ├── prime_field_util.cc
│ │ │ ├── prime_field_util.h
│ │ │ ├── quadratic_extension_field.h
│ │ │ ├── quadratic_extension_field_unittest.cc
│ │ │ ├── quartic_extension_field.h
│ │ │ ├── quartic_extension_field_unittest.cc
│ │ │ ├── small_prime_field.h
│ │ │ ├── small_prime_field_mont.h
│ │ │ ├── square_root_algorithms/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── shanks.h
│ │ │ │ └── tonelli_shanks.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ └── finite_field_test.h
│ │ ├── geometry/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point.h
│ │ │ ├── curve_type.h
│ │ │ ├── dimensions.h
│ │ │ ├── dimensions_unittest.cc
│ │ │ ├── jacobian_point.h
│ │ │ ├── point2.h
│ │ │ ├── point2_unittest.cc
│ │ │ ├── point3.h
│ │ │ ├── point3_unittest.cc
│ │ │ ├── point4.h
│ │ │ ├── point4_unittest.cc
│ │ │ ├── point_conversions.h
│ │ │ ├── point_conversions_forward.h
│ │ │ ├── point_xyzz.h
│ │ │ └── projective_point.h
│ │ ├── matrix/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cost_calculator_forward.h
│ │ │ ├── gmp_num_traits.h
│ │ │ ├── matrix_inverse_unittest.cc
│ │ │ ├── matrix_operations.h
│ │ │ ├── matrix_operations_benchmark.cc
│ │ │ ├── matrix_operations_unittest.cc
│ │ │ ├── matrix_types.h
│ │ │ ├── matrix_types_unittest.cc
│ │ │ ├── matrix_utils.h
│ │ │ ├── matrix_utils_unittest.cc
│ │ │ ├── prime_field_num_traits.h
│ │ │ └── sparse/
│ │ │ ├── BUILD.bazel
│ │ │ ├── sparse_matrix.h
│ │ │ └── sparse_matrix_unittest.cc
│ │ ├── polynomials/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluation_domain.h
│ │ │ ├── multivariate/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── linear_combination.h
│ │ │ │ ├── linear_combination_term.h
│ │ │ │ ├── linear_combination_unittest.cc
│ │ │ │ ├── multilinear_dense_evaluations.h
│ │ │ │ ├── multilinear_dense_evaluations_unittest.cc
│ │ │ │ ├── multilinear_extension.h
│ │ │ │ ├── multilinear_extension_ops.h
│ │ │ │ ├── multivariate_polynomial.h
│ │ │ │ ├── multivariate_polynomial_ops.h
│ │ │ │ ├── multivariate_polynomial_unittest.cc
│ │ │ │ ├── multivariate_sparse_coefficients.h
│ │ │ │ └── support_poly_operators.h
│ │ │ ├── polynomial.h
│ │ │ ├── polynomial_traits_forward.h
│ │ │ ├── support_poly_operators.h
│ │ │ └── univariate/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluations_utils.h
│ │ │ ├── fft_algorithm.cc
│ │ │ ├── fft_algorithm.h
│ │ │ ├── icicle/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── fft_algorithm_conversion.cc
│ │ │ │ ├── fft_algorithm_conversion.h
│ │ │ │ ├── icicle_ntt.h
│ │ │ │ ├── icicle_ntt_baby_bear.cc
│ │ │ │ ├── icicle_ntt_baby_bear.h
│ │ │ │ ├── icicle_ntt_bls12_381.cc
│ │ │ │ ├── icicle_ntt_bls12_381.h
│ │ │ │ ├── icicle_ntt_bn254.cc
│ │ │ │ ├── icicle_ntt_bn254.h
│ │ │ │ └── icicle_ntt_holder.h
│ │ │ ├── lagrange_interpolation.h
│ │ │ ├── lagrange_interpolation_unittest.cc
│ │ │ ├── mixed_radix_evaluation_domain.h
│ │ │ ├── naive_batch_fft.h
│ │ │ ├── radix2_evaluation_domain.h
│ │ │ ├── radix2_evaluation_domain_unittest.cc
│ │ │ ├── radix2_twiddle_cache.h
│ │ │ ├── support_poly_operators.h
│ │ │ ├── two_adic_subgroup.h
│ │ │ ├── two_adic_subgroup_traits_forward.h
│ │ │ ├── univariate_dense_coefficients.h
│ │ │ ├── univariate_dense_polynomial_unittest.cc
│ │ │ ├── univariate_evaluation_domain.h
│ │ │ ├── univariate_evaluation_domain_factory.h
│ │ │ ├── univariate_evaluation_domain_forwards.h
│ │ │ ├── univariate_evaluation_domain_gpu_unittest.cc
│ │ │ ├── univariate_evaluation_domain_unittest.cc
│ │ │ ├── univariate_evaluations.h
│ │ │ ├── univariate_evaluations_ops.h
│ │ │ ├── univariate_evaluations_unittest.cc
│ │ │ ├── univariate_polynomial.h
│ │ │ ├── univariate_polynomial_ops.h
│ │ │ ├── univariate_sparse_coefficients.h
│ │ │ └── univariate_sparse_polynomial_unittest.cc
│ │ └── test/
│ │ ├── BUILD.bazel
│ │ └── launch_op_macros.h
│ ├── node/
│ │ ├── BUILD.bazel
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── node_constructors.cc
│ │ │ ├── node_constructors.h
│ │ │ ├── node_cpp_bindable.cc
│ │ │ ├── node_cpp_bindable.h
│ │ │ ├── node_cpp_callable.h
│ │ │ ├── node_cpp_callable_data.h
│ │ │ ├── node_cpp_class.h
│ │ │ ├── node_cpp_constructor.cc
│ │ │ ├── node_cpp_constructor.h
│ │ │ ├── node_cpp_constructor_matcher.h
│ │ │ ├── node_cpp_enum.h
│ │ │ ├── node_cpp_object.h
│ │ │ ├── node_errors.cc
│ │ │ ├── node_errors.h
│ │ │ ├── node_internals.h
│ │ │ ├── node_internals_forwards.h
│ │ │ ├── node_module.cc
│ │ │ ├── node_module.h
│ │ │ └── test/
│ │ │ ├── BUILD.bazel
│ │ │ ├── color.cc
│ │ │ ├── color.h
│ │ │ ├── enum.cc
│ │ │ ├── function.cc
│ │ │ ├── point.cc
│ │ │ ├── point.h
│ │ │ └── test.cc
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── base/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── big_int.h
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ └── generator.cc
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── point_xyzz.h
│ │ │ │ └── projective_point.h
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── prime_field.h
│ │ │ ├── math.cc
│ │ │ └── math.h
│ │ ├── tachyon.cc
│ │ └── test/
│ │ ├── .aspect/
│ │ │ └── rules/
│ │ │ └── external_repository_action_cache/
│ │ │ └── npm_translate_lock_LTIxMDEzMjgwMDY=
│ │ ├── .bazelignore
│ │ ├── .bazelrc
│ │ ├── .bazelversion
│ │ ├── .prettierrc.js
│ │ ├── .swcrc
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── WORKSPACE
│ │ ├── bazel/
│ │ │ ├── BUILD.bazel
│ │ │ ├── tachyon_jest.bzl
│ │ │ └── tachyon_ts.bzl
│ │ ├── bazelignore
│ │ ├── jest.config.js
│ │ ├── package.json
│ │ ├── src/
│ │ │ ├── base/
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── class.spec.ts
│ │ │ │ ├── enum.spec.ts
│ │ │ │ └── function.spec.ts
│ │ │ └── math/
│ │ │ ├── elliptic_curves/
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.spec.ts
│ │ │ │ ├── jacobian_point.spec.ts
│ │ │ │ ├── point_xyzz.spec.ts
│ │ │ │ └── projective_point.spec.ts
│ │ │ └── finite_fields/
│ │ │ ├── BUILD.bazel
│ │ │ └── prime_field.spec.ts
│ │ └── tsconfig.json
│ ├── py/
│ │ ├── BUILD.bazel
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ └── pybind11.h
│ │ ├── math/
│ │ │ ├── BUILD.bazel
│ │ │ ├── base/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── big_int.h
│ │ │ ├── elliptic_curves/
│ │ │ │ ├── bls12/
│ │ │ │ │ └── bls12_381/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── bn/
│ │ │ │ │ └── bn254/
│ │ │ │ │ └── BUILD.bazel
│ │ │ │ ├── generator/
│ │ │ │ │ ├── BUILD.bazel
│ │ │ │ │ ├── build_defs.bzl
│ │ │ │ │ └── generator.cc
│ │ │ │ └── short_weierstrass/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── affine_point.h
│ │ │ │ ├── jacobian_point.h
│ │ │ │ ├── point_xyzz.h
│ │ │ │ └── projective_point.h
│ │ │ ├── finite_fields/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── prime_field.h
│ │ │ ├── math.cc
│ │ │ └── math.h
│ │ ├── tachyon.cc
│ │ └── test/
│ │ ├── .bazelrc
│ │ ├── .bazelversion
│ │ ├── BUILD.bazel
│ │ ├── WORKSPACE
│ │ ├── bazel/
│ │ │ ├── BUILD.bazel
│ │ │ └── tachyon_py.bzl
│ │ ├── requirements_lock.txt
│ │ └── tachyon/
│ │ └── math/
│ │ ├── elliptic_curves/
│ │ │ └── short_weierstrass/
│ │ │ ├── BUILD.bazel
│ │ │ ├── affine_point_unittest.py
│ │ │ ├── jacobian_point_unittest.py
│ │ │ ├── point_xyzz_unittest.py
│ │ │ ├── projective_point_unittest.py
│ │ │ └── short_weierstrass_unittests.py
│ │ └── finite_fields/
│ │ ├── BUILD.bazel
│ │ ├── finite_fields_unittests.py
│ │ └── prime_field_unittest.py
│ ├── rs/
│ │ ├── BUILD.bazel
│ │ ├── Cargo.toml
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── container_util.h
│ │ │ └── rust_vec.h
│ │ └── src/
│ │ ├── lib.rs
│ │ └── math/
│ │ ├── base/
│ │ │ └── mod.rs
│ │ ├── elliptic_curves/
│ │ │ ├── bn/
│ │ │ │ ├── bn254/
│ │ │ │ │ └── mod.rs
│ │ │ │ └── mod.rs
│ │ │ ├── mod.rs
│ │ │ └── short_weierstrass/
│ │ │ └── mod.rs
│ │ ├── finite_fields/
│ │ │ ├── baby_bear/
│ │ │ │ └── mod.rs
│ │ │ └── mod.rs
│ │ ├── geometry/
│ │ │ └── mod.rs
│ │ └── mod.rs
│ ├── version.cc
│ ├── version.h
│ ├── version_unittest.cc
│ └── zk/
│ ├── air/
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ └── variable.h
│ │ └── expressions/
│ │ ├── BUILD.bazel
│ │ ├── air_evaluator.h
│ │ ├── expression_factory.h
│ │ ├── first_row_expression.h
│ │ ├── last_row_expression.h
│ │ ├── transition_expression.h
│ │ └── variable_expression.h
│ ├── base/
│ │ ├── BUILD.bazel
│ │ ├── blinded_polynomial.h
│ │ ├── blinder.h
│ │ ├── blinder_unittest.cc
│ │ ├── commitments/
│ │ │ ├── BUILD.bazel
│ │ │ ├── gwc_extension.h
│ │ │ ├── shplonk_extension.h
│ │ │ ├── univariate_polynomial_commitment_scheme_extension.h
│ │ │ └── univariate_polynomial_commitment_scheme_extension_traits_forward.h
│ │ ├── entities/
│ │ │ ├── BUILD.bazel
│ │ │ ├── entity.h
│ │ │ ├── prover_base.h
│ │ │ └── verifier_base.h
│ │ ├── nested_for_loop_openmp_benchmark.cc
│ │ ├── parallelize_benchmark.cc
│ │ ├── random_field_generator_base.h
│ │ ├── rotation.h
│ │ ├── rotation_unittest.cc
│ │ ├── row_types.h
│ │ ├── value.h
│ │ └── value_unittest.cc
│ ├── expressions/
│ │ ├── BUILD.bazel
│ │ ├── constant_expression.h
│ │ ├── constant_expression_unittest.cc
│ │ ├── evaluator.h
│ │ ├── expression.h
│ │ ├── expression_factory.h
│ │ ├── expression_type.cc
│ │ ├── expression_type.h
│ │ ├── expression_unittest.cc
│ │ ├── negated_expression.h
│ │ ├── negated_expression_unittest.cc
│ │ ├── product_expression.h
│ │ ├── product_expression_unittest.cc
│ │ ├── scaled_expression.h
│ │ ├── scaled_expression_unittest.cc
│ │ ├── sum_expression.h
│ │ └── sum_expression_unittest.cc
│ ├── lookup/
│ │ ├── BUILD.bazel
│ │ ├── argument.h
│ │ ├── evaluator.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluator.h
│ │ │ ├── opening_point_set.h
│ │ │ ├── permute_expression_pair.h
│ │ │ ├── permute_expression_pair_unittest.cc
│ │ │ ├── prover.h
│ │ │ ├── prover_impl.h
│ │ │ ├── scheme.h
│ │ │ ├── utils.h
│ │ │ ├── verifier.h
│ │ │ └── verifier_data.h
│ │ ├── log_derivative_halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── evaluator.h
│ │ │ ├── prover.h
│ │ │ ├── prover_impl.h
│ │ │ ├── scheme.h
│ │ │ ├── verifier.h
│ │ │ └── verifier_data.h
│ │ ├── pair.h
│ │ ├── prover.h
│ │ ├── type.h
│ │ └── verifier.h
│ ├── plonk/
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── column_key.h
│ │ │ ├── column_key_unittest.cc
│ │ │ ├── column_type.cc
│ │ │ ├── column_type.h
│ │ │ ├── l_values.h
│ │ │ ├── multi_phase_evaluations.h
│ │ │ ├── multi_phase_owned_table.h
│ │ │ ├── multi_phase_ref_table.h
│ │ │ ├── owned_table.h
│ │ │ ├── phase.h
│ │ │ ├── phase_unittest.cc
│ │ │ ├── ref_table.h
│ │ │ ├── ref_table_unittest.cc
│ │ │ └── table_base.h
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── challenge.h
│ │ │ ├── circuit.h
│ │ │ ├── constraint.h
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ ├── exclusion_matrix.h
│ │ │ ├── exclusion_matrix_unittest.cc
│ │ │ ├── gate.h
│ │ │ ├── lookup_tracker.h
│ │ │ ├── query.h
│ │ │ ├── selector.h
│ │ │ ├── selector_assignment.h
│ │ │ ├── selector_compressor.h
│ │ │ ├── selector_compressor_unittest.cc
│ │ │ ├── selector_description.h
│ │ │ ├── selector_description_unittest.cc
│ │ │ ├── selector_unittest.cc
│ │ │ ├── virtual_cell.h
│ │ │ └── virtual_cells.h
│ │ ├── examples/
│ │ │ ├── BUILD.bazel
│ │ │ ├── circuit_test.h
│ │ │ ├── circuit_test_data.h
│ │ │ ├── circuit_test_type_traits.h
│ │ │ ├── fibonacci/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── README.md
│ │ │ │ ├── fibonacci1_circuit.h
│ │ │ │ ├── fibonacci1_circuit_test.cc
│ │ │ │ ├── fibonacci1_circuit_test_data.h
│ │ │ │ ├── fibonacci2_circuit.h
│ │ │ │ ├── fibonacci2_circuit_test.cc
│ │ │ │ ├── fibonacci2_circuit_test_data.h
│ │ │ │ ├── fibonacci3_circuit.h
│ │ │ │ ├── fibonacci3_circuit_test.cc
│ │ │ │ ├── fibonacci3_circuit_test_data.h
│ │ │ │ └── is_zero_chip.h
│ │ │ ├── multi_lookup_circuit.h
│ │ │ ├── multi_lookup_circuit_test.cc
│ │ │ ├── multi_lookup_circuit_test_data.h
│ │ │ ├── point.h
│ │ │ ├── shuffle_api_circuit.h
│ │ │ ├── shuffle_api_circuit_test.cc
│ │ │ ├── shuffle_api_circuit_test_data.h
│ │ │ ├── shuffle_circuit.h
│ │ │ ├── shuffle_circuit_test.cc
│ │ │ ├── shuffle_circuit_test_data.h
│ │ │ ├── simple_circuit.h
│ │ │ ├── simple_circuit_test.cc
│ │ │ ├── simple_circuit_test_data.h
│ │ │ ├── simple_lookup_circuit.h
│ │ │ ├── simple_lookup_circuit_test.cc
│ │ │ ├── simple_lookup_circuit_test_data.h
│ │ │ └── tracking_testing.md
│ │ ├── expressions/
│ │ │ ├── BUILD.bazel
│ │ │ ├── advice_expression.h
│ │ │ ├── advice_expression_unittest.cc
│ │ │ ├── challenge_expression.h
│ │ │ ├── challenge_expression_unittest.cc
│ │ │ ├── compress_expression.h
│ │ │ ├── compress_expression_unittest.cc
│ │ │ ├── evaluator/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── cells_querier.h
│ │ │ │ ├── identifier.h
│ │ │ │ ├── selector_replacer.h
│ │ │ │ ├── selector_replacer_unittest.cc
│ │ │ │ ├── simple_selector_extractor.h
│ │ │ │ ├── simple_selector_extractor_unittest.cc
│ │ │ │ ├── simple_selector_finder.h
│ │ │ │ ├── simple_selector_finder_unittest.cc
│ │ │ │ └── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── evaluator_test.h
│ │ │ ├── expression_factory.h
│ │ │ ├── expression_unittest.cc
│ │ │ ├── fixed_expression.h
│ │ │ ├── fixed_expression_unittest.cc
│ │ │ ├── instance_expression.h
│ │ │ ├── instance_expression_unittest.cc
│ │ │ ├── proving_evaluator.h
│ │ │ ├── proving_evaluator_unittest.cc
│ │ │ ├── selector_expression.h
│ │ │ ├── selector_expression_unittest.cc
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── compress_expression_test.h
│ │ │ └── verifying_evaluator.h
│ │ ├── halo2/
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── argument_data.h
│ │ │ ├── argument_data_unittest.cc
│ │ │ ├── blake2b_transcript.h
│ │ │ ├── blake2b_transcript_unittest.cc
│ │ │ ├── bn254_gwc_prover_test.h
│ │ │ ├── bn254_shplonk_prover_test.h
│ │ │ ├── c_prover_impl_base_forward.h
│ │ │ ├── config.cc
│ │ │ ├── config.h
│ │ │ ├── constants.h
│ │ │ ├── pcs_type.h
│ │ │ ├── pinned_constraint_system.h
│ │ │ ├── pinned_evaluation_domain.h
│ │ │ ├── pinned_gates.h
│ │ │ ├── pinned_verifying_key.h
│ │ │ ├── pinned_verifying_key_forward.h
│ │ │ ├── poseidon_transcript.h
│ │ │ ├── poseidon_transcript_unittest.cc
│ │ │ ├── prime_field_conversion.h
│ │ │ ├── prime_field_conversion_unittest.cc
│ │ │ ├── proof.h
│ │ │ ├── proof_reader.h
│ │ │ ├── proof_serializer.h
│ │ │ ├── proof_serializer_unittest.cc
│ │ │ ├── proof_unittest.cc
│ │ │ ├── prover.h
│ │ │ ├── prover_test.h
│ │ │ ├── proving_scheme.h
│ │ │ ├── random_field_generator.h
│ │ │ ├── random_field_generator_unittest.cc
│ │ │ ├── sha256_transcript.h
│ │ │ ├── sha256_transcript_unittest.cc
│ │ │ ├── snark_verifier_poseidon_transcript.h
│ │ │ ├── snark_verifier_poseidon_transcript_unittest.cc
│ │ │ ├── stringifiers/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── challenge_stringifier.h
│ │ │ │ ├── column_key_stringifier.h
│ │ │ │ ├── column_type_stringifier.h
│ │ │ │ ├── expression_stringifier.h
│ │ │ │ ├── field_stringifier.h
│ │ │ │ ├── lookup_argument_stringifier.h
│ │ │ │ ├── lookup_tracker_stringifier.h
│ │ │ │ ├── permutation_argument_stringifier.h
│ │ │ │ ├── permutation_verifying_key_stringifier.h
│ │ │ │ ├── phase_stringifier.h
│ │ │ │ ├── point_stringifier.h
│ │ │ │ ├── query_stringifier.h
│ │ │ │ ├── rotation_stringifier.h
│ │ │ │ ├── selector_stringifier.h
│ │ │ │ └── shuffle_argument_stringifier.h
│ │ │ ├── synthesizer.h
│ │ │ ├── transcript_type.h
│ │ │ ├── vendor.cc
│ │ │ ├── vendor.h
│ │ │ ├── verifier.h
│ │ │ ├── witness_collection.h
│ │ │ └── witness_collection_unittest.cc
│ │ ├── keys/
│ │ │ ├── BUILD.bazel
│ │ │ ├── assembly.h
│ │ │ ├── c_proving_key_impl_forward.h
│ │ │ ├── key.h
│ │ │ ├── proving_key.h
│ │ │ ├── proving_key_forward.h
│ │ │ └── verifying_key.h
│ │ ├── layout/
│ │ │ ├── BUILD.bazel
│ │ │ ├── assigned_cell.h
│ │ │ ├── assignment.h
│ │ │ ├── cell.h
│ │ │ ├── floor_planner/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── allocated_region.h
│ │ │ │ ├── allocations.h
│ │ │ │ ├── constant.h
│ │ │ │ ├── empty_space.h
│ │ │ │ ├── floor_planner.h
│ │ │ │ ├── lookup_table_assigner.h
│ │ │ │ ├── plan_region.h
│ │ │ │ ├── scoped_region.h
│ │ │ │ ├── simple_floor_planner.h
│ │ │ │ ├── simple_lookup_table_layouter.h
│ │ │ │ ├── single_chip_layouter.h
│ │ │ │ └── v1/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── assignment_pass.h
│ │ │ │ ├── measurement_pass.h
│ │ │ │ ├── v1_floor_planner.h
│ │ │ │ ├── v1_pass.h
│ │ │ │ ├── v1_plan.h
│ │ │ │ ├── v1_strategy.cc
│ │ │ │ └── v1_strategy.h
│ │ │ ├── layouter.h
│ │ │ ├── lookup_table.h
│ │ │ ├── lookup_table_column.h
│ │ │ ├── lookup_table_column_unittest.cc
│ │ │ ├── namespaced_layouter.h
│ │ │ ├── region.h
│ │ │ ├── region_column.h
│ │ │ ├── region_column_unittest.cc
│ │ │ ├── region_layouter.h
│ │ │ └── region_shape.h
│ │ ├── permutation/
│ │ │ ├── BUILD.bazel
│ │ │ ├── cycle_store.cc
│ │ │ ├── cycle_store.h
│ │ │ ├── cycle_store_unittest.cc
│ │ │ ├── grand_product_argument.h
│ │ │ ├── label.h
│ │ │ ├── permutation_argument.h
│ │ │ ├── permutation_argument_unittest.cc
│ │ │ ├── permutation_assembly.h
│ │ │ ├── permutation_assembly_unittest.cc
│ │ │ ├── permutation_evaluator.h
│ │ │ ├── permutation_opening_point_set.h
│ │ │ ├── permutation_prover.h
│ │ │ ├── permutation_prover_impl.h
│ │ │ ├── permutation_proving_key.h
│ │ │ ├── permutation_table_store.h
│ │ │ ├── permutation_table_store_unittest.cc
│ │ │ ├── permutation_utils.h
│ │ │ ├── permutation_utils_unittest.cc
│ │ │ ├── permutation_verifier.h
│ │ │ ├── permutation_verifier_data.h
│ │ │ ├── permutation_verifying_key.h
│ │ │ ├── permuted_table.h
│ │ │ ├── unpermuted_table.h
│ │ │ └── unpermuted_table_unittest.cc
│ │ └── vanishing/
│ │ ├── BUILD.bazel
│ │ ├── calculation.cc
│ │ ├── calculation.h
│ │ ├── circuit_polynomial_builder.h
│ │ ├── circuit_polynomial_builder_forward.h
│ │ ├── custom_gate_evaluator.h
│ │ ├── evaluation_input.h
│ │ ├── graph_evaluator.h
│ │ ├── graph_evaluator_unittest.cc
│ │ ├── value_source.cc
│ │ ├── value_source.h
│ │ ├── value_source_unittest.cc
│ │ ├── vanishing_argument.h
│ │ ├── vanishing_prover.h
│ │ ├── vanishing_prover_impl.h
│ │ ├── vanishing_utils.h
│ │ ├── vanishing_utils_unittest.cc
│ │ ├── vanishing_verifier.h
│ │ └── vanishing_verifier_data.h
│ ├── r1cs/
│ │ ├── constraint_system/
│ │ │ ├── BUILD.bazel
│ │ │ ├── circuit.h
│ │ │ ├── constraint_matrices.h
│ │ │ ├── constraint_system.h
│ │ │ ├── constraint_system_unittest.cc
│ │ │ ├── linear_combination.h
│ │ │ ├── linear_combination_unittest.cc
│ │ │ ├── matrix.h
│ │ │ ├── optimization_goal.h
│ │ │ ├── qap_instance_map_result.h
│ │ │ ├── qap_witness_map_result.h
│ │ │ ├── quadratic_arithmetic_program.h
│ │ │ ├── synthesis_mode.h
│ │ │ ├── term.h
│ │ │ ├── test/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ └── simple_circuit.h
│ │ │ ├── variable.cc
│ │ │ ├── variable.h
│ │ │ └── variable_unittest.cc
│ │ └── groth16/
│ │ ├── BUILD.bazel
│ │ ├── groth16_unittest.cc
│ │ ├── key.h
│ │ ├── prepared_verifying_key.h
│ │ ├── proof.h
│ │ ├── prove.h
│ │ ├── proving_key.h
│ │ ├── toxic_waste.h
│ │ ├── verify.h
│ │ └── verifying_key.h
│ └── shuffle/
│ ├── BUILD.bazel
│ ├── argument.h
│ ├── evaluator.h
│ ├── opening_point_set.h
│ ├── pair.h
│ ├── prover.h
│ ├── prover_impl.h
│ ├── utils.h
│ ├── verifier.h
│ └── verifier_data.h
├── third_party/
│ ├── BUILD.bazel
│ ├── absl/
│ │ ├── BUILD.bazel
│ │ ├── add_missing_linkopts.patch
│ │ └── ignore-maybe-uninitialized-warning.patch
│ ├── boringssl/
│ │ ├── BUILD.bazel
│ │ ├── blake2b512.patch
│ │ └── chacha_core.patch
│ ├── circomlib/
│ │ ├── BUILD.bazel
│ │ └── workspace.bzl
│ ├── clang_toolchain/
│ │ ├── BUILD.bazel
│ │ ├── cc_configure_clang.bzl
│ │ └── download_clang.bzl
│ ├── cxx_rs/
│ │ ├── BUILD.bazel
│ │ └── add_more_args_to_cxx_bridge.patch
│ ├── doxygen/
│ │ ├── BUILD.bazel
│ │ ├── doxygen_archive.BUILD
│ │ └── workspace.bzl
│ ├── eigen3/
│ │ ├── BUILD.bazel
│ │ ├── Eigen/
│ │ │ ├── Cholesky
│ │ │ ├── Core
│ │ │ ├── Eigenvalues
│ │ │ ├── LU
│ │ │ ├── OrderingMethods
│ │ │ ├── QR
│ │ │ ├── SVD
│ │ │ ├── SparseCholesky
│ │ │ └── SparseCore
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── add_sfinae_to_num_traits.patch
│ │ ├── add_sfinae_to_scalar_random_op.patch
│ │ ├── allow_field_inverse.patch
│ │ ├── eigen_archive.BUILD
│ │ ├── unsupported/
│ │ │ └── Eigen/
│ │ │ ├── CXX11/
│ │ │ │ ├── Tensor
│ │ │ │ └── ThreadPool
│ │ │ ├── MatrixFunctions
│ │ │ └── SpecialFunctions
│ │ ├── use_faster_constant_method.patch
│ │ └── workspace.bzl
│ ├── env/
│ │ ├── BUILD.bazel
│ │ ├── env.bzl.tpl
│ │ └── env_configure.bzl
│ ├── ffiasm/
│ │ ├── BUILD.bazel
│ │ ├── build_defs.bzl
│ │ ├── ffiasm.BUILD
│ │ └── workspace.bzl
│ ├── glog/
│ │ ├── BUILD.bazel
│ │ ├── enable_constexpr_check_op.patch
│ │ └── enable_elaborate_ostream_operator.patch
│ ├── gmp/
│ │ ├── BUILD.bazel
│ │ ├── gmp.BUILD
│ │ ├── gmp.BUILD.tpl
│ │ └── gmp_configure.bzl
│ ├── goldilocks/
│ │ ├── BUILD.bazel
│ │ ├── goldilocks.BUILD
│ │ └── workspace.bzl
│ ├── gpus/
│ │ ├── BUILD.bazel
│ │ ├── check_cuda_libs.py
│ │ ├── compress_find_cuda_config.py
│ │ ├── compress_find_rocm_config.py
│ │ ├── crosstool/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.rocm.tpl
│ │ │ ├── BUILD.tpl
│ │ │ ├── LICENSE
│ │ │ ├── cc_toolchain_config.bzl.tpl
│ │ │ ├── clang/
│ │ │ │ └── bin/
│ │ │ │ ├── crosstool_wrapper_driver_is_not_gcc.tpl
│ │ │ │ └── crosstool_wrapper_driver_rocm.tpl
│ │ │ ├── hipcc_cc_toolchain_config.bzl.tpl
│ │ │ └── windows/
│ │ │ └── msvc_wrapper_for_nvcc.py.tpl
│ │ ├── cuda/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.tpl
│ │ │ ├── BUILD.windows.tpl
│ │ │ ├── LICENSE
│ │ │ ├── build_defs.bzl.tpl
│ │ │ ├── cuda_config.h.tpl
│ │ │ └── cuda_config.py.tpl
│ │ ├── cuda_configure.bzl
│ │ ├── find_cuda_config.py
│ │ ├── find_cuda_config.py.gz.base64
│ │ ├── find_rocm_config.py
│ │ ├── find_rocm_config.py.gz.base64
│ │ ├── local_config_cuda.BUILD
│ │ ├── rocm/
│ │ │ ├── BUILD.bazel
│ │ │ ├── BUILD.tpl
│ │ │ ├── build_defs.bzl.tpl
│ │ │ └── rocm_config.h.tpl
│ │ └── rocm_configure.bzl
│ ├── gtest/
│ │ ├── BUILD.bazel
│ │ ├── add_missing_linkopts.patch
│ │ └── print_with_to_string.patch
│ ├── hwloc/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.system
│ │ ├── hwloc.BUILD
│ │ ├── static-components.h
│ │ └── workspace.bzl
│ ├── icicle/
│ │ ├── BUILD.bazel
│ │ ├── build_defs.bzl
│ │ ├── change_sort_function.patch
│ │ ├── fix_first_digest_copy_bug.patch
│ │ ├── icicle.BUILD
│ │ ├── inlinize.patch
│ │ ├── pragma.patch
│ │ ├── remove_kernels_from_header.patch
│ │ ├── rename.patch
│ │ ├── separate_hash_config.patch
│ │ ├── separate_merkle_tree_config.patch
│ │ ├── separate_msm_config.patch
│ │ ├── separate_ntt_algorithm.patch
│ │ └── workspace.bzl
│ ├── json/
│ │ ├── BUILD.bazel
│ │ └── workspace.bzl
│ ├── matplotlibcpp17/
│ │ ├── BUILD.bazel
│ │ └── matplotlibcpp17.BUILD
│ ├── nasm/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.system
│ │ ├── config.h
│ │ ├── nasm.BUILD
│ │ └── workspace.bzl
│ ├── node_addon_api/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── install_node_addon_api.bzl
│ │ └── package.json
│ ├── omp/
│ │ ├── BUILD.bazel
│ │ ├── omp.BUILD
│ │ └── omp_configure.bzl
│ ├── pdqsort/
│ │ ├── BUILD.bazel
│ │ ├── pdqsort.BUILD
│ │ └── workspace.bzl
│ ├── perfetto/
│ │ └── perfetto.BUILD
│ ├── powersort/
│ │ ├── BUILD.bazel
│ │ ├── fix_multiple_definitions.patch
│ │ ├── fix_sign_compare_warning.patch
│ │ ├── fix_static_assertion.patch
│ │ ├── powersort.BUILD
│ │ ├── remove_binary_function.patch
│ │ └── workspace.bzl
│ ├── py/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── numpy/
│ │ │ ├── BUILD
│ │ │ └── LICENSE
│ │ └── python_configure.bzl
│ ├── rapidjson/
│ │ └── rapidjson.BUILD
│ ├── rapidsnark/
│ │ ├── BUILD.bazel
│ │ ├── nozk.patch
│ │ ├── rapidsnark.BUILD
│ │ └── workspace.bzl
│ ├── remote_config/
│ │ ├── BUILD.bazel
│ │ ├── BUILD.tpl
│ │ ├── common.bzl
│ │ └── remote_platform_configure.bzl
│ └── repo.bzl
└── vendors/
├── circom/
│ ├── .bazelrc
│ ├── .bazelversion
│ ├── .gitignore
│ ├── BUILD.bazel
│ ├── README.md
│ ├── WORKSPACE
│ ├── benchmark/
│ │ ├── BUILD.bazel
│ │ ├── README.md
│ │ ├── bit_conversion.h
│ │ ├── circom_benchmark.cc
│ │ ├── rapidsnark_runner.h
│ │ ├── runner.h
│ │ ├── sha256_512.circom
│ │ ├── sha256_512.zkey
│ │ ├── sha256_512_verification_key.json
│ │ └── tachyon_runner.h
│ ├── build_defs.bzl
│ ├── circom.BUILD
│ ├── circomlib/
│ │ ├── CPPLINT.cfg
│ │ ├── base/
│ │ │ ├── BUILD.bazel
│ │ │ ├── fr_element_conversion.h
│ │ │ ├── modulus.cc
│ │ │ ├── modulus.h
│ │ │ ├── modulus_unittest.cc
│ │ │ ├── sections.h
│ │ │ └── sections_unittest.cc
│ │ ├── circuit/
│ │ │ ├── BUILD.bazel
│ │ │ ├── adder_circuit_unittest.cc
│ │ │ ├── adder_data.json
│ │ │ ├── circuit.h
│ │ │ ├── circuit_test.h
│ │ │ ├── multiplier_3_circuit_unittest.cc
│ │ │ ├── multiplier_3_data.json
│ │ │ ├── quadratic_arithmetic_program.h
│ │ │ └── witness_loader.h
│ │ ├── generated/
│ │ │ ├── .clang-format
│ │ │ ├── BUILD.bazel
│ │ │ ├── README.md
│ │ │ ├── bls12381/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── bn128/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── common/
│ │ │ │ ├── BUILD.bazel
│ │ │ │ ├── calcwit.cpp
│ │ │ │ ├── calcwit.cpp.diff
│ │ │ │ ├── calcwit.hpp
│ │ │ │ ├── calcwit.hpp.diff
│ │ │ │ ├── circom.hpp
│ │ │ │ └── circom.hpp.diff
│ │ │ ├── goldilocks/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── grumpkin/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── pallas/
│ │ │ │ └── BUILD.bazel
│ │ │ ├── secq256r1/
│ │ │ │ └── BUILD.bazel
│ │ │ └── vesta/
│ │ │ └── BUILD.bazel
│ │ ├── json/
│ │ │ ├── BUILD.bazel
│ │ │ ├── groth16_proof.h
│ │ │ ├── groth16_proof_unittest.cc
│ │ │ ├── json.h
│ │ │ ├── json_converter_forward.h
│ │ │ ├── points.h
│ │ │ ├── prime_field.h
│ │ │ └── prime_field_unittest.cc
│ │ ├── r1cs/
│ │ │ ├── BUILD.bazel
│ │ │ ├── constraint.h
│ │ │ ├── r1cs.cc
│ │ │ ├── r1cs.h
│ │ │ └── r1cs_unittest.cc
│ │ ├── wtns/
│ │ │ ├── BUILD.bazel
│ │ │ ├── multiplier_3.wtns
│ │ │ ├── wtns.cc
│ │ │ ├── wtns.h
│ │ │ └── wtns_unittest.cc
│ │ └── zkey/
│ │ ├── BUILD.bazel
│ │ ├── coefficient.h
│ │ ├── proving_key.h
│ │ ├── verifying_key.h
│ │ ├── zkey.cc
│ │ ├── zkey.h
│ │ └── zkey_unittest.cc
│ ├── examples/
│ │ ├── BUILD.bazel
│ │ ├── adder.circom
│ │ ├── adder.zkey
│ │ ├── compute_witness_multiplier_3.cc
│ │ ├── multiplier_2.circom
│ │ ├── multiplier_3.circom
│ │ ├── multiplier_3.zkey
│ │ └── multiplier_n.circom
│ └── prover_main.cc
├── plonky3/
│ ├── BUILD.bazel
│ ├── Cargo.toml
│ ├── include/
│ │ └── baby_bear_row_major_matrix.h
│ └── src/
│ ├── baby_bear.rs
│ ├── baby_bear_row_major_matrix.cc
│ ├── lib.rs
│ └── row_major_matrix.rs
├── scroll_halo2/
│ ├── BUILD.bazel
│ ├── Cargo.toml
│ ├── README.md
│ ├── include/
│ │ ├── bn254_blake2b_writer.h
│ │ ├── bn254_evals.h
│ │ ├── bn254_msm.h
│ │ ├── bn254_msm_gpu.h
│ │ ├── bn254_poly.h
│ │ ├── bn254_poseidon_writer.h
│ │ ├── bn254_prover.h
│ │ ├── bn254_proving_key.h
│ │ ├── bn254_rational_evals.h
│ │ ├── bn254_rational_evals_view.h
│ │ ├── bn254_sha256_writer.h
│ │ ├── bn254_snark_verifier_poseidon_writer.h
│ │ ├── cha_cha20_rng.h
│ │ └── xor_shift_rng.h
│ └── src/
│ ├── bn254.rs
│ ├── bn254_blake2b_writer.cc
│ ├── bn254_evals.cc
│ ├── bn254_msm.cc
│ ├── bn254_msm_gpu.cc
│ ├── bn254_poly.cc
│ ├── bn254_poseidon_writer.cc
│ ├── bn254_prover.cc
│ ├── bn254_proving_key.cc
│ ├── bn254_rational_evals.cc
│ ├── bn254_rational_evals_view.cc
│ ├── bn254_sha256_writer.cc
│ ├── bn254_snark_verifier_poseidon_writer.cc
│ ├── cha_cha20_rng.cc
│ ├── cha_cha20_rng.rs
│ ├── circuits/
│ │ ├── mod.rs
│ │ ├── shuffle_circuit.rs
│ │ ├── simple_circuit.rs
│ │ └── simple_lookup_circuit.rs
│ ├── consts.rs
│ ├── lib.rs
│ ├── msm.rs
│ ├── prover.rs
│ ├── proving_key.rs
│ ├── rng.rs
│ ├── sha.rs
│ ├── transcript.rs
│ ├── xor_shift_rng.cc
│ └── xor_shift_rng.rs
└── sp1/
├── BUILD.bazel
├── Cargo.toml
├── include/
│ ├── baby_bear_poseidon2_commitment_vec.h
│ ├── baby_bear_poseidon2_domains.h
│ ├── baby_bear_poseidon2_duplex_challenger.h
│ ├── baby_bear_poseidon2_fri_proof.h
│ ├── baby_bear_poseidon2_lde_vec.h
│ ├── baby_bear_poseidon2_opened_values.h
│ ├── baby_bear_poseidon2_opening_points.h
│ ├── baby_bear_poseidon2_opening_proof.h
│ ├── baby_bear_poseidon2_prover_data.h
│ ├── baby_bear_poseidon2_prover_data_vec.h
│ └── baby_bear_poseidon2_two_adic_fri_pcs.h
└── src/
├── baby_bear_poseidon2.rs
├── baby_bear_poseidon2_commitment_vec.cc
├── baby_bear_poseidon2_domains.cc
├── baby_bear_poseidon2_duplex_challenger.cc
├── baby_bear_poseidon2_fri_proof.cc
├── baby_bear_poseidon2_lde_vec.cc
├── baby_bear_poseidon2_opened_values.cc
├── baby_bear_poseidon2_opening_points.cc
├── baby_bear_poseidon2_opening_proof.cc
├── baby_bear_poseidon2_prover_data.cc
├── baby_bear_poseidon2_prover_data_vec.cc
├── baby_bear_poseidon2_two_adic_fri_pcs.cc
├── challenger.rs
├── lib.rs
├── two_adic_fri_pcs.rs
└── util.rs
Showing preview only (522K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5661 symbols across 1406 files)
FILE: benchmark/config.cc
type tachyon::benchmark (line 8) | namespace tachyon::benchmark {
FILE: benchmark/config.h
function namespace (line 11) | namespace tachyon::benchmark {
FILE: benchmark/ec/ec_config.cc
type tachyon::benchmark (line 5) | namespace tachyon::benchmark {
FILE: benchmark/ec/ec_config.h
function namespace (line 10) | namespace tachyon::benchmark {
FILE: benchmark/ec/ec_double_benchmark_gpu.cc
type tachyon::benchmark (line 17) | namespace tachyon::benchmark {
function TestDoubleOnCPU (line 25) | void TestDoubleOnCPU(const std::vector<math::bn254::G1AffinePoint>& ba...
function gpuError_t (line 33) | gpuError_t LaunchDouble(const math::bn254::G1AffinePointGpu* x,
function TestDoubleOnGPU (line 42) | void TestDoubleOnGPU(math::bn254::G1AffinePointGpu* bases_cuda,
function RealMain (line 55) | int RealMain(int argc, char** argv) {
function main (line 120) | int main(int argc, char** argv) {
function main (line 126) | int main(int argc, char **argv) {
FILE: benchmark/fft/arkworks/src/lib.rs
function run_fft_arkworks (line 7) | pub extern "C" fn run_fft_arkworks(
function run_ifft_arkworks (line 30) | pub extern "C" fn run_ifft_arkworks(
FILE: benchmark/fft/bellman/src/lib.rs
function run_fft_bellman (line 6) | pub extern "C" fn run_fft_bellman(
function run_ifft_bellman (line 31) | pub extern "C" fn run_ifft_bellman(
FILE: benchmark/fft/fft_benchmark.cc
type tachyon::benchmark (line 21) | namespace tachyon::benchmark {
function CheckResult (line 60) | void CheckResult(bool check_result, const PolyOrEvals& tachyon_result,
function Run (line 71) | void Run(const FFTConfig& config) {
function RealMain (line 181) | int RealMain(int argc, char** argv) {
function main (line 216) | int main(int argc, char** argv) {
FILE: benchmark/fft/fft_benchmark_gpu.cc
type tachyon::benchmark (line 18) | namespace tachyon::benchmark {
function Run (line 26) | void Run(const FFTConfig& config) {
function RealMain (line 90) | int RealMain(int argc, char** argv) {
function main (line 123) | int main(int argc, char** argv) {
function main (line 129) | int main(int argc, char **argv) {
FILE: benchmark/fft/fft_config.cc
type tachyon::benchmark (line 9) | namespace tachyon::benchmark {
FILE: benchmark/fft/fft_config.h
function namespace (line 12) | namespace tachyon::benchmark {
FILE: benchmark/fft/fft_runner.h
type tachyon_bn254_fr (line 34) | typedef tachyon_bn254_fr* (*FFTExternalFn)(
function explicit (line 39) | explicit FFTRunner(SimpleReporter& reporter) : reporter_(reporter) {}
FILE: benchmark/fft/halo2/src/lib.rs
function run_fft_halo2 (line 7) | pub extern "C" fn run_fft_halo2(
function run_ifft_halo2 (line 30) | pub extern "C" fn run_ifft_halo2(
FILE: benchmark/fft_batch/fft_batch_benchmark.cc
type tachyon::benchmark (line 15) | namespace tachyon::benchmark {
function CheckResults (line 26) | void CheckResults(bool check_results,
function Run (line 35) | void Run(const FFTBatchConfig& config) {
function RealMain (line 95) | int RealMain(int argc, char** argv) {
function main (line 119) | int main(int argc, char** argv) {
FILE: benchmark/fft_batch/fft_batch_config.cc
type tachyon::benchmark (line 8) | namespace tachyon::benchmark {
FILE: benchmark/fft_batch/fft_batch_config.h
function namespace (line 13) | namespace tachyon::benchmark {
FILE: benchmark/fft_batch/fft_batch_runner.h
function namespace (line 20) | namespace tachyon::benchmark {
FILE: benchmark/fft_batch/plonky3/src/lib.rs
function run_fft_batch_plonky3_baby_bear (line 9) | pub extern "C" fn run_fft_batch_plonky3_baby_bear(
function run_coset_lde_batch_plonky3_baby_bear (line 30) | pub extern "C" fn run_coset_lde_batch_plonky3_baby_bear(
FILE: benchmark/field_type.h
function namespace (line 12) | namespace tachyon {
FILE: benchmark/fri/fri_benchmark.cc
type tachyon::benchmark (line 31) | namespace tachyon::benchmark {
function CheckResult (line 39) | void CheckResult(bool check_results, const Result& tachyon_result,
function Run (line 46) | void Run(const FRIConfig& config) {
function RealMain (line 129) | int RealMain(int argc, char** argv) {
function main (line 149) | int main(int argc, char** argv) {
FILE: benchmark/fri/fri_config.cc
type tachyon::benchmark (line 8) | namespace tachyon::benchmark {
FILE: benchmark/fri/fri_config.h
function namespace (line 12) | namespace tachyon::benchmark {
FILE: benchmark/fri/fri_runner.h
function namespace (line 20) | namespace tachyon::benchmark {
function ExtF (line 96) | ExtF RunExternal(Vendor vendor, ExternalFn fn,
FILE: benchmark/fri/plonky3/src/lib.rs
type Val (line 21) | type Val = BabyBear;
type Challenge (line 22) | type Challenge = BinomialExtensionField<Val, 4>;
type Perm (line 24) | type Perm = Poseidon2<Val, Poseidon2ExternalMatrixHL, DiffusionMatrixBab...
type MyHash (line 25) | type MyHash = PaddingFreeSponge<Perm, 16, 8, 8>;
type MyCompress (line 26) | type MyCompress = TruncatedPermutation<Perm, 2, 8, 16>;
type ValMmcs (line 28) | type ValMmcs =
type ChallengeMmcs (line 30) | type ChallengeMmcs = ExtensionMmcs<Val, Challenge, ValMmcs>;
type Dft (line 32) | type Dft = Radix2DitParallel;
type Challenger (line 33) | type Challenger = DuplexChallenger<Val, Perm, 16, 8>;
type MyPcs (line 34) | type MyPcs = TwoAdicFriPcs<Val, Dft, ValMmcs, ChallengeMmcs>;
function get_perm (line 36) | fn get_perm(rounds_f: usize, rounds_p: usize) -> Perm {
function get_pcs (line 66) | fn get_pcs(log_blowup: usize, log_n: usize) -> (MyPcs, Challenger) {
function do_test_fri (line 86) | fn do_test_fri<Challenger, P>(
function run_fri_plonky3_baby_bear (line 156) | pub extern "C" fn run_fri_plonky3_baby_bear(
FILE: benchmark/msm/arkworks/src/lib.rs
function run_msm_arkworks (line 10) | pub extern "C" fn run_msm_arkworks(
FILE: benchmark/msm/bellman/src/lib.rs
function run_msm_bellman (line 16) | pub extern "C" fn run_msm_bellman(
FILE: benchmark/msm/halo2/src/lib.rs
function run_msm_halo2 (line 10) | pub extern "C" fn run_msm_halo2(
FILE: benchmark/msm/msm_benchmark.cc
type tachyon::benchmark (line 15) | namespace tachyon::benchmark {
function tachyon_bn254_g1_jacobian (line 31) | tachyon_bn254_g1_jacobian* run_msm_halo2_adapter(
function RealMain (line 40) | int RealMain(int argc, char** argv) {
function main (line 107) | int main(int argc, char** argv) {
FILE: benchmark/msm/msm_benchmark_gpu.cc
type tachyon::benchmark (line 17) | namespace tachyon::benchmark {
function RealMain (line 21) | int RealMain(int argc, char** argv) {
function main (line 80) | int main(int argc, char** argv) {
function main (line 86) | int main(int argc, char **argv) {
FILE: benchmark/msm/msm_config.cc
type tachyon (line 12) | namespace tachyon {
type base (line 16) | namespace base {
class FlagValueTraits<MSMConfig::TestSet> (line 19) | class FlagValueTraits<MSMConfig::TestSet> {
method ParseValue (line 21) | static bool ParseValue(std::string_view input, MSMConfig::TestSet*...
FILE: benchmark/msm/msm_config.h
function namespace (line 13) | namespace tachyon::benchmark {
FILE: benchmark/msm/msm_runner.h
function namespace (line 19) | namespace tachyon::benchmark {
FILE: benchmark/poseidon/arkworks/src/lib.rs
function run_poseidon_arkworks (line 9) | pub extern "C" fn run_poseidon_arkworks(duration: *mut u64) -> *mut CppFr {
FILE: benchmark/poseidon/poseidon_benchmark.cc
type tachyon::benchmark (line 15) | namespace tachyon::benchmark {
function RealMain (line 21) | int RealMain(int argc, char** argv) {
function main (line 61) | int main(int argc, char** argv) {
FILE: benchmark/poseidon/poseidon_benchmark_runner.h
function namespace (line 21) | namespace tachyon::benchmark {
FILE: benchmark/poseidon/poseidon_config.cc
type tachyon::benchmark (line 3) | namespace tachyon::benchmark {
FILE: benchmark/poseidon/poseidon_config.h
function namespace (line 10) | namespace tachyon::benchmark {
FILE: benchmark/poseidon2/horizen/src/lib.rs
function run_poseidon2 (line 13) | fn run_poseidon2<F: PrimeField + std::convert::From<i32>, R>(
function run_poseidon2_horizen_baby_bear (line 33) | pub extern "C" fn run_poseidon2_horizen_baby_bear(duration: *mut u64) ->...
function run_poseidon2_horizen_bn254_fr (line 38) | pub extern "C" fn run_poseidon2_horizen_bn254_fr(duration: *mut u64) -> ...
FILE: benchmark/poseidon2/plonky3/src/lib.rs
function bn254_from_ark_ff (line 18) | fn bn254_from_ark_ff(input: ark_FpBN256) -> Bn254Fr {
function baby_bear_from_ark_ff (line 38) | fn baby_bear_from_ark_ff(input: ark_FpBabyBear) -> BabyBear {
function run_poseidon2 (line 42) | fn run_poseidon2<
function run_poseidon2_plonky3_baby_bear (line 104) | pub extern "C" fn run_poseidon2_plonky3_baby_bear(duration: *mut u64) ->...
function run_poseidon2_plonky3_bn254_fr (line 114) | pub extern "C" fn run_poseidon2_plonky3_bn254_fr(duration: *mut u64) -> ...
FILE: benchmark/poseidon2/poseidon2_benchmark.cc
type tachyon::benchmark (line 22) | namespace tachyon::benchmark {
function Run (line 34) | void Run(SimpleReporter& reporter, const Poseidon2Config& config, Fn h...
function RealMain (line 86) | int RealMain(int argc, char** argv) {
function main (line 125) | int main(int argc, char** argv) {
FILE: benchmark/poseidon2/poseidon2_benchmark_runner.h
function namespace (line 20) | namespace tachyon::benchmark {
FILE: benchmark/poseidon2/poseidon2_config.cc
type tachyon::benchmark (line 7) | namespace tachyon::benchmark {
FILE: benchmark/poseidon2/poseidon2_config.h
function namespace (line 13) | namespace tachyon::benchmark {
FILE: benchmark/simple_reporter.cc
type tachyon::benchmark (line 13) | namespace tachyon::benchmark {
FILE: benchmark/simple_reporter.h
function namespace (line 14) | namespace tachyon::benchmark {
FILE: benchmark/vendor.h
function namespace (line 14) | namespace tachyon {
function Vendor (line 123) | struct std::hash<tachyon::benchmark::Vendor> {
FILE: scripts/packages/copy_hdr.py
function main (line 9) | def main():
FILE: tachyon/base/apple/bridging.h
function CF_TO_NS_MUTABLE_CAST_IMPL (line 120) | CF_TO_NS_MUTABLE_CAST_IMPL(Array)
FILE: tachyon/base/apple/bundle_locations.h
function namespace (line 15) | namespace tachyon::base {
function namespace (line 22) | namespace tachyon::base::apple {
FILE: tachyon/base/auto_reset.h
function namespace (line 22) | namespace tachyon::base {
FILE: tachyon/base/auto_reset_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(AutoReset, Move) {
FILE: tachyon/base/binding/callable_util.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_constructor.cc
type tachyon::base (line 7) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_constructor.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_constructor_matcher.cc
type tachyon::base (line 5) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_constructor_matcher.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_raw_ptr.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_shared_ptr.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_stack_value.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_type.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_type_names.cc
type tachyon::base (line 5) | namespace tachyon::base {
function MakeCppVectorTypeName (line 7) | std::string MakeCppVectorTypeName(std::string_view type) {
function MakeCppOptionalTypeName (line 11) | std::string MakeCppOptionalTypeName(std::string_view type) {
function MakeCppMapTypeName (line 15) | std::string MakeCppMapTypeName(std::string_view key_type,
function MakeCppTupleTypeName (line 20) | std::string MakeCppTupleTypeName(const std::vector<std::string>& types) {
function MakeCppRawPtrTypeName (line 25) | std::string MakeCppRawPtrTypeName(std::string_view type) {
function MakeCppSharedPtrTypeName (line 29) | std::string MakeCppSharedPtrTypeName(std::string_view type) {
function MakeCppUniquePtrTypeName (line 33) | std::string MakeCppUniquePtrTypeName(std::string_view type) {
FILE: tachyon/base/binding/cpp_type_names.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_unique_ptr.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_value.cc
type tachyon::base (line 3) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_value.h
function namespace (line 7) | namespace tachyon::base {
FILE: tachyon/base/binding/cpp_value_factory.h
function namespace (line 12) | namespace tachyon::base {
function std (line 30) | static std::unique_ptr<CppValue> Create(std::unique_ptr<T, Deleter> valu...
FILE: tachyon/base/binding/holder_util.h
function namespace (line 7) | namespace tachyon::base {
function std (line 36) | static std::shared_ptr<Class> DoCreate(Args... args) {
function T (line 52) | static T* Get(T& v) { return &v; }
function T (line 62) | static T* Get(std::unique_ptr<T>& v) { return v.get(); }
FILE: tachyon/base/binding/property_util.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/binding/test/adder.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/adder.h
function namespace (line 4) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/color.cc
type tachyon::base::test (line 5) | namespace tachyon::base::test {
function ColorToString (line 7) | std::string ColorToString(Color c) {
FILE: tachyon/base/binding/test/color.h
function Color (line 8) | enum class Color { kRed, kGreen, kBlue };
FILE: tachyon/base/binding/test/colored_point.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/colored_point.h
function namespace (line 9) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/functions.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
function Hello (line 9) | std::string Hello() { return "world"; }
function Sum (line 11) | int Sum(int a, int b) { return a + b; }
function GetGlobalValue (line 13) | int GetGlobalValue() { return g_global_value; }
function SetGlobalValue (line 15) | void SetGlobalValue(int v) { g_global_value = v; }
function Next3 (line 17) | std::tuple<int, int, int> Next3(int v) {
function DoNothing (line 21) | void DoNothing() {}
FILE: tachyon/base/binding/test/functions.h
function namespace (line 7) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/move_only_int.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
function MoveOnlyInt (line 13) | MoveOnlyInt& MoveOnlyInt::operator=(MoveOnlyInt&& other) {
FILE: tachyon/base/binding/test/move_only_int.h
function namespace (line 4) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/point.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/point.h
function SetDimension (line 24) | static void SetDimension(int dimension) { s_dimension = dimension; }
function GetDimension (line 25) | static int GetDimension() { return s_dimension; }
function SetX (line 29) | void SetX(int x) { this->x = x; }
function SetY (line 30) | void SetY(int y) { this->y = y; }
FILE: tachyon/base/binding/test/rect.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/rect.h
function namespace (line 6) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/variant.cc
type tachyon::base::test (line 3) | namespace tachyon::base::test {
FILE: tachyon/base/binding/test/variant.h
function namespace (line 11) | namespace tachyon::base::test {
FILE: tachyon/base/bit_cast.h
function namespace (line 18) | namespace tachyon::base {
FILE: tachyon/base/bit_cast_unittest.cc
type tachyon::base (line 10) | namespace tachyon::base {
function TEST (line 13) | TEST(BitCastTest, FloatIntFloat) {
type A (line 20) | struct A {
function TEST (line 24) | TEST(BitCastTest, StructureInt) {
FILE: tachyon/base/bits.cc
type tachyon::base (line 3) | namespace tachyon::base {
type bits (line 4) | namespace bits {
function BitRev (line 6) | uint64_t BitRev(uint64_t n) {
FILE: tachyon/base/bits.h
function namespace (line 20) | namespace tachyon::base {
function T (line 157) | T LeftmostBit() {
function ReverseBitsLen (line 167) | inline size_t ReverseBitsLen(size_t x, size_t bit_len) {
FILE: tachyon/base/bits_unittest.cc
type tachyon::base (line 18) | namespace tachyon::base {
type bits (line 19) | namespace bits {
function TEST (line 21) | TEST(BitsTest, Log2Floor) {
function TEST (line 38) | TEST(BitsTest, Log2Ceiling) {
function TEST (line 55) | TEST(BitsTest, SafeLog2Ceiling) {
function TEST (line 72) | TEST(BitsTest, AlignUp) {
function TEST (line 84) | TEST(BitsTest, AlignUpPointer) {
function TEST (line 105) | TEST(BitsTest, AlignDown) {
function TEST (line 118) | TEST(BitsTest, AlignDownPointer) {
function TEST (line 141) | TEST(BitsTest, CountLeadingZeroBits8) {
function TEST (line 151) | TEST(BitsTest, CountLeadingZeroBits16) {
function TEST (line 161) | TEST(BitsTest, CountLeadingZeroBits32) {
function TEST (line 170) | TEST(BitsTest, CountTrailingZeroBits8) {
function TEST (line 179) | TEST(BitsTest, CountTrailingZeroBits16) {
function TEST (line 188) | TEST(BitsTest, CountTrailingZeroBits32) {
function TEST (line 197) | TEST(BitsTest, CountLeadingZeroBits64) {
function TEST (line 206) | TEST(BitsTest, CountTrailingZeroBits64) {
function TEST (line 215) | TEST(BitsTest, CountLeadingZeroBitsSizeT) {
function TEST (line 230) | TEST(BitsTest, CountTrailingZeroBitsSizeT) {
function TEST (line 245) | TEST(BitsTest, PowerOfTwo) {
function TEST (line 268) | TEST(BitsTest, LeftMostBit) {
function TEST (line 298) | TEST(BitsTest, BitRev) {
FILE: tachyon/base/buffer/buffer.cc
type tachyon::base (line 7) | namespace tachyon::base {
FILE: tachyon/base/buffer/buffer.h
function namespace (line 6) | namespace tachyon::base {
FILE: tachyon/base/buffer/buffer_unittest.cc
type tachyon::base (line 7) | namespace tachyon::base {
type Color (line 9) | enum class Color {
function TEST (line 15) | TEST(CopyableTest, BuiltInSerializableTest) {
function TEST (line 46) | TEST(BufferTest, Write) {
function TEST (line 103) | TEST(BufferTest, WriteMany) {
FILE: tachyon/base/buffer/copyable.h
function namespace (line 15) | namespace tachyon::base {
function ReadFrom (line 121) | static bool ReadFrom(const ReadOnlyBuffer& buffer, T* values) {
function EstimateSize (line 128) | static size_t EstimateSize(const T* values) {
function ReadFrom (line 147) | static bool ReadFrom(const ReadOnlyBuffer& buffer, std::vector<T>* value...
function EstimateSize (line 157) | static size_t EstimateSize(const std::vector<T>& values) {
function ReadFrom (line 175) | static bool ReadFrom(const ReadOnlyBuffer& buffer, std::array<T, N>* val...
function EstimateSize (line 182) | static size_t EstimateSize(const std::array<T, N>& values) {
function ReadFrom (line 201) | static bool ReadFrom(const ReadOnlyBuffer& buffer, absl::Span<T>* values) {
function EstimateSize (line 206) | static size_t EstimateSize(absl::Span<T> values) {
FILE: tachyon/base/buffer/copyable_forward.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/buffer/endian_auto_reset.h
function namespace (line 7) | namespace tachyon::base {
FILE: tachyon/base/buffer/read_only_buffer.cc
type tachyon::base (line 5) | namespace tachyon::base {
FILE: tachyon/base/buffer/read_only_buffer.h
function namespace (line 17) | namespace tachyon::base {
function class (line 38) | class TACHYON_EXPORT ReadOnlyBuffer {
FILE: tachyon/base/buffer/string_buffer.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/buffer/vector_buffer.cc
type tachyon::base (line 3) | namespace tachyon::base {
class VectorBuffer<char> (line 5) | class VectorBuffer<char>
class VectorBuffer<uint8_t> (line 6) | class VectorBuffer<uint8_t>
FILE: tachyon/base/buffer/vector_buffer.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/color/color.cc
type tachyon::base (line 15) | namespace tachyon::base {
function StringToNumber (line 21) | bool StringToNumber(std::string_view input, uint8_t* number) {
function StringToNumber (line 31) | bool StringToNumber(std::string_view input, float* number) {
function ParseCommaSeparatedNumbers (line 41) | bool ParseCommaSeparatedNumbers(std::string_view* input, T* numbers) {
function ParseRgbNumbers (line 55) | bool ParseRgbNumbers(std::string_view* input, uint8_t* numbers) {
function ParseRgbaNumbers (line 59) | bool ParseRgbaNumbers(std::string_view* input, uint8_t* numbers) {
function ParseHsvNumbers (line 63) | bool ParseHsvNumbers(std::string_view* input, float* numbers) {
function ParseHsvaNumbers (line 71) | bool ParseHsvaNumbers(std::string_view* input, float* numbers) {
function ConsumeHex (line 79) | bool ConsumeHex(std::string_view* input, uint8_t* c) {
function ConsumeHexRgba (line 89) | bool ConsumeHexRgba(std::string_view* input, uint8_t* r, uint8_t* g, u...
function Rgba (line 157) | Rgba Rgba::Swap(const RgbaIndexes& rgba_indexes) const {
FILE: tachyon/base/color/color.h
function RgbaIndexes (line 16) | struct TACHYON_EXPORT RgbaIndexes {
function Rgba (line 34) | struct TACHYON_EXPORT Rgba {
FILE: tachyon/base/color/color_conversions.cc
type tachyon::base (line 10) | namespace tachyon::base {
function Rgba (line 12) | Rgba HsvToRgba(const Hsv& hsv) {
function Hsv (line 62) | Hsv RgbaToHsv(Rgba rgba) {
FILE: tachyon/base/color/color_conversions.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/color/color_conversions_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(ColorConversions, RgbaAndHsv) {
FILE: tachyon/base/color/color_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(Rgba, StringConversion) {
function TEST (line 37) | TEST(Hsv, StringConversion) {
FILE: tachyon/base/color/named_color.h
function namespace (line 10) | namespace tachyon::base::colors {
FILE: tachyon/base/compiler_specific.h
function AnalyzerNoReturn (line 280) | inline constexpr bool AnalyzerNoReturn() __attribute__((analyzer_noretur...
function AnalyzerAssumeTrue (line 284) | inline constexpr bool AnalyzerAssumeTrue(bool arg) {
FILE: tachyon/base/console/console.cc
type tachyon::base (line 15) | namespace tachyon::base {
FILE: tachyon/base/console/console.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/console/console_stream.cc
type tachyon::base (line 9) | namespace tachyon::base {
function ConsoleStream (line 24) | ConsoleStream& ConsoleStream::Rgb(Rgba rgba) {
function ConsoleStream (line 28) | ConsoleStream& ConsoleStream::Rgb(uint8_t r, uint8_t g, uint8_t b) {
function ConsoleStream (line 41) | ConsoleStream& ConsoleStream::BgRgb(Rgba rgba) {
function ConsoleStream (line 45) | ConsoleStream& ConsoleStream::BgRgb(uint8_t r, uint8_t g, uint8_t b) {
function ConsoleStream (line 58) | ConsoleStream& ConsoleStream::SetCursor(size_t row, size_t column) {
function ConsoleStream (line 63) | ConsoleStream& ConsoleStream::CursorUp(size_t n) {
function ConsoleStream (line 68) | ConsoleStream& ConsoleStream::CursorDown(size_t n) {
function ConsoleStream (line 73) | ConsoleStream& ConsoleStream::CursorForward(size_t n) {
function ConsoleStream (line 78) | ConsoleStream& ConsoleStream::CursorBackward(size_t n) {
function ConsoleStream (line 83) | ConsoleStream& ConsoleStream::SaveCursor() {
function ConsoleStream (line 88) | ConsoleStream& ConsoleStream::RestoreCursor() {
function ConsoleStream (line 93) | ConsoleStream& ConsoleStream::SaveCursorAndAttributes() {
function ConsoleStream (line 98) | ConsoleStream& ConsoleStream::RestoreCursorAndAttributes() {
function ConsoleStream (line 103) | ConsoleStream& ConsoleStream::ScrollScreen() {
function ConsoleStream (line 108) | ConsoleStream& ConsoleStream::ScrollScreen(size_t start, size_t end) {
function ConsoleStream (line 113) | ConsoleStream& ConsoleStream::ScrollDown() {
function ConsoleStream (line 118) | ConsoleStream& ConsoleStream::ScrollUp() {
function ConsoleStream (line 123) | ConsoleStream& ConsoleStream::SetTab() {
function ConsoleStream (line 128) | ConsoleStream& ConsoleStream::ClearTab() {
function ConsoleStream (line 133) | ConsoleStream& ConsoleStream::ClearAllTab() {
function ConsoleStream (line 138) | ConsoleStream& ConsoleStream::EraseEndOfLine() {
function ConsoleStream (line 143) | ConsoleStream& ConsoleStream::EraseStartOfLine() {
function ConsoleStream (line 148) | ConsoleStream& ConsoleStream::EraseEntireLine() {
function ConsoleStream (line 153) | ConsoleStream& ConsoleStream::EraseDown() {
function ConsoleStream (line 158) | ConsoleStream& ConsoleStream::EraseUp() {
function ConsoleStream (line 163) | ConsoleStream& ConsoleStream::EraseScreen() {
FILE: tachyon/base/console/console_stream.h
function namespace (line 17) | namespace tachyon::base {
FILE: tachyon/base/console/iostream.cc
type tachyon::base::internal (line 5) | namespace tachyon::base::internal {
FILE: tachyon/base/console/iostream.h
function namespace (line 9) | namespace tachyon::base::internal {
FILE: tachyon/base/console/sgr_parameters.cc
type tachyon::base (line 9) | namespace tachyon::base {
function Grayscale8 (line 11) | std::string Grayscale8(uint8_t level) {
function BgGrayscale8 (line 16) | std::string BgGrayscale8(uint8_t level) {
function Rgb8 (line 21) | std::string Rgb8(uint8_t r, uint8_t g, uint8_t b) {
function BgRgb8 (line 25) | std::string BgRgb8(uint8_t r, uint8_t g, uint8_t b) {
function Rgb24 (line 29) | std::string Rgb24(uint8_t r, uint8_t g, uint8_t b) {
function BgRgb24 (line 33) | std::string BgRgb24(uint8_t r, uint8_t g, uint8_t b) {
function Ansi8BitColor (line 37) | uint8_t Ansi8BitColor(uint8_t r, uint8_t g, uint8_t b) {
FILE: tachyon/base/console/sgr_parameters.h
function namespace (line 14) | namespace tachyon::base {
FILE: tachyon/base/console/table_writer.cc
type tachyon::base (line 15) | namespace tachyon::base {
type winsize (line 69) | struct winsize
function TableWriterBuilder (line 142) | TableWriterBuilder& TableWriterBuilder::AlignHeaderLeft() {
function TableWriterBuilder (line 147) | TableWriterBuilder& TableWriterBuilder::AlignHeaderRight() {
function TableWriterBuilder (line 152) | TableWriterBuilder& TableWriterBuilder::AlignHeaderCenter() {
function TableWriterBuilder (line 157) | TableWriterBuilder& TableWriterBuilder::AlignBodyLeft() {
function TableWriterBuilder (line 162) | TableWriterBuilder& TableWriterBuilder::AlignBodyRight() {
function TableWriterBuilder (line 167) | TableWriterBuilder& TableWriterBuilder::AlignBodyCenter() {
function TableWriterBuilder (line 172) | TableWriterBuilder& TableWriterBuilder::AddSpace(size_t space) {
function TableWriterBuilder (line 177) | TableWriterBuilder& TableWriterBuilder::AddColumn(std::string_view tit...
function TableWriterBuilder (line 184) | TableWriterBuilder& TableWriterBuilder::AddColumn(std::string_view title,
function TableWriterBuilder (line 191) | TableWriterBuilder& TableWriterBuilder::FitToTerminalWidth() {
function TableWriterBuilder (line 196) | TableWriterBuilder& TableWriterBuilder::StripBothAsciiWhitespace() {
function TableWriterBuilder (line 201) | TableWriterBuilder& TableWriterBuilder::StripTrailingAsciiWhitespace() {
function TableWriterBuilder (line 206) | TableWriterBuilder& TableWriterBuilder::StripLeadingAsciiWhitespace() {
function TableWriter (line 211) | TableWriter TableWriterBuilder::Build() const { return writer_; }
FILE: tachyon/base/console/table_writer.h
type class (line 20) | enum class
function Length (line 26) | enum class Length {
FILE: tachyon/base/containers/adapters.h
function namespace (line 11) | namespace tachyon::base {
function t_ (line 46) | ChunkedAdapter(const ChunkedAdapter& ca) : t_(ca.t_) {}
function const (line 50) | auto begin() const { return ChunkedBegin(t_, chunk_size_); }
function const (line 66) | auto begin() const { return ZippedBegin(t_, u_); }
FILE: tachyon/base/containers/adapters_unittest.cc
type tachyon::base (line 14) | namespace tachyon::base {
function TEST (line 16) | TEST(AdaptersTest, Reversed) {
function TEST (line 26) | TEST(AdaptersTest, ReversedArray) {
function TEST (line 36) | TEST(AdaptersTest, ReversedConst) {
function TestChunked (line 46) | void TestChunked(T&& v) {
function TEST (line 64) | TEST(AdaptersTest, Chunked) {
function TEST (line 72) | TEST(AdaptersTest, ChunkedArray) {
function TEST (line 77) | TEST(AdaptersTest, ChunkedConst) {
function TEST (line 83) | TEST(AdaptersTest, Zipped) {
function TEST (line 95) | TEST(AdaptersTest, ZippedArray) {
function TEST (line 107) | TEST(AdaptersTest, ZippedConst) {
FILE: tachyon/base/containers/chunked_iterator.h
function namespace (line 13) | namespace tachyon::base {
function reference (line 93) | reference operator*() {
FILE: tachyon/base/containers/circular_deque.h
function namespace (line 124) | namespace tachyon::base {
function explicit (line 438) | explicit circular_deque(size_type count) { resize(count); }
function buffer_ (line 448) | circular_deque(const circular_deque& other) : buffer_(other.size() + 1) {
function assign (line 499) | void assign(size_type count, const value_type& value) {
function assign (line 520) | void assign(std::initializer_list<value_type> value) {
function value_type (line 530) | const value_type& at(size_type i) const {
function value_type (line 545) | const value_type& operator[](size_type i) const { return at(i); }
function iterator (line 568) | iterator begin() { return iterator(this, begin_); }
function iterator (line 572) | iterator end() { return iterator(this, end_); }
function reverse_iterator (line 576) | reverse_iterator rbegin() { return reverse_iterator(end()); }
function reverse_iterator (line 582) | reverse_iterator rend() { return reverse_iterator(begin()); }
function reserve (line 599) | void reserve(size_type new_capacity) {
function shrink_to_fit (line 609) | void shrink_to_fit() {
function clear (line 624) | void clear() {
function resize (line 650) | void resize(size_type count) {
function resize (line 669) | void resize(size_type count, const value_type& value) {
function insert (line 699) | void insert(const_iterator pos, size_type count, const T& value) {
function iterator (line 763) | iterator insert(const_iterator pos, const T& value) {
function iterator (line 766) | iterator insert(const_iterator pos, T&& value) {
function iterator (line 796) | iterator erase(const_iterator pos) { return erase(pos, pos + 1); }
function iterator (line 797) | iterator erase(const_iterator first, const_iterator last) {
function push_front (line 847) | void push_front(const T& value) { emplace_front(value); }
function push_front (line 848) | void push_front(T&& value) { emplace_front(std::move(value)); }
function push_back (line 850) | void push_back(const T& value) { emplace_back(value); }
function push_back (line 851) | void push_back(T&& value) { emplace_back(std::move(value)); }
function pop_front (line 877) | void pop_front() {
function pop_back (line 892) | void pop_back() {
function swap (line 909) | void swap(circular_deque& other) {
function MoveBuffer (line 925) | static void MoveBuffer(VectorBuffer& from_buf,
function SetCapacityTo (line 956) | void SetCapacityTo(size_t new_capacity) {
function ExpandCapacityIfNecessary (line 963) | void ExpandCapacityIfNecessary(size_t additional_elts) {
function ShrinkCapacityIfNecessary (line 979) | void ShrinkCapacityIfNecessary() {
function ClearRetainCapacity (line 1001) | void ClearRetainCapacity() {
function DestructRange (line 1013) | void DestructRange(size_t begin, size_t end) {
function MakeRoomFor (line 1028) | void MakeRoomFor(size_t count, iterator* insert_begin, iterator* insert_...
function CheckValidIndex (line 1063) | void CheckValidIndex(size_t i) const {
function CheckValidIndexOrEnd (line 1071) | void CheckValidIndexOrEnd(size_t i) const {
function ValidateIterator (line 1076) | void ValidateIterator(const const_iterator& i) const {
function IncrementGeneration (line 1082) | void IncrementGeneration() { generation_++; }
function CheckValidIndex (line 1085) | void CheckValidIndex(size_t) const {}
function CheckValidIndexOrEnd (line 1086) | void CheckValidIndexOrEnd(size_t) const {}
function ValidateIterator (line 1087) | void ValidateIterator(const const_iterator& i) const {}
function IncrementGeneration (line 1088) | void IncrementGeneration() {}
FILE: tachyon/base/containers/circular_deque_unittest.cc
type tachyon::base (line 17) | namespace tachyon::base {
function MakeSequence (line 21) | circular_deque<int> MakeSequence(size_t max) {
function CycleTest (line 33) | void CycleTest(circular_deque<QueueT>& queue, const Tester& tester) {
class DestructorCounter (line 42) | class DestructorCounter {
method DestructorCounter (line 44) | DestructorCounter(int* counter) : counter_(counter) {}
function TEST (line 55) | TEST(CircularDeque, FillConstructor) {
function TEST (line 85) | TEST(CircularDeque, CopyAndRangeConstructor) {
function TEST (line 95) | TEST(CircularDeque, MoveConstructor) {
function TEST (line 106) | TEST(CircularDeque, InitializerListConstructor) {
function TEST (line 116) | TEST(CircularDeque, Destructor) {
function TEST (line 147) | TEST(CircularDeque, EqualsCopy) {
function TEST (line 160) | TEST(CircularDeque, EqualsMove) {
function TEST (line 172) | TEST(CircularDeque, EqualsSelf) {
function TEST (line 180) | TEST(CircularDeque, EqualsInitializerList) {
function TEST (line 189) | TEST(CircularDeque, AssignCountValue) {
function TEST (line 204) | TEST(CircularDeque, AssignIterator) {
function TEST (line 218) | TEST(CircularDeque, AssignInitializerList) {
function TEST (line 231) | TEST(CircularDeque, At) {
function TEST (line 256) | TEST(CircularDeque, FrontBackPushPop) {
function TEST (line 295) | TEST(CircularDeque, ReallocateWithSplitBuffer) {
function TEST (line 327) | TEST(CircularDeque, Swap) {
function TEST (line 341) | TEST(CircularDeque, Iteration) {
function TEST (line 387) | TEST(CircularDeque, IteratorComparisons) {
function TEST (line 408) | TEST(CircularDeque, IteratorIncDec) {
function TEST (line 466) | TEST(CircularDeque, IteratorIntegerOps) {
function TEST (line 503) | TEST(CircularDeque, IteratorArrayAccess) {
function TEST (line 518) | TEST(CircularDeque, ReverseIterator) {
function TEST (line 537) | TEST(CircularDeque, CapacityReserveShrink) {
function TEST (line 564) | TEST(CircularDeque, CapacityAutoShrink) {
function TEST (line 591) | TEST(CircularDeque, ClearAndEmpty) {
function TEST (line 607) | TEST(CircularDeque, Resize) {
function TEST (line 648) | TEST(CircularDeque, ResizeDelete) {
function TEST (line 685) | TEST(CircularDeque, InsertEraseSingle) {
function TEST (line 732) | TEST(CircularDeque, InsertFill) {
function TEST (line 758) | TEST(CircularDeque, InsertEraseRange) {
function TEST (line 832) | TEST(CircularDeque, EmplaceMoveOnly) {
function TEST (line 848) | TEST(CircularDeque, EmplaceFrontBackReturnsReference) {
FILE: tachyon/base/containers/container_util.h
function namespace (line 18) | namespace tachyon::base {
function it (line 248) | auto it = std::find_if(begin, end, std::forward<UnaryOp>(op));
function it (line 261) | auto it = std::find_if(begin, end, std::forward<UnaryOp>(op));
FILE: tachyon/base/containers/container_util_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function TEST (line 13) | TEST(ContainerUtilTest, CreateRangedVector) {
function TEST (line 30) | TEST(ContainerUtilTest, CreateVectorWithGenerator) {
function TEST (line 37) | TEST(ContainerUtilTest, Map) {
function TEST (line 46) | TEST(ContainerUtilTest, MapWithIdx) {
function TEST (line 57) | TEST(ContainerUtilTest, FlatMap) {
function TEST (line 69) | TEST(ContainerUtilTest, FindIndex) {
function TEST (line 77) | TEST(ContainerUtilTest, FindIndexIf) {
function TEST (line 86) | TEST(ContainerUtilTest, DoFindIndices) {
function TEST (line 100) | TEST(ContainerUtilTest, FindIndices) {
function TEST (line 108) | TEST(ContainerUtilTest, DoFindIndicesIf) {
function TEST (line 123) | TEST(ContainerUtilTest, FindIndicesIf) {
function TEST (line 132) | TEST(ContainerUtilTest, Shuffle) {
function TEST (line 145) | TEST(ContainerUtilTest, BinarySearchByKey) {
function TEST (line 172) | TEST(ContainerUtilTest, CreateArrayWithGenerator) {
FILE: tachyon/base/containers/contains.h
function namespace (line 16) | namespace tachyon::base {
function ContainsImpl (line 61) | bool ContainsImpl(const Container& container, const Value& value,
function Contains (line 77) | bool Contains(const Container& container, const Value& value) {
function Contains (line 85) | bool Contains(const Container& container, const Value& value,
FILE: tachyon/base/containers/contains_unittest.cc
type tachyon::base (line 17) | namespace tachyon::base {
function TEST (line 19) | TEST(ContainsTest, GenericContains) {
function TEST (line 30) | TEST(ContainsTest, GenericContainsWithProjection) {
function TEST (line 38) | TEST(ContainsTest, GenericSetContainsWithProjection) {
function TEST (line 46) | TEST(ContainsTest, ContainsWithFindAndNpos) {
function TEST (line 54) | TEST(ContainsTest, ContainsWithFindAndEnd) {
function TEST (line 62) | TEST(ContainsTest, ContainsWithContains) {
FILE: tachyon/base/containers/cxx20_erase_deque.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_forward_list.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_internal.h
function namespace (line 13) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_list.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_map.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_set.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_string.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_unordered_map.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_unordered_set.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/cxx20_erase_vector.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/stack.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/util.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/containers/vector_buffer.h
function namespace (line 21) | namespace tachyon::base {
FILE: tachyon/base/containers/vector_buffer_unittest.cc
type tachyon::base (line 14) | namespace tachyon::base {
type internal (line 15) | namespace internal {
function TEST (line 17) | TEST(VectorBuffer, DeletePOD) {
function TEST (line 30) | TEST(VectorBuffer, DeleteMoveOnly) {
function TEST (line 43) | TEST(VectorBuffer, PODMove) {
function TEST (line 56) | TEST(VectorBuffer, MovableMove) {
function TEST (line 73) | TEST(VectorBuffer, CopyToMove) {
FILE: tachyon/base/containers/zipped_iterator.h
function namespace (line 10) | namespace tachyon::base {
function reference (line 72) | reference operator*() {
FILE: tachyon/base/cxx20_is_constant_evaluated.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/cxx20_is_constant_evaluated_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function TEST (line 11) | TEST(Cxx20IsConstantEvaluated, Basic) {
FILE: tachyon/base/endian.cc
type tachyon::base (line 5) | namespace tachyon::base {
function EndianToString (line 7) | std::string_view EndianToString(Endian endian) {
FILE: tachyon/base/endian.h
function Endian (line 10) | enum class Endian {
FILE: tachyon/base/endian_utils_unittest.cc
type Range (line 10) | struct Range {
function TEST (line 15) | TEST(EndianUtils, ForFromBiggest) {
function TEST (line 33) | TEST(EndianUtils, ForFromSmallest) {
function TEST (line 51) | TEST(EndianUtils, ForBugSmallest) {
function TEST (line 60) | TEST(EndianUtils, SmallestIndex) {
function TEST (line 69) | TEST(EndianUtils, BiggestIndex) {
FILE: tachyon/base/environment.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/environment_posix.cc
type tachyon::base (line 5) | namespace tachyon::base {
FILE: tachyon/base/environment_unittest.cc
type tachyon::base (line 5) | namespace tachyon::base {
function TEST (line 7) | TEST(Environment, BasicTest) {
FILE: tachyon/base/files/bin_file.cc
type tachyon::base (line 9) | namespace tachyon::base {
FILE: tachyon/base/files/bin_file.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/files/file.cc
type tachyon::base (line 21) | namespace tachyon::base {
function File (line 70) | File& File::operator=(File&& other) {
FILE: tachyon/base/files/file.h
type stat (line 22) | struct stat
function namespace (line 24) | namespace tachyon::base {
FILE: tachyon/base/files/file_enumerator.cc
type tachyon::base (line 10) | namespace tachyon::base {
FILE: tachyon/base/files/file_enumerator.h
function class (line 46) | class TACHYON_EXPORT FileEnumerator {
FILE: tachyon/base/files/file_enumerator_posix.cc
type tachyon::base (line 25) | namespace tachyon::base {
function GetStat (line 28) | void GetStat(const FilePath& path, bool show_links, stat_wrapper_t* st) {
function ShouldShowSymLinks (line 42) | bool ShouldShowSymLinks(int file_type) {
function ShouldShowSymLinks (line 46) | bool ShouldShowSymLinks(int file_type) {
function ShouldTrackVisitedDirectories (line 52) | bool ShouldTrackVisitedDirectories(int file_type) {
function ShouldTrackVisitedDirectories (line 56) | bool ShouldTrackVisitedDirectories(int file_type) {
function FilePath (line 73) | FilePath FileEnumerator::FileInfo::GetName() const {
function FilePath (line 152) | FilePath FileEnumerator::Next() {
FILE: tachyon/base/files/file_enumerator_unittest.cc
type tachyon::base (line 25) | namespace tachyon::base {
type TestFile (line 34) | struct TestFile {
method TestFile (line 35) | TestFile(const char* file_name, const char* c)
method TestFile (line 38) | TestFile(const char* directory,
type TestDirectory (line 49) | struct TestDirectory {
method TestDirectory (line 50) | explicit TestDirectory(const char* n) : name(n) {}
function CheckModificationTime (line 56) | void CheckModificationTime(const FileEnumerator::FileInfo& actual,
function CheckFileAgainstInfo (line 72) | void CheckFileAgainstInfo(const FileEnumerator::FileInfo& actual,
function CheckDirectoryAgainstInfo (line 81) | void CheckDirectoryAgainstInfo(const FileEnumerator::FileInfo& actual,
function RunEnumerator (line 88) | circular_deque<FilePath> RunEnumerator(
function CreateDummyFile (line 103) | bool CreateDummyFile(const FilePath& path) {
function GetFileInfo (line 107) | bool GetFileInfo(const FilePath& file_path, File::Info& info) {
function SetUpTestFiles (line 126) | void SetUpTestFiles(const ScopedTempDir& temp_dir,
function TEST (line 137) | TEST(FileEnumerator, NotExistingPath) {
function TEST (line 149) | TEST(FileEnumerator, EmptyFolder) {
function TEST (line 162) | TEST(FileEnumerator, SingleFileInFolderForFileSearch) {
function TEST (line 177) | TEST(FileEnumerator, SingleFileInFolderForDirSearch) {
function TEST (line 191) | TEST(FileEnumerator, SingleFileInFolderWithFiltering) {
function TEST (line 210) | TEST(FileEnumerator, TwoFilesInFolder) {
function TEST (line 239) | TEST(FileEnumerator, SingleFolderInFolderForFileSearch) {
function TEST (line 255) | TEST(FileEnumerator, SingleFolderInFolderForDirSearch) {
function TEST (line 271) | TEST(FileEnumerator, TwoFoldersInFolder) {
function TEST (line 293) | TEST(FileEnumerator, FolderAndFileInFolder) {
function TEST (line 320) | TEST(FileEnumerator, FilesInParentFolderAlwaysFirst) {
function TEST (line 340) | TEST(FileEnumerator, FileInSubfolder) {
function TEST (line 361) | TEST(FileEnumerator, FilesInSubfoldersWithFiltering) {
function TEST (line 399) | TEST(FileEnumerator, InvalidDirectory) {
function TEST (line 423) | TEST(FileEnumerator, SymLinkLoops) {
function TEST (line 455) | TEST(FileEnumerator, GetInfo) {
function TEST (line 489) | TEST(FileEnumerator, GetInfoRecursive) {
function TEST (line 566) | TEST(FileEnumerator, GetInfoDotDot) {
function TEST (line 617) | TEST(FileEnumerator, OnlyName) {
function TEST (line 636) | TEST(FileEnumerator, ForEach) {
FILE: tachyon/base/files/file_path.cc
type tachyon::base (line 14) | namespace tachyon::base {
function AreAllSeparators (line 20) | bool AreAllSeparators(const std::string& input) {
function FinalExtensionSeparatorPosition (line 31) | std::string::size_type FinalExtensionSeparatorPosition(const std::stri...
function ExtensionSeparatorPosition (line 43) | std::string::size_type ExtensionSeparatorPosition(const std::string& p...
function IsEmptyOrSpecialCase (line 76) | bool IsEmptyOrSpecialCase(std::string_view path) {
function FilePath (line 165) | FilePath FilePath::DirName() const {
function FilePath (line 178) | FilePath FilePath::BaseName() const {
function FilePath (line 207) | FilePath FilePath::RemoveExtension() const {
function FilePath (line 218) | FilePath FilePath::RemoveFinalExtension() const {
function FilePath (line 229) | FilePath FilePath::InsertBeforeExtension(std::string_view suffix) const {
function FilePath (line 240) | FilePath FilePath::Append(std::string_view component) const {
function FilePath (line 244) | FilePath FilePath::Append(const FilePath& component) const {
function FilePath (line 253) | FilePath FilePath::operator/(std::string_view component) const {
function FilePath (line 257) | FilePath FilePath::operator/(const FilePath& component) const {
function FilePath (line 261) | FilePath& FilePath::operator/=(std::string_view component) {
function FilePath (line 266) | FilePath& FilePath::operator/=(const FilePath& component) {
function FilePath (line 280) | FilePath FilePath::AsEndingWithSeparator() const {
function FilePath (line 290) | FilePath FilePath::StripTrailingSeparators() const {
FILE: tachyon/base/files/file_path.h
function class (line 21) | class TACHYON_EXPORT FilePath {
FILE: tachyon/base/files/file_path_flag.h
function namespace (line 9) | namespace tachyon::base {
type Flag (line 21) | typedef Flag<FilePath> FilePathFlag;
FILE: tachyon/base/files/file_path_unittest.cc
type tachyon::base (line 6) | namespace tachyon::base {
function TEST (line 8) | TEST(FilePathTest, GetComponents) {
function TEST (line 20) | TEST(FilePathTest, IsParent) {
function TEST (line 27) | TEST(FilePathTest, AppendRelativePath) {
function TEST (line 35) | TEST(FilePathTest, DirName) {
function TEST (line 42) | TEST(FilePathTest, BaseName) {
function TEST (line 50) | TEST(FilePathTest, Extension) {
function TEST (line 54) | TEST(FilePathTest, IsAbsolute) {
function TEST (line 59) | TEST(FilePathTest, EndsWithSeparator) {
function TEST (line 64) | TEST(FilePathTest, AsEndingWithSeparator) {
function TEST (line 69) | TEST(FilePathTest, StripTrailingSeparators) {
function TEST (line 76) | TEST(FilePathTest, AppendComponent) {
function TEST (line 91) | TEST(FilePathTest, ReferencesParent) {
FILE: tachyon/base/files/file_posix.cc
type tachyon::base (line 34) | namespace tachyon::base {
function IsOpenAppend (line 46) | bool IsOpenAppend(PlatformFile file) {
function CallFtruncate (line 50) | int CallFtruncate(PlatformFile file, int64_t length) {
function CallFutimes (line 60) | int CallFutimes(PlatformFile file, const struct timeval times[2]) {
function FcntlFlockType (line 78) | short FcntlFlockType(std::optional<File::LockMode> mode) {
function CallFcntlFlock (line 90) | File::Error CallFcntlFlock(PlatformFile file,
function IsOpenAppend (line 105) | bool IsOpenAppend(PlatformFile file) {
function CallFtruncate (line 112) | int CallFtruncate(PlatformFile file, int64_t length) {
function CallFutimes (line 117) | int CallFutimes(PlatformFile file, const struct timeval times[2]) {
function CallFcntlFlock (line 122) | File::Error CallFcntlFlock(PlatformFile file,
function PlatformFile (line 197) | PlatformFile File::GetPlatformFile() const {
function PlatformFile (line 201) | PlatformFile File::TakePlatformFile() {
function File (line 454) | File File::Duplicate() const {
FILE: tachyon/base/files/file_unittest.cc
function TEST (line 38) | TEST(FileTest, Create) {
function TEST (line 127) | TEST(FileTest, SelfSwap) {
function TEST (line 137) | TEST(FileTest, Async) {
function TEST (line 155) | TEST(FileTest, DeleteOpenFile) {
function TEST (line 181) | TEST(FileTest, ReadWrite) {
function TEST (line 257) | TEST(FileTest, GetLastFileError) {
function TEST (line 276) | TEST(FileTest, Append) {
function TEST (line 328) | TEST(FileTest, Length) {
function TEST (line 393) | TEST(FileTest, TouchGetInfo) {
FILE: tachyon/base/files/file_util.cc
type tachyon::base (line 39) | namespace tachyon::base {
function ReadStreamToSpanWithMaxSize (line 57) | bool ReadStreamToSpanWithMaxSize(
function ComputeDirectorySize (line 166) | int64_t ComputeDirectorySize(const FilePath& root_path) {
function Move (line 174) | bool Move(const FilePath& from_path, const FilePath& to_path) {
function CopyFileContents (line 180) | bool CopyFileContents(File& infile, File& outfile) {
function ContentsEqual (line 222) | bool ContentsEqual(const FilePath& filename1, const FilePath& filename...
function TextContentsEqual (line 261) | bool TextContentsEqual(const FilePath& filename1, const FilePath& file...
function ReadStreamToString (line 306) | bool ReadStreamToString(FILE* stream, std::string* contents) {
function ReadStreamToStringWithMaxSize (line 311) | bool ReadStreamToStringWithMaxSize(FILE* stream,
function ReadFileToBytes (line 331) | std::optional<std::vector<uint8_t>> ReadFileToBytes(const FilePath& pa...
function ReadFileToString (line 353) | bool ReadFileToString(const FilePath& path, std::string* contents) {
function ReadFileToStringWithMaxSize (line 358) | bool ReadFileToStringWithMaxSize(const FilePath& path,
function IsDirectoryEmpty (line 371) | bool IsDirectoryEmpty(const FilePath& dir_path) {
function CreateTemporaryFile (line 379) | bool CreateTemporaryFile(FilePath* path) {
function ScopedFILE (line 384) | ScopedFILE CreateAndOpenTemporaryStream(FilePath* path) {
function CreateDirectory (line 392) | bool CreateDirectory(const FilePath& full_path) {
function GetFileSize (line 396) | bool GetFileSize(const FilePath& file_path, int64_t* file_size) {
function TouchFile (line 404) | bool TouchFile(const FilePath& path,
function CloseFile (line 426) | bool CloseFile(FILE* file) {
function TruncateFile (line 432) | bool TruncateFile(FILE* file) {
function WriteFile (line 450) | bool WriteFile(const FilePath& filename, absl::Span<const uint8_t> dat...
function WriteFile (line 456) | bool WriteFile(const FilePath& filename, std::string_view data) {
function WriteLargeFile (line 461) | bool WriteLargeFile(const FilePath& filename, absl::Span<const uint8_t...
function WriteLargeFile (line 466) | bool WriteLargeFile(const FilePath& filename, std::string_view data) {
function GetUniquePathNumber (line 471) | int GetUniquePathNumber(const FilePath& path) {
function FilePath (line 487) | FilePath GetUniquePath(const FilePath& path) {
type internal (line 495) | namespace internal {
function PreReadFileSlow (line 497) | bool PreReadFileSlow(const FilePath& file_path, int64_t max_bytes) {
FILE: tachyon/base/files/file_util.h
function namespace (line 37) | namespace tachyon::base {
FILE: tachyon/base/files/file_util_posix.cc
type tachyon::base (line 73) | namespace tachyon::base {
function VerifySpecificPathControlledByUser (line 79) | bool VerifySpecificPathControlledByUser(const FilePath& path,
function GetTempTemplate (line 115) | base::FilePath GetTempTemplate() {
function AdvanceEnumeratorWithStat (line 119) | bool AdvanceEnumeratorWithStat(FileEnumerator* traversal,
function DoCopyDirectory (line 132) | bool DoCopyDirectory(const FilePath& from_path,
function DoDeleteFile (line 277) | bool DoDeleteFile(const FilePath& path, bool recursive) {
function AppendModeCharacter (line 323) | std::string AppendModeCharacter(std::string_view mode, char mode_char) {
function FilePath (line 334) | FilePath MakeAbsoluteFilePath(const FilePath& input) {
function MakeAbsoluteFilePathNoResolveSymbolicLinks (line 343) | std::optional<FilePath> MakeAbsoluteFilePathNoResolveSymbolicLinks(
function DeleteFile (line 382) | bool DeleteFile(const FilePath& path) {
function DeletePathRecursively (line 386) | bool DeletePathRecursively(const FilePath& path) {
function ReplaceFile (line 390) | bool ReplaceFile(const FilePath& from_path,
function CopyDirectory (line 402) | bool CopyDirectory(const FilePath& from_path,
function CopyDirectoryExcl (line 408) | bool CopyDirectoryExcl(const FilePath& from_path,
function CreatePipe (line 414) | bool CreatePipe(ScopedFD* read_fd, ScopedFD* write_fd, bool non_blocki...
function CreateLocalNonBlockingPipe (line 425) | bool CreateLocalNonBlockingPipe(int fds[2]) {
function SetNonBlocking (line 448) | bool SetNonBlocking(int fd) {
function SetCloseOnExec (line 459) | bool SetCloseOnExec(int fd) {
function PathExists (line 470) | bool PathExists(const FilePath& path) {
function PathIsReadable (line 481) | bool PathIsReadable(const FilePath& path) {
function PathIsWritable (line 487) | bool PathIsWritable(const FilePath& path) {
function DirectoryExists (line 493) | bool DirectoryExists(const FilePath& path) {
function ReadFromFD (line 502) | bool ReadFromFD(int fd, char* buffer, size_t bytes) {
function ScopedFD (line 514) | ScopedFD CreateAndOpenFdForTemporaryFileInDir(const FilePath& directory,
function CreateSymbolicLink (line 531) | bool CreateSymbolicLink(const FilePath& target_path,
function ReadSymbolicLink (line 539) | bool ReadSymbolicLink(const FilePath& symlink_path, FilePath* target_p...
function ReadSymbolicLinkAbsolute (line 565) | std::optional<FilePath> ReadSymbolicLinkAbsolute(
function GetPosixFilePermissions (line 582) | bool GetPosixFilePermissions(const FilePath& path, int* mode) {
function SetPosixFilePermissions (line 597) | bool SetPosixFilePermissions(const FilePath& path,
function GetTempDir (line 646) | bool GetTempDir(FilePath* path) {
function FilePath (line 663) | FilePath GetHomeDir() {
function File (line 689) | File CreateAndOpenTemporaryFileInDir(const FilePath& dir, FilePath* te...
function CreateTemporaryFileInDir (line 697) | bool CreateTemporaryFileInDir(const FilePath& dir, FilePath* temp_file) {
function FilePath (line 705) | FilePath FormatTemporaryFileName(std::string_view identifier) {
function ScopedFILE (line 714) | ScopedFILE CreateAndOpenTemporaryStreamInDir(const FilePath& dir,
function CreateTemporaryDirInDirImpl (line 727) | static bool CreateTemporaryDirInDirImpl(const FilePath& base_dir,
function CreateTemporaryDirInDir (line 752) | bool CreateTemporaryDirInDir(const FilePath& base_dir,
function CreateNewTempDirectory (line 761) | bool CreateNewTempDirectory(const std::string& prefix,
function CreateDirectoryAndGetError (line 770) | bool CreateDirectoryAndGetError(const FilePath& full_path,
function ReadFileToStringNonBlocking (line 815) | bool ReadFileToStringNonBlocking(const base::FilePath& file, std::stri...
function NormalizeFilePath (line 838) | bool NormalizeFilePath(const FilePath& path, FilePath* normalized_path) {
function IsLink (line 854) | bool IsLink(const FilePath& file_path) {
function GetFileInfo (line 863) | bool GetFileInfo(const FilePath& file_path, File::Info* results) {
FILE: tachyon/base/files/memory_mapped_file.cc
type tachyon::base (line 16) | namespace tachyon::base {
FILE: tachyon/base/files/memory_mapped_file.h
function namespace (line 24) | namespace tachyon::base {
FILE: tachyon/base/files/memory_mapped_file_posix.cc
type tachyon::base (line 20) | namespace tachyon::base {
FILE: tachyon/base/files/platform_file.h
function namespace (line 20) | namespace tachyon::base {
FILE: tachyon/base/files/scoped_file.cc
type tachyon::base (line 17) | namespace tachyon::base {
type internal (line 18) | namespace internal {
FILE: tachyon/base/files/scoped_file.h
function ScopedGenericOwnershipTracking (line 22) | struct TACHYON_EXPORT ScopedFDCloseTraits : public ScopedGenericOwnershi...
function ScopedGenericOwnershipTracking (line 32) | struct TACHYON_EXPORT ScopedFDCloseTraits : public ScopedGenericOwnershi...
function namespace (line 58) | namespace subtle {
type ScopedGeneric (line 101) | typedef ScopedGeneric<int, internal::ScopedFDCloseTraits> ScopedFD;
type std (line 105) | typedef std::unique_ptr<FILE, internal::ScopedFILECloser> ScopedFILE;
FILE: tachyon/base/files/scoped_file_linux.cc
function NOINLINE (line 32) | NOINLINE void CrashOnFdOwnershipViolation() {
function CanTrack (line 39) | bool CanTrack(int fd) {
function UpdateAndCheckFdOwnership (line 43) | void UpdateAndCheckFdOwnership(int fd, bool owned) {
type tachyon::base (line 53) | namespace tachyon::base {
type internal (line 54) | namespace internal {
type subtle (line 68) | namespace subtle {
function EnableFDOwnershipEnforcement (line 70) | void EnableFDOwnershipEnforcement(bool enabled) {
function ResetFDOwnership (line 74) | void ResetFDOwnership() {
function IsFDOwned (line 80) | bool IsFDOwned(int fd) {
function LibcCloseFuncPtr (line 89) | LibcCloseFuncPtr LoadCloseSymbol() {
function close (line 104) | __attribute__((visibility("default"), noinline)) int close(int fd) {
FILE: tachyon/base/files/scoped_file_linux_unittest.cc
type tachyon::base (line 12) | namespace tachyon::base {
class ScopedFDOwnershipTrackingTest (line 15) | class ScopedFDOwnershipTrackingTest : public testing::Test {
method SetUp (line 17) | void SetUp() override { ASSERT_TRUE(temp_dir_.CreateUniqueTempDir()); }
method TearDown (line 18) | void TearDown() override { ASSERT_TRUE(temp_dir_.Delete()); }
method ScopedFD (line 20) | ScopedFD OpenFD() {
function TEST_F (line 30) | TEST_F(ScopedFDOwnershipTrackingTest, BasicTracking) {
function TEST_F (line 40) | TEST_F(ScopedFDOwnershipTrackingTest, NoDoubleOwnership) {
function TEST_F (line 46) | TEST_F(ScopedFDOwnershipTrackingTest, CrashOnUnownedClose) {
FILE: tachyon/base/files/scoped_temp_dir.cc
type tachyon::base (line 10) | namespace tachyon::base {
function ScopedTempDir (line 23) | ScopedTempDir& ScopedTempDir::operator=(ScopedTempDir&& other) {
function FilePath (line 86) | FilePath ScopedTempDir::Take() {
function FilePath (line 90) | const FilePath& ScopedTempDir::GetPath() const {
FILE: tachyon/base/files/scoped_temp_dir.h
function namespace (line 23) | namespace tachyon::base {
FILE: tachyon/base/files/scoped_temp_dir_unittest.cc
type tachyon::base (line 19) | namespace tachyon::base {
function TEST (line 21) | TEST(ScopedTempDir, FullPath) {
function TEST (line 54) | TEST(ScopedTempDir, TempDir) {
function TEST (line 79) | TEST(ScopedTempDir, UniqueTempDirUnderPath) {
function TEST (line 98) | TEST(ScopedTempDir, MultipleInvocations) {
function TEST (line 112) | TEST(ScopedTempDir, Move) {
function TEST (line 127) | TEST(ScopedTempDir, LockedTempDir) {
FILE: tachyon/base/flag/flag.cc
type tachyon::base (line 9) | namespace tachyon::base {
function Append (line 12) | size_t Append(std::ostream& ss, std::string_view text) {
function AlignAtIndexAndAppend (line 17) | std::string AlignAtIndexAndAppend(std::stringstream& ss, std::string_v...
function IsValidFlagName (line 30) | bool IsValidFlagName(std::string_view text) {
FILE: tachyon/base/flag/flag.h
function class (line 84) | class TACHYON_EXPORT FlagBase {
function explicit (line 166) | explicit Flag(T* value) : value_(value) {}
function explicit (line 167) | explicit Flag(ParseValueCallback parse_value_callback)
function set_value (line 177) | void set_value(const T& value) {
function T (line 182) | const T* value() const { return value_; }
function NeedsValue (line 184) | bool NeedsValue() const override { return !std::is_same<T, bool>::value; }
function set_value (line 255) | void set_value(const T& value) {
function T (line 260) | const T* value() const { return value_; }
function Contains (line 262) | bool Contains(const T& value) { return base::Contains(choices_, value); }
function NeedsValue (line 264) | bool NeedsValue() const override { return !std::is_same<T, bool>::value; }
function set_value (line 344) | void set_value(const T& value) {
function T (line 349) | const T* value() const { return value_; }
function Contains (line 351) | bool Contains(const T& value) {
function NeedsValue (line 364) | bool NeedsValue() const override { return !std::is_same<T, bool>::value; }
FILE: tachyon/base/flag/flag_forward.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/flag/flag_parser.cc
type tachyon::base (line 9) | namespace tachyon::base {
function ContainsOnlyAlpha (line 15) | bool ContainsOnlyAlpha(std::string_view text) {
function AppendActiveSubParser (line 20) | void AppendActiveSubParser(
type Costs (line 45) | struct Costs {
method Costs (line 46) | explicit Costs(size_t size) : size(size) {
method Init (line 55) | void Init() {
function GetLevenshteinDistance (line 76) | size_t GetLevenshteinDistance(std::string_view s1, std::string_view s2) {
function FlagBase (line 144) | FlagBase& FlagParserBase::AddFlag(std::unique_ptr<FlagBase> flag_base) {
function SubParser (line 149) | SubParser& FlagParserBase::AddSubParser() {
FILE: tachyon/base/flag/flag_parser.h
function namespace (line 18) | namespace tachyon::base {
FILE: tachyon/base/flag/flag_parser_unittest.cc
type tachyon::base (line 12) | namespace tachyon::base {
function TEST (line 24) | TEST(FlagParserTest, ValidateInternally) {
function TEST (line 94) | TEST(FlagParserTest, UndefinedArgument) {
function TEST (line 109) | TEST(FlagParserTest, DefaultValue) {
function TEST (line 121) | TEST(FlagParserTest, PositionalArgumtens) {
function TEST (line 133) | TEST(FlagParserTest, RequiredOptionalArguments) {
function TEST (line 150) | TEST(FlagParserTest, ConcatenatedOptionalFlags) {
function TEST (line 167) | TEST(FlagParserTest, VectorFlag) {
function TEST (line 177) | TEST(FlagParserTest, CustomParseValueCallback) {
function TEST (line 202) | TEST(FlagParserTest, ParseValueFromEnvironment) {
function TEST (line 213) | TEST(FlagParserTest, ParseKnown) {
function TEST (line 249) | TEST(FlagParserTest, ParseWithForward) {
function TEST (line 270) | TEST(FlagParserTest, SubParserTest) {
FILE: tachyon/base/flag/flag_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function TEST (line 11) | TEST(FlagTest, ShortName) {
function TEST (line 30) | TEST(FlagTest, LongName) {
function TEST (line 47) | TEST(FlagTest, Name) {
function TEST (line 64) | TEST(FlagTest, ParseValue) {
FILE: tachyon/base/flag/flag_value_traits.h
function namespace (line 22) | namespace tachyon::base {
FILE: tachyon/base/flag/numeric_flags.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/functional/callback.h
function callback_ (line 28) | callback_(callback) {}
function R (line 41) | R Run(Args... args) && {
function Reset (line 51) | void Reset() { callback_ = nullptr; }
function callback_ (line 62) | constexpr RepeatingCallback() = default;
function callback_ (line 68) | callback_(callback) {}
function R (line 72) | R Run(Args... args) const& { return callback_(std::forward<Args>(args).....
function R (line 74) | R Run(Args... args) && {
function Reset (line 84) | void Reset() { callback_ = nullptr; }
FILE: tachyon/base/functional/callback_forward.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/functional/function_ref.h
function namespace (line 16) | namespace tachyon::base {
FILE: tachyon/base/functional/function_ref_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function Moo (line 13) | char Moo(float) {
type C (line 17) | struct C {
method Method (line 18) | long Method() { return value; }
function TEST (line 24) | TEST(FunctionRefTest, FreeFunction) {
function TEST (line 28) | TEST(FunctionRefTest, Method) {
function TEST (line 35) | TEST(FunctionRefTest, Lambda) {
function TEST (line 42) | TEST(FunctionRefTest, AbslConversion) {
function TEST (line 74) | TEST(FunctionRefTest, ConvertibleReturnTypes) {
FILE: tachyon/base/functional/functor_traits.h
function namespace (line 17) | namespace tachyon::base::internal {
function R (line 169) | R Invoke(Method method, ReceiverPtr&& receiver_ptr,
function R (line 187) | R Invoke(Method method, ReceiverPtr&& receiver_ptr,
FILE: tachyon/base/functional/identity.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/functional/identity_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(FunctionalTest, Identity) {
FILE: tachyon/base/functional/invoke.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/functional/invoke_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(FunctionalTest, Invoke) {
FILE: tachyon/base/immediate_crash.h
function namespace (line 145) | namespace tachyon::base {
FILE: tachyon/base/json/json.h
function namespace (line 14) | namespace tachyon::base {
FILE: tachyon/base/json/json_unittest.cc
type tachyon::base (line 8) | namespace tachyon::base {
type SimpleData (line 12) | struct SimpleData {
class JsonTest (line 25) | class JsonTest : public testing::Test {
method SetUp (line 27) | void SetUp() override {
class RapidJsonValueConverter<SimpleData> (line 41) | class RapidJsonValueConverter<SimpleData> {
method From (line 44) | static rapidjson::Value From(const SimpleData& value, Allocator& all...
method To (line 55) | static bool To(const rapidjson::Value& json_value, std::string_view ...
function TEST_F (line 74) | TEST_F(JsonTest, LoadAndParseJson) {
function TEST_F (line 85) | TEST_F(JsonTest, ParseInvalidJson) {
function TEST_F (line 100) | TEST_F(JsonTest, WriteToJson) {
FILE: tachyon/base/json/rapidjson_util.cc
type tachyon::base (line 5) | namespace tachyon::base {
function RapidJsonMismatchedTypeError (line 14) | std::string RapidJsonMismatchedTypeError(std::string_view key,
FILE: tachyon/base/json/rapidjson_util.h
function namespace (line 20) | namespace tachyon::base {
function To (line 210) | static bool To(const rapidjson::Value& json_value, std::string_view key,
function To (line 231) | static bool To(const rapidjson::Value& json_value, std::string_view key,
function To (line 255) | static bool To(const rapidjson::Value& json_value, std::string_view key,
function To (line 292) | static bool To(const rapidjson::Value& json_value, std::string_view key,
function To (line 322) | static bool To(const rapidjson::Value& json_value, std::string_view key,
function namespace (line 357) | namespace rapidjson {
FILE: tachyon/base/logging.cc
type tachyon::base (line 3) | namespace tachyon::base {
function ShouldCreateLogMessage (line 10) | bool ShouldCreateLogMessage(int severity) {
FILE: tachyon/base/logging.h
function namespace (line 18) | namespace tachyon::base {
FILE: tachyon/base/mac/foundation_util.h
function namespace (line 26) | namespace tachyon::base {
function namespace (line 30) | namespace tachyon::base::mac {
FILE: tachyon/base/mac/mac_logging.h
function namespace (line 31) | namespace google {
FILE: tachyon/base/mac/mach_logging.cc
function FormatMachErrorNumber (line 15) | std::string FormatMachErrorNumber(mach_error_t mach_err) {
type google (line 27) | namespace google {
FILE: tachyon/base/mac/mach_logging.h
function namespace (line 33) | namespace google {
FILE: tachyon/base/mac/scoped_cftyperef.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/mac/scoped_mach_port.cc
type tachyon::base::mac (line 9) | namespace tachyon::base::mac {
type internal (line 10) | namespace internal {
function CreateMachPort (line 37) | bool CreateMachPort(ScopedMachReceiveRight* receive,
function ScopedMachSendRight (line 65) | ScopedMachSendRight RetainMachSendRight(mach_port_t port) {
FILE: tachyon/base/mac/scoped_mach_port.h
function namespace (line 15) | namespace tachyon::base::mac {
FILE: tachyon/base/mac/scoped_typeref.h
function namespace (line 11) | namespace tachyon::base {
function element_type (line 94) | [[nodiscard]] element_type* InitializeInto() {
function reset (line 99) | void reset(const ScopedTypeRef<T, Traits>& that) {
function swap (line 125) | void swap(ScopedTypeRef& that) {
function element_type (line 134) | [[nodiscard]] element_type release() {
FILE: tachyon/base/maybe_owned.h
function namespace (line 8) | namespace tachyon::base {
function ptr_ (line 60) | constexpr MaybeOwned(Ptr ptr) : ptr_(ptr) {}
function ConstRef (line 81) | ConstRef operator*() const { return MaybeOwnedTraits<T>::ToConstRef(ptr_...
function Ptr (line 83) | Ptr operator->() { return ptr(); }
function ConstPtr (line 84) | ConstPtr operator->() const { return ptr(); }
function Ptr (line 86) | Ptr ptr() { return ptr_; }
FILE: tachyon/base/maybe_owned_traits.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/memory/aligned_memory.cc
type tachyon::base (line 11) | namespace tachyon::base {
FILE: tachyon/base/memory/aligned_memory.h
function namespace (line 36) | namespace tachyon::base {
FILE: tachyon/base/memory/aligned_memory_unittest.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TEST (line 13) | TEST(AlignedMemoryTest, DynamicAllocation) {
function TEST (line 35) | TEST(AlignedMemoryTest, ScopedDynamicAllocation) {
function TEST (line 46) | TEST(AlignedMemoryTest, IsAligned) {
FILE: tachyon/base/memory/scoped_policy.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/message_loop/message_pump_type.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/no_destructor.h
function explicit (line 96) | explicit NoDestructor(const T& x) { new (storage_) T(x); }
function explicit (line 97) | explicit NoDestructor(T&& x) { new (storage_) T(std::move(x)); }
FILE: tachyon/base/numerics/checked_math.h
function namespace (line 15) | namespace tachyon::base {
function CheckedNumeric (line 217) | constexpr CheckedNumeric MathOp(const L lhs, const R rhs) {
function CheckedNumeric (line 241) | CheckedNumeric FastRuntimeNegate() const {
function is_valid (line 255) | static constexpr bool is_valid(Src) { return true; }
function Src (line 256) | static constexpr Src value(Src value) { return value; }
function is_valid (line 261) | static constexpr bool is_valid(const CheckedNumeric<Src> v) {
function Src (line 264) | static constexpr Src value(const CheckedNumeric<Src> v) {
function is_valid (line 271) | static constexpr bool is_valid(const StrictNumeric<Src>) { return true; }
function Src (line 272) | static constexpr Src value(const StrictNumeric<Src> v) {
function IsValidForType (line 280) | bool IsValidForType(const CheckedNumeric<Src> value) {
FILE: tachyon/base/numerics/checked_math_impl.h
function CheckedAddImpl (line 24) | bool CheckedAddImpl(T x, T y, T* result) {
function Do (line 53) | constexpr bool Do(T x, U y, V* result) {
function CheckedSubImpl (line 88) | bool CheckedSubImpl(T x, T y, T* result) {
function Do (line 117) | constexpr bool Do(T x, U y, V* result) {
function CheckedMulImpl (line 152) | bool CheckedMulImpl(T x, T y, T* result) {
function Do (line 183) | constexpr bool Do(T x, U y, V* result) {
function Do (line 228) | constexpr bool Do(T x, U y, V* result) {
function Do (line 269) | constexpr bool Do(T x, U y, V* result) {
function Do (line 306) | constexpr bool Do(T x, U shift, V* result) {
function Do (line 339) | constexpr bool Do(T x, U shift, V* result) {
function Do (line 366) | constexpr bool Do(T x, U y, V* result) {
function Do (line 388) | constexpr bool Do(T x, U y, V* result) {
function Do (line 410) | constexpr bool Do(T x, U y, V* result) {
function Do (line 433) | constexpr bool Do(T x, U y, V* result) {
function Do (line 457) | constexpr bool Do(T x, U y, V* result) {
function T (line 539) | constexpr T WellDefinedConversionOrZero(Src value, bool is_valid) {
function T (line 580) | constexpr T WellDefinedConversionOrNaN(Src value, bool is_valid) {
FILE: tachyon/base/numerics/clamped_math.h
function namespace (line 15) | namespace tachyon::base {
function ClampedNumeric (line 154) | constexpr ClampedNumeric MathOp(const L lhs, const R rhs) {
function typename (line 187) | static constexpr typename UnderlyingType<Src>::type value(Src value) {
FILE: tachyon/base/numerics/clamped_math_impl.h
function T (line 27) | T SaturatedNegWrapper(T value) {
function T (line 38) | T SaturatedNegWrapper(T value) {
function T (line 45) | T SaturatedNegWrapper(T value) {
function T (line 51) | T SaturatedAbsWrapper(T value) {
function T (line 68) | T SaturatedAbsWrapper(T value) {
function V (line 242) | constexpr V Do(T x, U y) {
function V (line 259) | constexpr V Do(T x, U y) {
function V (line 276) | constexpr V Do(T x, U y) {
FILE: tachyon/base/numerics/math_constants.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/numerics/ostream_operators.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/numerics/ranges.h
function namespace (line 11) | namespace tachyon::base {
FILE: tachyon/base/numerics/safe_conversions.h
function namespace (line 23) | namespace tachyon::base {
function IsValueInRangeForNumericType (line 88) | bool IsValueInRangeForNumericType(Src value) {
function Dst (line 104) | Dst checked_cast(Src value) {
function T (line 118) | static constexpr T NaN() {
function T (line 126) | static constexpr T Overflow() {
function T (line 134) | static constexpr T Underflow() {
function Dst (line 144) | Dst saturated_cast_impl(Src value, RangeCheck constraint) {
function Dst (line 162) | static constexpr Dst Do(Src value) {
function Dst (line 176) | static constexpr Dst Do(Src value) {
function Dst (line 189) | static constexpr Dst Do(Src value) {
function Dst (line 209) | Dst saturated_cast(Src value) {
function Dst (line 225) | Dst strict_cast(Src value) {
function StrictNumeric (line 276) | constexpr StrictNumeric() : value_(0) {}
FILE: tachyon/base/numerics/safe_conversions_arm_impl.h
function namespace (line 14) | namespace tachyon::base {
FILE: tachyon/base/numerics/safe_conversions_impl.h
function namespace (line 21) | namespace tachyon::base {
function class (line 181) | class RangeCheck {
function T (line 245) | constexpr T Adjust(T value) {
function RangeCheck (line 401) | RangeCheck DstRangeRelationToSrcRange(Src value) {
type ArithmeticPromotionCategory (line 442) | enum ArithmeticPromotionCategory {
function IsLessImpl (line 690) | bool IsLessImpl(const L lhs,
function Test (line 703) | static constexpr bool Test(const L lhs, const R rhs) {
function IsLessOrEqualImpl (line 710) | bool IsLessOrEqualImpl(const L lhs,
function Test (line 723) | static constexpr bool Test(const L lhs, const R rhs) {
function IsGreaterImpl (line 730) | bool IsGreaterImpl(const L lhs,
function Test (line 743) | static constexpr bool Test(const L lhs, const R rhs) {
function IsGreaterOrEqualImpl (line 750) | bool IsGreaterOrEqualImpl(const L lhs,
function Test (line 763) | static constexpr bool Test(const L lhs, const R rhs) {
function Test (line 773) | static constexpr bool Test(const L lhs, const R rhs) {
function Test (line 785) | static constexpr bool Test(const L lhs, const R rhs) {
function SafeCompare (line 796) | bool SafeCompare(const L lhs, const R rhs) {
function IsMaxInRangeForNumericType (line 811) | bool IsMaxInRangeForNumericType() {
function IsMinInRangeForNumericType (line 817) | bool IsMinInRangeForNumericType() {
function Dst (line 823) | Dst CommonMax() {
function Dst (line 830) | Dst CommonMin() {
function Dst (line 840) | Dst CommonMaxOrMin(bool is_min) {
FILE: tachyon/base/numerics/safe_math_arm_impl.h
function namespace (line 13) | namespace tachyon::base {
FILE: tachyon/base/numerics/safe_math_clang_gcc_impl.h
function namespace (line 21) | namespace tachyon::base {
FILE: tachyon/base/numerics/safe_math_shared_impl.h
function namespace (line 36) | namespace tachyon::base {
function T (line 139) | T NegateWrapper(T value) {
function T (line 148) | T NegateWrapper(T value) {
function typename (line 154) | typename std::make_unsigned<T>::type InvertWrapper(T value) {
function T (line 160) | T AbsWrapper(T value) {
function T (line 167) | T AbsWrapper(T value) {
FILE: tachyon/base/openmp_util.h
function namespace (line 37) | namespace tachyon::base {
FILE: tachyon/base/parallelize.h
function namespace (line 13) | namespace tachyon::base {
function copy_span (line 292) | auto copy_span = absl::MakeSpan(new_container).first(container.size());
FILE: tachyon/base/parallelize_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function IncrementEachElement (line 13) | void IncrementEachElement(absl::Span<int> chunk) {
function SumElements (line 19) | int SumElements(absl::Span<int> chunk) {
function TEST (line 29) | TEST(ParallelizeTest, ParallelizeByChunks) {
function TEST (line 70) | TEST(ParallelizeTest, Parallelize) {
function TEST (line 89) | TEST(ParallelizeTest, ParallelizeMapByChunkSize) {
function TEST (line 96) | TEST(ParallelizeTest, ParallelizeMap) {
FILE: tachyon/base/posix/can_lower_nice_to.cc
type tachyon::base::internal (line 22) | namespace tachyon::base::internal {
function CanLowerNiceTo (line 24) | bool CanLowerNiceTo(int nice_value) {
FILE: tachyon/base/posix/can_lower_nice_to.h
function namespace (line 8) | namespace tachyon::base::internal {
FILE: tachyon/base/process/process_handle.cc
type tachyon::base (line 14) | namespace tachyon::base {
function UniqueProcId (line 25) | UniqueProcId GetUniqueIdForProcess() {
function InitUniqueIdForProcessInPidNamespace (line 35) | void InitUniqueIdForProcessInPidNamespace(ProcessId pid_outside_of_nam...
FILE: tachyon/base/process/process_handle.h
function namespace (line 24) | namespace tachyon::base {
FILE: tachyon/base/process/process_handle_posix.cc
type tachyon::base (line 9) | namespace tachyon::base {
function ProcessId (line 11) | ProcessId GetCurrentProcId() {
function ProcessHandle (line 15) | ProcessHandle GetCurrentProcessHandle() {
function ProcessId (line 19) | ProcessId GetProcId(ProcessHandle process) {
FILE: tachyon/base/profiler.cc
type tachyon::base (line 5) | namespace tachyon::base {
FILE: tachyon/base/profiler.h
function namespace (line 25) | namespace tachyon::base {
FILE: tachyon/base/random.cc
type tachyon::base (line 3) | namespace tachyon::base {
function Bernoulli (line 10) | bool Bernoulli(double probability) {
FILE: tachyon/base/random.h
function namespace (line 10) | namespace tachyon::base {
FILE: tachyon/base/random_unittest.cc
type tachyon::base (line 6) | namespace tachyon::base {
class RandomWithRangeTest (line 13) | class RandomWithRangeTest : public testing::Test {}
function TYPED_TEST (line 20) | TYPED_TEST(RandomWithRangeTest, SampleDifferentValue) {
function TYPED_TEST (line 33) | TYPED_TEST(RandomWithRangeTest, SampleWithinRange) {
function TEST (line 41) | TEST(RandomTest, UniformElementWithArray) {
function TEST (line 48) | TEST(RandomTest, UniformElementWithVector) {
function TEST (line 56) | TEST(RandomTest, UniformElementWithConstVector) {
FILE: tachyon/base/range.h
function namespace (line 12) | namespace tachyon::base {
function Range (line 123) | constexpr static Range All() { return Range(); }
function Range (line 125) | constexpr static Range From(T from) {
function Range (line 131) | constexpr static Range Until(T to) {
function Iterator (line 137) | Iterator begin() const {
function Range (line 153) | constexpr Range Intersect(Range other) const {
function IsEmpty (line 174) | constexpr bool IsEmpty() const {
function Contains (line 183) | constexpr bool Contains(T value) const {
function operator (line 195) | constexpr bool operator==(Range other) const {
function operator (line 198) | constexpr bool operator!=(Range other) const { return !operator==(other); }
FILE: tachyon/base/range_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
class RangeTest (line 12) | class RangeTest : public testing::Test {}
function TYPED_TEST (line 19) | TYPED_TEST(RangeTest, Iterator) {
function TYPED_TEST (line 38) | TYPED_TEST(RangeTest, IsEmpty) {
function TYPED_TEST (line 52) | TYPED_TEST(RangeTest, Contains) {
function TYPED_TEST (line 70) | TYPED_TEST(RangeTest, Intersect) {
function TYPED_TEST (line 80) | TYPED_TEST(RangeTest, GetSize) {
FILE: tachyon/base/ranges/algorithm.h
function namespace (line 22) | namespace tachyon::base {
FILE: tachyon/base/ranges/algorithm_unittest.cc
type tachyon::base (line 27) | namespace tachyon::base {
type Int (line 43) | struct Int {
method Int (line 44) | constexpr Int() = default;
method Int (line 45) | constexpr Int(int value) : value(value) {}
type MoveOnlyInt (line 61) | struct MoveOnlyInt {
method MoveOnlyInt (line 62) | MoveOnlyInt(int value) : value(value) {}
method MoveOnlyInt (line 63) | MoveOnlyInt(MoveOnlyInt&& other) : value(std::exchange(other.value, ...
method MoveOnlyInt (line 65) | MoveOnlyInt& operator=(MoveOnlyInt&& other) {
function is_even (line 73) | constexpr bool is_even(int i) { return i % 2 == 0; }
function is_odd (line 75) | bool is_odd(int i) { return i % 2 == 1; }
function make_vector (line 78) | auto make_vector(Iter begin, Iter end) {
function TEST (line 85) | TEST(RangesTest, AllOf) {
function TEST (line 104) | TEST(RangesTest, AnyOf) {
function TEST (line 117) | TEST(RangesTest, NoneOf) {
function TEST (line 135) | TEST(RangesTest, ForEach) {
function TEST (line 168) | TEST(RangesTest, ForEachN) {
function TEST (line 189) | TEST(RangesTest, Find) {
function TEST (line 201) | TEST(RangesTest, FindIf) {
function TEST (line 214) | TEST(RangesTest, FindIfNot) {
function TEST (line 227) | TEST(RangesTest, FindEnd) {
function TEST (line 250) | TEST(RangesTest, FindFirstOf) {
function TEST (line 270) | TEST(RangesTest, AdjacentFind) {
function TEST (line 286) | TEST(RangesTest, Count) {
function TEST (line 299) | TEST(RangesTest, CountIf) {
function TEST (line 311) | TEST(RangesTest, Mismatch) {
function TEST (line 326) | TEST(RangesTest, Equal) {
function TEST (line 352) | TEST(RangesTest, IsPermutation) {
function TEST (line 377) | TEST(RangesTest, Search) {
function TEST (line 400) | TEST(RangesTest, SearchN) {
function TEST (line 435) | TEST(RangesTest, Copy) {
function TEST (line 449) | TEST(RangesTest, CopyN) {
function TEST (line 459) | TEST(RangesTest, CopyIf) {
function TEST (line 479) | TEST(RangesTest, CopyBackward) {
function TEST (line 494) | TEST(RangesTest, Move) {
function TEST (line 513) | TEST(RangesTest, MoveBackward) {
function TEST (line 532) | TEST(RangesTest, SwapRanges) {
function TEST (line 556) | TEST(RangesTest, UnaryTransform) {
function TEST (line 576) | TEST(RangesTest, BinaryTransform) {
function TEST (line 595) | TEST(RangesTest, Replace) {
function TEST (line 605) | TEST(RangesTest, ReplaceIf) {
function TEST (line 619) | TEST(RangesTest, ReplaceCopy) {
function TEST (line 632) | TEST(RangesTest, ReplaceCopyIf) {
function TEST (line 646) | TEST(RangesTest, Fill) {
function TEST (line 656) | TEST(RangesTest, FillN) {
function TEST (line 666) | TEST(RangesTest, Generate) {
function TEST (line 677) | TEST(RangesTest, GenerateN) {
function TEST (line 685) | TEST(RangesTest, Remove) {
function TEST (line 699) | TEST(RangesTest, RemoveIf) {
function TEST (line 713) | TEST(RangesTest, RemoveCopy) {
function TEST (line 726) | TEST(RangesTest, RemovCopyIf) {
function TEST (line 741) | TEST(RangesTest, Unique) {
function TEST (line 757) | TEST(RangesTest, UniqueCopy) {
function TEST (line 771) | TEST(RangesTest, Reverse) {
function TEST (line 781) | TEST(RangesTest, ReverseCopy) {
function TEST (line 794) | TEST(RangesTest, Rotate) {
function TEST (line 804) | TEST(RangesTest, RotateCopy) {
function TEST (line 818) | TEST(RangesTest, Shuffle) {
function TEST (line 834) | TEST(RangesTest, Sort) {
function TEST (line 850) | TEST(RangesTest, StableSort) {
function TEST (line 872) | TEST(RangesTest, PartialSort) {
function TEST (line 898) | TEST(RangesTest, PartialSortCopy) {
function TEST (line 928) | TEST(RangesTest, IsSorted) {
function TEST (line 939) | TEST(RangesTest, IsSortedUntil) {
function TEST (line 954) | TEST(RangesTest, NthElement) {
function TEST (line 965) | TEST(RangesTest, LowerBound) {
function TEST (line 990) | TEST(RangesTest, UpperBound) {
function TEST (line 1015) | TEST(RangesTest, EqualRange) {
function TEST (line 1052) | TEST(RangesTest, BinarySearch) {
function TEST (line 1077) | TEST(RangesTest, IsPartitioned) {
function TEST (line 1089) | TEST(RangesTest, Partition) {
function TEST (line 1107) | TEST(RangesTest, StablePartition) {
function TEST (line 1117) | TEST(RangesTest, PartitionCopy) {
function TEST (line 1138) | TEST(RangesTest, PartitionPoint) {
function TEST (line 1149) | TEST(RangesTest, Merge) {
function TEST (line 1171) | TEST(RangesTest, InplaceMerge) {
function TEST (line 1182) | TEST(RangesTest, Includes) {
function TEST (line 1203) | TEST(RangesTest, SetUnion) {
function TEST (line 1237) | TEST(RangesTest, SetIntersection) {
function TEST (line 1267) | TEST(RangesTest, SetDifference) {
function TEST (line 1301) | TEST(RangesTest, SetSymmetricDifference) {
function TEST (line 1336) | TEST(RangesTest, PushHeap) {
function TEST (line 1349) | TEST(RangesTest, PopHeap) {
function TEST (line 1360) | TEST(RangesTest, MakeHeap) {
function TEST (line 1372) | TEST(RangesTest, SortHeap) {
function TEST (line 1383) | TEST(RangesTest, IsHeap) {
function TEST (line 1393) | TEST(RangesTest, IsHeapUntil) {
function TEST (line 1404) | TEST(RangesTest, Min) {
function TEST (line 1428) | TEST(RangesTest, Max) {
function TEST (line 1452) | TEST(RangesTest, Minmax) {
function TEST (line 1501) | TEST(RangesTest, MinElement) {
function TEST (line 1509) | TEST(RangesTest, MaxElement) {
function TEST (line 1517) | TEST(RangesTest, MinmaxElement) {
function TEST (line 1531) | TEST(RangesTest, Clamp) {
function TEST (line 1601) | TEST(RangesTest, LexicographicalCompare) {
function TEST (line 1656) | TEST(RangesTest, NextPermutation) {
function TEST (line 1676) | TEST(RangesTest, PrevPermutation) {
type internal (line 1696) | namespace internal {
type TestPair (line 1698) | struct TestPair {
function TEST (line 1707) | TEST(RangesTest, DontClashWithPredicateFromInternalInvoke) {
FILE: tachyon/base/ranges/functional.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/ranges/functional_unittest.cc
type tachyon::base (line 9) | namespace tachyon::base {
function TEST (line 11) | TEST(RangesTest, EqualTo) {
function TEST (line 18) | TEST(RangesTest, Less) {
FILE: tachyon/base/ranges/ranges.h
function namespace (line 15) | namespace tachyon::base {
function namespace (line 91) | namespace ranges {
FILE: tachyon/base/ranges/ranges_unittest.cc
type tachyon::base (line 13) | namespace tachyon::base {
type S (line 19) | struct S {
function begin (line 23) | auto begin(const S& s) { return s.v.begin(); }
function end (line 25) | auto end(const S& s) { return s.v.end(); }
type T (line 29) | struct T {
method begin (line 30) | constexpr int begin() const { return 1; }
method end (line 31) | constexpr int end() const { return 1; }
function GenerateArray (line 37) | constexpr std::array<int, N> GenerateArray() {
function TEST (line 49) | TEST(RangesTest, BeginPrefersMember) {
function TEST (line 54) | TEST(RangesTest, BeginConstexprContainers) {
function TEST (line 65) | TEST(RangesTest, BeginRegularContainers) {
function TEST (line 73) | TEST(RangesTest, EndPrefersMember) {
function TEST (line 78) | TEST(RangesTest, EndConstexprContainers) {
function TEST (line 89) | TEST(RangesTest, EndRegularContainers) {
function TEST (line 97) | TEST(RangesTest, BeginEndStdArray) {
FILE: tachyon/base/ref.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/ref_unittest.cc
type tachyon::base (line 6) | namespace tachyon::base {
function TEST (line 8) | TEST(RefTest, BoolCasting) {
function TEST (line 16) | TEST(RefTest, MutableRef) {
function TEST (line 26) | TEST(RefTest, ConstRef) {
function TEST (line 33) | TEST(RefTest, Shallow) {
function TEST (line 49) | TEST(RefTest, Deep) {
FILE: tachyon/base/scoped_generic.h
function namespace (line 17) | namespace tachyon::base {
function explicit (line 107) | explicit ScopedGeneric(const element_type& value) : data_(value) {
function virtual (line 125) | virtual ~ScopedGeneric() {
function element_type (line 150) | [[nodiscard]] element_type release() {
function class (line 193) | class Receiver {
FILE: tachyon/base/scoped_generic_unittest.cc
type tachyon::base (line 21) | namespace tachyon::base {
type IntTraits (line 25) | struct IntTraits {
method IntTraits (line 26) | IntTraits(std::vector<int>* freed) : freed_ints(freed) {}
method InvalidValue (line 28) | static int InvalidValue() {
method Free (line 31) | void Free(int value) {
function TEST (line 43) | TEST(ScopedGenericTest, ScopedGeneric) {
function TEST (line 114) | TEST(ScopedGenericTest, Operators) {
function TEST (line 142) | TEST(ScopedGenericTest, Receive) {
type TrackedIntTraits (line 167) | struct TrackedIntTraits : public ScopedGenericOwnershipTracking {
method TrackedIntTraits (line 170) | TrackedIntTraits(std::unordered_set<int>* freed, OwnerMap* owners)
method InvalidValue (line 173) | static int InvalidValue() { return -1; }
method Free (line 175) | void Free(int value) {
method Acquire (line 183) | void Acquire(const ScopedGeneric<int, TrackedIntTraits>& owner, int ...
method Release (line 189) | void Release(const ScopedGeneric<int, TrackedIntTraits>& owner, int ...
function TEST (line 205) | TEST(ScopedGenericTest, OwnershipTracking) {
function TEST (line 303) | TEST(ScopedGenericTest, NoCompile) {
FILE: tachyon/base/sort.h
function namespace (line 7) | namespace tachyon::base {
FILE: tachyon/base/sort_benchmark.cc
type tachyon::math (line 7) | namespace tachyon::math {
type SortMethod (line 9) | enum class SortMethod {
function GetData (line 16) | std::vector<uint64_t> GetData(size_t size) {
function GetPartiallySortedData (line 30) | std::vector<uint64_t> GetPartiallySortedData(size_t size) {
function BM_SortRandomData (line 49) | void BM_SortRandomData(benchmark::State& state) {
function BM_SortPartiallySortedData (line 69) | void BM_SortPartiallySortedData(benchmark::State& state) {
FILE: tachyon/base/strings/rust_stringifier.h
function namespace (line 14) | namespace tachyon::base {
FILE: tachyon/base/strings/string_number_conversions.cc
type tachyon::base (line 6) | namespace tachyon::base {
function StringToInt (line 8) | bool StringToInt(std::string_view input, int* output) {
function StringToUint (line 12) | bool StringToUint(std::string_view input, unsigned* output) {
function StringToInt64 (line 16) | bool StringToInt64(std::string_view input, int64_t* output) {
function StringToUint64 (line 20) | bool StringToUint64(std::string_view input, uint64_t* output) {
function StringToSizeT (line 24) | bool StringToSizeT(std::string_view input, size_t* output) {
function StringToFloat (line 28) | bool StringToFloat(std::string_view input, float* output) {
function StringToDouble (line 32) | bool StringToDouble(std::string_view input, double* output) {
function HexEncode (line 36) | std::string HexEncode(const void* bytes, size_t size, bool use_lower_c...
function HexEncode (line 58) | std::string HexEncode(absl::Span<const uint8_t> bytes, bool use_lower_...
function HexStringToInt (line 62) | bool HexStringToInt(std::string_view input, int* output) {
function HexStringToUint (line 66) | bool HexStringToUint(std::string_view input, unsigned* output) {
function HexStringToInt64 (line 70) | bool HexStringToInt64(std::string_view input, int64_t* output) {
function HexStringToUint64 (line 74) | bool HexStringToUint64(std::string_view input, uint64_t* output) {
function HexStringToBytes (line 78) | bool HexStringToBytes(std::string_view input, std::vector<uint8_t>* ou...
function HexStringToString (line 83) | bool HexStringToString(std::string_view input, std::string* output) {
function HexStringToSpan (line 88) | bool HexStringToSpan(std::string_view input, absl::Span<uint8_t> outpu...
FILE: tachyon/base/strings/string_number_conversions.h
function string (line 31) | string HexToString(T value) {
FILE: tachyon/base/strings/string_number_conversions_internal.h
function namespace (line 15) | namespace tachyon::base {
FILE: tachyon/base/strings/string_number_conversions_unittest.cc
type tachyon::base (line 6) | namespace tachyon::base {
function TEST (line 8) | TEST(StringNumberConversionTest, NumberToString) {
function TEST (line 15) | TEST(StringNumberConversionTest, StringToInt) {
function TEST (line 23) | TEST(StringNumberConversionTest, HexToString) {
function TEST (line 28) | TEST(StringNumberConversionTest, HexEncode) {
function TEST (line 50) | TEST(StringNumberConversionTest, HexStringToInt) {
function TEST (line 60) | TEST(StringNumberConversionTest, HexStringToSomethingElse) {
FILE: tachyon/base/strings/string_util.cc
type tachyon::base (line 12) | namespace tachyon::base {
type CaseInsensitiveCompareASCII (line 19) | struct CaseInsensitiveCompareASCII {
function DoMaybePrepend0x (line 27) | std::string DoMaybePrepend0x(T&& str) {
function ToLowerASCII (line 36) | std::string ToLowerASCII(std::string_view str) {
function ToLowerASCII (line 40) | std::u16string ToLowerASCII(std::u16string_view str) {
function ToUpperASCII (line 44) | std::string ToUpperASCII(std::string_view str) {
function ToUpperASCII (line 48) | std::u16string ToUpperASCII(std::u16string_view str) {
function CapitalizeASCII (line 52) | std::string CapitalizeASCII(std::string_view str) {
function CapitalizeASCII (line 58) | std::u16string CapitalizeASCII(std::u16string_view str) {
function StartsWith (line 69) | bool StartsWith(std::string_view str, std::string_view search_for,
function EndsWith (line 89) | bool EndsWith(std::string_view str, std::string_view search_for,
function ConsumePrefix (line 110) | bool ConsumePrefix(std::string_view* str, std::string_view search_for,
function ConsumeSuffix (line 119) | bool ConsumeSuffix(std::string_view* str, std::string_view search_for,
function ConsumePrefix0x (line 128) | bool ConsumePrefix0x(std::string_view* str) { return ConsumePrefix(str...
function MaybePrepend0x (line 130) | std::string MaybePrepend0x(std::string_view str) {
function MaybePrepend0x (line 134) | std::string MaybePrepend0x(const std::string& str) {
function MaybePrepend0x (line 138) | std::string MaybePrepend0x(std::string&& str) {
function ToHexStringWithLeadingZero (line 142) | std::string ToHexStringWithLeadingZero(const std::string& str, size_t ...
FILE: tachyon/base/strings/string_util.h
function namespace (line 15) | namespace tachyon::base {
function TACHYON_EXPORT (line 61) | TACHYON_EXPORT constexpr int CompareCaseInsensitiveASCII(std::string_vie...
function EqualsCaseInsensitiveASCII (line 69) | inline bool EqualsCaseInsensitiveASCII(std::string_view a, std::string_v...
function CompareCase (line 91) | enum class CompareCase {
FILE: tachyon/base/strings/string_util_impl_helpers.h
function namespace (line 12) | namespace tachyon::base::internal {
FILE: tachyon/base/strings/string_util_internal.h
function namespace (line 15) | namespace tachyon::base::internal {
FILE: tachyon/base/strings/string_util_unittest.cc
type tachyon::base (line 5) | namespace tachyon::base {
function TEST (line 7) | TEST(StringUtilTest, EmptyString) { EXPECT_EQ(EmptyString(), ""); }
function TEST (line 9) | TEST(StringUtilTest, StartsWith) {
function TEST (line 17) | TEST(StringUtilTest, EndsWith) {
function TEST (line 25) | TEST(StringUtilTest, ConsumePrefix) {
function TEST (line 32) | TEST(StringUtilTest, ConsumeSuffix) {
function TEST (line 39) | TEST(StringUtilTest, ConsumePrefix0x) {
function TEST (line 48) | TEST(StringUtilTest, MaybePrepend0x) {
function TEST (line 55) | TEST(StringUtilTest, ToHexStringWithLeadingZero) {
FILE: tachyon/base/strings/sys_string_conversions.h
function namespace (line 32) | namespace tachyon::base {
FILE: tachyon/base/strings/sys_string_conversions_posix.cc
type tachyon::base (line 19) | namespace tachyon::base {
function SysWideToUTF8 (line 21) | std::string SysWideToUTF8(const std::wstring& wide) {
function SysUTF8ToWide (line 29) | std::wstring SysUTF8ToWide(std::string_view utf8) {
function SysWideToNativeMB (line 44) | std::string SysWideToNativeMB(const std::wstring& wide) {
function SysNativeMBToWide (line 48) | std::wstring SysNativeMBToWide(std::string_view native_mb) {
function SysWideToNativeMB (line 54) | std::string SysWideToNativeMB(const std::wstring& wide) {
function SysNativeMBToWide (line 111) | std::wstring SysNativeMBToWide(std::string_view native_mb) {
FILE: tachyon/base/system/sys_info.h
function namespace (line 12) | namespace tachyon::base {
FILE: tachyon/base/system/sys_info_posix.cc
type tachyon::base (line 10) | namespace tachyon::base {
FILE: tachyon/base/template_util.h
function namespace (line 15) | namespace tachyon::base {
FILE: tachyon/base/test/copy_only_int.cc
type tachyon::base (line 7) | namespace tachyon::base {
FILE: tachyon/base/test/copy_only_int.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/test/move_only_int.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/test/scoped_environment.cc
type tachyon::base (line 5) | namespace tachyon::base {
FILE: tachyon/base/test/scoped_environment.h
function namespace (line 7) | namespace tachyon::base {
FILE: tachyon/base/threading/platform_thread.cc
type tachyon::base (line 14) | namespace tachyon::base {
function ThreadTypeToString (line 23) | std::string ThreadTypeToString(ThreadType thread_type) {
function ThreadType (line 57) | ThreadType PlatformThreadBase::GetCurrentThreadType() {
type internal (line 80) | namespace internal {
function SetCurrentThreadType (line 82) | void SetCurrentThreadType(ThreadType thread_type,
FILE: tachyon/base/threading/platform_thread.h
type DWORD (line 39) | typedef DWORD PlatformThreadId;
type zx_handle_t (line 41) | typedef zx_handle_t PlatformThreadId;
type mach_port_t (line 43) | typedef mach_port_t PlatformThreadId;
type pid_t (line 45) | typedef pid_t PlatformThreadId;
function class (line 50) | class PlatformThreadHandle {
FILE: tachyon/base/threading/platform_thread_internal_posix.cc
type tachyon::base (line 15) | namespace tachyon::base {
type internal (line 17) | namespace internal {
function ThreadTypeToNiceValue (line 19) | int ThreadTypeToNiceValue(ThreadType thread_type) {
function ThreadPriorityForTest (line 28) | ThreadPriorityForTest NiceValueToThreadPriorityForTest(int nice_valu...
function GetCurrentThreadNiceValue (line 42) | int GetCurrentThreadNiceValue() {
FILE: tachyon/base/threading/platform_thread_internal_posix.h
function namespace (line 14) | namespace tachyon::base {
FILE: tachyon/base/threading/platform_thread_linux.cc
type tachyon::base (line 34) | namespace tachyon::base {
type sched_attr (line 73) | struct sched_attr {
function sched_getattr (line 121) | long sched_getattr(pid_t pid,
function sched_setattr (line 128) | long sched_setattr(pid_t pid,
type internal (line 313) | namespace internal {
type sched_param (line 317) | struct sched_param
function CanSetThreadTypeToRealtimeAudio (line 342) | bool CanSetThreadTypeToRealtimeAudio() {
function SetCurrentThreadTypeForPlatform (line 353) | bool SetCurrentThreadTypeForPlatform(ThreadType thread_type,
function GetCurrentThreadPriorityForPlatformForTest (line 382) | std::optional<ThreadPriorityForTest>
function InitThreading (line 494) | void InitThreading() {}
function TerminateOnThread (line 496) | void TerminateOnThread() {}
function GetDefaultThreadStackSize (line 498) | size_t GetDefaultThreadStackSize(const pthread_attr_t& attributes) {
FILE: tachyon/base/threading/platform_thread_posix.cc
type tachyon::base (line 42) | namespace tachyon::base {
type ThreadParams (line 50) | struct ThreadParams {
method ThreadParams (line 51) | ThreadParams() = default;
function CreateThread (line 101) | bool CreateThread(size_t stack_size,
class InitAtFork (line 174) | class InitAtFork {
method InitAtFork (line 176) | InitAtFork() {
type internal (line 187) | namespace internal {
function InvalidateTidCache (line 189) | void InvalidateTidCache() {
function SetCurrentThreadTypeImpl (line 362) | void SetCurrentThreadTypeImpl(ThreadType thread_type,
function PlatformThreadId (line 198) | PlatformThreadId PlatformThreadBase::CurrentId() {
function PlatformThreadRef (line 258) | PlatformThreadRef PlatformThreadBase::CurrentRef() {
function PlatformThreadHandle (line 263) | PlatformThreadHandle PlatformThreadBase::CurrentHandle() {
type timespec (line 276) | struct timespec
type internal (line 360) | namespace internal {
function InvalidateTidCache (line 189) | void InvalidateTidCache() {
function SetCurrentThreadTypeImpl (line 362) | void SetCurrentThreadTypeImpl(ThreadType thread_type,
function ThreadPriorityForTest (line 387) | ThreadPriorityForTest PlatformThreadBase::GetCurrentThreadPriorityForT...
FILE: tachyon/base/threading/platform_thread_ref.cc
type tachyon::base (line 9) | namespace tachyon::base {
FILE: tachyon/base/threading/platform_thread_ref.h
function namespace (line 24) | namespace tachyon::base {
FILE: tachyon/base/time/time.cc
type tachyon::base (line 9) | namespace tachyon::base {
function TimeDelta (line 14) | TimeDelta TimeDelta::FromAbsl(absl::Duration d) {
function TimeDelta (line 94) | TimeDelta TimeDelta::CeilToMultiple(TimeDelta interval) const {
function TimeDelta (line 102) | TimeDelta TimeDelta::FloorToMultiple(TimeDelta interval) const {
function TimeDelta (line 112) | TimeDelta TimeDelta::RoundToMultiple(TimeDelta interval) const {
function Time (line 127) | Time Time::Now() {
function time_t (line 132) | time_t Time::ToTimeT() const {
function Time (line 142) | Time Time::FromDoubleT(double dt) {
function Time (line 156) | Time Time::FromTimeSpec(const timespec& ts) {
function Time (line 163) | Time Time::FromAbsl(absl::Time time) { return Time(absl::ToUnixMicros(...
function Time (line 168) | Time Time::FromChrono(std::chrono::system_clock::time_point tp) {
function TimeTicks (line 186) | TimeTicks TimeTicks::FromChrono(std::chrono::steady_clock::time_point ...
FILE: tachyon/base/time/time.h
function namespace (line 94) | namespace tachyon::base {
function TimeDelta (line 307) | constexpr bool operator==(TimeDelta other) const {
function TimeDelta (line 310) | constexpr bool operator!=(TimeDelta other) const {
function TimeDelta (line 313) | constexpr bool operator<(TimeDelta other) const {
function TimeDelta (line 316) | constexpr bool operator<=(TimeDelta other) const {
function TimeDelta (line 319) | constexpr bool operator>(TimeDelta other) const {
function TimeDelta (line 322) | constexpr bool operator>=(TimeDelta other) const {
function explicit (line 337) | constexpr explicit TimeDelta(ClampedNumeric<int64_t> delta_us)
function TimeDelta (line 362) | constexpr TimeDelta TimeDelta::operator+(TimeDelta other) const {
function TimeDelta (line 370) | constexpr TimeDelta TimeDelta::operator-(TimeDelta other) const {
function Time (line 569) | static constexpr Time FromDeltaSinceUnixEpoch(TimeDelta delta) {
function TimeDelta (line 572) | constexpr TimeDelta ToDeltaSinceUnixEpoch() const;
function TimeDelta (line 628) | TimeDelta Days(T n) {
function TimeDelta (line 633) | TimeDelta Hours(T n) {
function TimeDelta (line 638) | TimeDelta Minutes(T n) {
function TimeDelta (line 643) | TimeDelta Seconds(T n) {
function TimeDelta (line 648) | TimeDelta Milliseconds(T n) {
function TimeDelta (line 653) | TimeDelta Microseconds(T n) {
function TimeDelta (line 657) | TimeDelta Nanoseconds(T n) {
function TimeDelta (line 662) | TimeDelta Hertz(T n) {
function namespace (line 672) | namespace time_internal {
function TimeDelta (line 705) | constexpr TimeDelta TimeDelta::FromChronoHours(std::chrono::hours d) {
function TimeDelta (line 710) | constexpr TimeDelta TimeDelta::FromChronoMinutes(std::chrono::minutes d) {
function TimeDelta (line 715) | constexpr TimeDelta TimeDelta::FromChronoSeconds(std::chrono::seconds d) {
function TimeDelta (line 720) | constexpr TimeDelta TimeDelta::FromChronoMilliseconds(
function TimeDelta (line 726) | constexpr TimeDelta TimeDelta::FromChronoMicroseconds(
function TimeDelta (line 732) | constexpr TimeDelta TimeDelta::FromChronoNanoseconds(
function TimeDelta (line 778) | constexpr TimeDelta TimeDelta::Max() {
function TimeDelta (line 783) | constexpr TimeDelta TimeDelta::Min() {
function TimeDelta (line 788) | constexpr TimeDelta TimeDelta::FiniteMax() {
function TimeDelta (line 793) | constexpr TimeDelta TimeDelta::FiniteMin() {
function namespace (line 798) | namespace time_internal {
function TimeDelta (line 825) | constexpr TimeDelta Time::ToDeltaSinceUnixEpoch() const {
function explicit (line 904) | constexpr explicit TimeTicks(int64_t us) : TimeBase(us) {}
function IsSupported (line 929) | [[nodiscard]] static bool IsSupported() {
function WaitUntilInitialized (line 942) | static void WaitUntilInitialized() {
function explicit (line 962) | constexpr explicit ThreadTicks(int64_t us) : TimeBase(us) {}
FILE: tachyon/base/time/time_conversion_posix.cc
type tachyon::base (line 11) | namespace tachyon::base {
function TimeDelta (line 14) | TimeDelta TimeDelta::FromTimeSpec(const timespec& ts) {
type timespec (line 19) | struct timespec
type timespec (line 26) | struct timespec
function Time (line 33) | Time Time::FromTimeVal(struct timeval t) {
type timeval (line 44) | struct timeval
type timeval (line 45) | struct timeval
FILE: tachyon/base/time/time_delta_flag.h
function namespace (line 13) | namespace tachyon::base {
type Flag (line 71) | typedef Flag<TimeDelta> TimeDeltaFlag;
FILE: tachyon/base/time/time_delta_flag_unittest.cc
type tachyon::base (line 8) | namespace tachyon::base {
function TEST (line 10) | TEST(TimeDeltaFlagTest, ParseValue) {
FILE: tachyon/base/time/time_interval.cc
type tachyon::base (line 3) | namespace tachyon::base {
function TimeDelta (line 7) | TimeDelta TimeInterval::GetTimeDelta(bool update) {
FILE: tachyon/base/time/time_interval.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/time/time_interval_unittest.cc
type tachyon::base (line 7) | namespace tachyon::base {
function TEST (line 9) | TEST(TimeIntervalTest, GetTimeDelta) {
FILE: tachyon/base/time/time_now_posix.cc
type tachyon::base (line 11) | namespace tachyon::base {
function ConvertTimespecToMicros (line 15) | int64_t ConvertTimespecToMicros(const struct timespec& ts) {
function ClockNow (line 37) | int64_t ClockNow(clockid_t clk_id) {
function TimeTicks (line 49) | TimeTicks TimeTicks::Now() { return TimeTicks(ClockNow(CLOCK_MONOTONIC...
function ThreadTicks (line 52) | ThreadTicks ThreadTicks::Now() {
FILE: tachyon/base/time/time_stamp.cc
type tachyon::base (line 3) | namespace tachyon::base {
function TimeDelta (line 5) | TimeDelta TimeStamp::GetTimeDelta(bool update) {
FILE: tachyon/base/time/time_stamp.h
function namespace (line 9) | namespace tachyon::base {
FILE: tachyon/base/time/time_stamp_unittest.cc
type tachyon::base (line 7) | namespace tachyon::base {
function TEST (line 9) | TEST(TimeStampTest, GetTimeDelta) {
FILE: tachyon/base/time/time_unittest.cc
type tachyon::base (line 12) | namespace tachyon::base {
function TEST (line 14) | TEST(TimeTest, Max) {
function TEST (line 24) | TEST(TimeTest, MaxConversions) {
function TEST (line 64) | TEST(TimeTest, Min) {
function TEST (line 74) | TEST(TimeTicks, Deltas) {
function TEST (line 101) | TEST(ThreadTicks, ThreadNow) {
function TEST (line 121) | TEST(TimeDelta, FromAndIn) {
function TEST (line 150) | TEST(TimeDelta, InRoundsTowardsZero) {
function TEST (line 163) | TEST(TimeDelta, InDaysFloored) {
function TEST (line 177) | TEST(TimeDelta, InSecondsFloored) {
function TEST (line 192) | TEST(TimeDelta, InMillisecondsRoundedUp) {
function TEST (line 210) | TEST(TimeDelta, InXXXOverflow) {
function TEST (line 229) | TEST(TimeDelta, TimeSpecConversion) {
function TEST (line 256) | TEST(TimeDelta, Hz) {
function AnyToString (line 280) | std::string AnyToString(Any any) {
function TEST (line 286) | TEST(TimeDelta, Magnitude) {
function TEST (line 307) | TEST(TimeDelta, ZeroMinMax) {
function TEST (line 324) | TEST(TimeDelta, MaxConversions) {
function TEST (line 386) | TEST(TimeDelta, MinConversions) {
function TEST (line 400) | TEST(TimeDelta, FiniteMaxMin) {
function TEST (line 411) | TEST(TimeDelta, NumericOperators) {
function TEST (line 455) | TEST(TimeDelta, TimeDeltaOperators) {
function TEST (line 470) | TEST(TimeDelta, Overflows) {
function TEST (line 608) | TEST(TimeDelta, CeilToMultiple) {
function TEST (line 644) | TEST(TimeDelta, FloorToMultiple) {
function TEST (line 680) | TEST(TimeDelta, RoundToMultiple) {
function TEST (line 716) | TEST(TimeBase, AddSubDeltaSaturates) {
function TEST (line 746) | TEST(TimeBase, AddSubInfinities) {
function TimeDelta (line 763) | constexpr TimeDelta TestTimeDeltaConstexprCopyAssignment() {
function TEST (line 770) | TEST(TimeDelta, ConstexprAndTriviallyCopiable) {
function TEST (line 783) | TEST(TimeDeltaLogging, DCheckEqCompiles) {
function TEST (line 787) | TEST(TimeDeltaLogging, EmptyIsZero) {
function TEST (line 792) | TEST(TimeDeltaLogging, FiveHundredMs) {
function TEST (line 797) | TEST(TimeDeltaLogging, MinusTenSeconds) {
function TEST (line 802) | TEST(TimeDeltaLogging, DoesNotMessUpFormattingFlags) {
function TEST (line 809) | TEST(TimeDeltaLogging, DoesNotMakeStreamBad) {
function TEST (line 815) | TEST(TimeLogging, DCheckEqCompiles) { DCHECK_EQ(Time(), Time()); }
function TEST (line 817) | TEST(TimeLogging, DoesNotMessUpFormattingFlags) {
function TEST (line 824) | TEST(TimeLogging, DoesNotMakeStreamBad) {
function TEST (line 830) | TEST(TimeTicksLogging, DCheckEqCompiles) {
function TEST (line 834) | TEST(TimeTicksLogging, ZeroTime) {
function TEST (line 839) | TEST(TimeTicksLogging, FortyYearsLater) {
function TEST (line 845) | TEST(TimeTicksLogging, DoesNotMessUpFormattingFlags) {
function TEST (line 852) | TEST(TimeTicksLogging, DoesNotMakeStreamBad) {
function TEST (line 858) | TEST(TimeDelta, ChronoConversion) {
function TEST (line 872) | TEST(Time, DeltaSinceUnixEpoch) {
function TEST (line 891) | TEST(TimeTest, TimeT) {
function TEST (line 900) | TEST(Time, FromTimeVal) {
function TEST (line 907) | TEST(Time, ChronoConversion) {
function TEST (line 917) | TEST(TimeTicks, ChronoConversion) {
FILE: tachyon/base/type_list.h
function namespace (line 15) | namespace tachyon::base::internal {
type DropTypeListItemImpl (line 36) | struct DropTypeListItemImpl
FILE: tachyon/base/types/always_false.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/base/types/cxx20_is_bounded_array.h
function namespace (line 8) | namespace tachyon::base {
FILE: tachyon/build/cc_writer.cc
type tachyon::build (line 14) | namespace tachyon::build {
function CountBazelParts (line 25) | size_t CountBazelParts(const std::vector<std::string>& components) {
function BazelOutToHdrPath (line 34) | base::FilePath BazelOutToHdrPath(const base::FilePath& out) {
function BazelOutToHdrGuardMacro (line 45) | std::string BazelOutToHdrGuardMacro(const base::FilePath& out) {
FILE: tachyon/build/cc_writer.h
function namespace (line 9) | namespace tachyon::build {
FILE: tachyon/build/lastchange.py
class GitError (line 21) | class GitError(Exception):
function RunGitCommand (line 28) | def RunGitCommand(directory, command):
function _RunGitCommand (line 54) | def _RunGitCommand(directory, command):
function GetMergeBase (line 92) | def GetMergeBase(directory, ref):
function FetchGitRevision (line 107) | def FetchGitRevision(directory, commit_filter, start_commit="HEAD"):
function GetHeaderGuard (line 143) | def GetHeaderGuard(path):
function GetHeaderContents (line 159) | def GetHeaderContents(path, define, version):
function GetGitTopDirectory (line 178) | def GetGitTopDirectory(source_dir):
function WriteIfChanged (line 188) | def WriteIfChanged(file_name, contents):
function main (line 206) | def main(argv=None):
FILE: tachyon/build/write_buildflag_header.py
class Options (line 21) | class Options:
method __init__ (line 22) | def __init__(self, output, rulename, header_guard, flags):
function GetOptions (line 29) | def GetOptions():
function WriteHeader (line 78) | def WriteHeader(options):
FILE: tachyon/build/write_version_header.py
function write_output (line 9) | def write_output(major, minor, patch, prerelease, lastchange, project): ...
function main (line 50) | def main():
FILE: tachyon/build/writer.cc
type tachyon::build (line 5) | namespace tachyon::build {
FILE: tachyon/build/writer.h
function namespace (line 8) | namespace tachyon::build {
FILE: tachyon/c/base/profiler.cc
function tachyon_profiler (line 7) | tachyon_profiler* tachyon_profiler_create(const char* path, size_t path_...
function tachyon_profiler_destroy (line 12) | void tachyon_profiler_destroy(tachyon_profiler* profiler) {
function tachyon_profiler_init (line 16) | void tachyon_profiler_init(tachyon_profiler* profiler) {
function tachyon_profiler_start (line 20) | void tachyon_profiler_start(tachyon_profiler* profiler) {
function tachyon_profiler_stop (line 24) | void tachyon_profiler_stop(tachyon_profiler* profiler) {
FILE: tachyon/c/base/profiler.h
type tachyon_profiler (line 21) | struct tachyon_profiler {}
FILE: tachyon/c/base/profiler_type_traits.h
function namespace (line 8) | namespace tachyon::c::base {
FILE: tachyon/c/base/type_traits_forward.h
function namespace (line 4) | namespace tachyon::c::base {
function CType (line 59) | CType* c_cast(const NativeType* native_type) {
FILE: tachyon/c/crypto/commitments/fri/two_adic_fri_impl.h
function CosetLDEBatch (line 33) | void CosetLDEBatch(Eigen::Map<tachyon::math::RowMajorMatrix<F>>&& matrix,
function Commit (line 44) | void Commit(
FILE: tachyon/c/crypto/random/rng.cc
function CheckKnownType (line 14) | void CheckKnownType(uint8_t type) {
function tachyon_rng (line 18) | tachyon_rng* CreateFromType(uint8_t type) {
function GetStateLen (line 33) | size_t GetStateLen(uint8_t type) {
function tachyon_rng (line 46) | tachyon_rng* tachyon_rng_create_from_seed(uint8_t type, const uint8_t* s...
function tachyon_rng (line 54) | tachyon_rng* tachyon_rng_create_from_state(uint8_t type, const uint8_t* ...
function tachyon_rng_destroy (line 62) | void tachyon_rng_destroy(tachyon_rng* rng) {
function tachyon_rng_get_next_u32 (line 68) | uint32_t tachyon_rng_get_next_u32(tachyon_rng* rng) {
function tachyon_rng_get_next_u64 (line 73) | uint64_t tachyon_rng_get_next_u64(tachyon_rng* rng) {
function tachyon_rng_get_state (line 78) | void tachyon_rng_get_state(const tachyon_rng* rng, uint8_t* state,
FILE: tachyon/c/crypto/random/rng.h
type tachyon_rng (line 26) | struct tachyon_rng {
FILE: tachyon/c/crypto/random/rng_unittest.cc
type tachyon::crypto (line 12) | namespace tachyon::crypto {
class RngTest (line 15) | class RngTest : public testing::Test {
method TearDown (line 17) | void TearDown() override {
function TYPED_TEST (line 30) | TYPED_TEST(RngTest, APIs) {
FILE: tachyon/c/examples/affine_point.cc
function main (line 6) | int main() {
FILE: tachyon/c/examples/extension_field.cc
function main (line 7) | int main() {
FILE: tachyon/c/examples/jacobian_point.cc
function main (line 6) | int main() {
FILE: tachyon/c/examples/msm.cc
function main (line 9) | int main() {
FILE: tachyon/c/examples/point_xyzz.cc
function main (line 6) | int main() {
FILE: tachyon/c/examples/prime_field.cc
function main (line 5) | int main() {
FILE: tachyon/c/examples/projective_point.cc
function main (line 6) | int main() {
FILE: tachyon/c/examples/rng.cc
function main (line 5) | int main() {
FILE: tachyon/c/examples/version.cc
function main (line 5) | int main() {
FILE: tachyon/c/math/elliptic_curves/bn/bn254/g1_test.h
function namespace (line 8) | namespace tachyon::c::math::bn254 {
FILE: tachyon/c/math/elliptic_curves/generator/generator.cc
type tachyon (line 12) | namespace tachyon {
type GenerationConfig (line 14) | struct GenerationConfig : public build::CcWriter {
function RealMain (line 184) | int RealMain(int argc, char** argv) {
function main (line 258) | int main(int argc, char** argv) { return tachyon::RealMain(argc, argv); }
FILE: tachyon/c/math/elliptic_curves/generator/generator_util.cc
type tachyon::c::math (line 5) | namespace tachyon::c::math {
function GetLocation (line 7) | std::string GetLocation(std::string_view type) {
FILE: tachyon/c/math/elliptic_curves/generator/generator_util.h
function namespace (line 6) | namespace tachyon::c::math {
FILE: tachyon/c/math/elliptic_curves/msm/msm.h
function namespace (line 11) | namespace tachyon::c::math {
FILE: tachyon/c/math/elliptic_curves/msm/msm_gpu.h
function namespace (line 20) | namespace tachyon::c::math {
FILE: tachyon/c/math/elliptic_curves/msm/msm_gpu_replay.cc
type tachyon (line 15) | namespace tachyon {
function ReadAffinePoints (line 19) | std::vector<bn254::G1AffinePoint> ReadAffinePoints(const base::FilePat...
function ReadScalarFields (line 29) | std::vector<bn254::Fr> ReadScalarFields(const base::FilePath& path) {
function RealMain (line 39) | int RealMain(int argc, char** argv) {
function main (line 95) | int main(int argc, char** argv) { return tachyon::RealMain(argc, argv); }
function main (line 99) | int main(int argc, char **argv) {
FILE: tachyon/c/math/elliptic_curves/msm/msm_gpu_unittest.cc
type tachyon::math (line 11) | namespace tachyon::math {
class MSMGpuTest (line 15) | class MSMGpuTest : public testing::Test {
method SetUpTestSuite (line 17) | static void SetUpTestSuite() {
function TEST_F (line 33) | TEST_F(MSMGpuTest, MSMPoint2) {
function TEST_F (line 53) | TEST_F(MSMGpuTest, MSMG1Affine) {
FILE: tachyon/c/math/elliptic_curves/msm/msm_input_provider.h
function namespace (line 12) | namespace tachyon::c::math {
FILE: tachyon/c/math/elliptic_curves/msm/msm_unittest.cc
type tachyon::math (line 12) | namespace tachyon::math {
class MSMTest (line 16) | class MSMTest : public c::math::bn254::G1Test {
method SetUpTestSuite (line 18) | static void SetUpTestSuite() {
method TearDownTestSuite (line 29) | static void TearDownTestSuite() { tachyon_bn254_g1_destroy_msm(msm_); }
function TEST_F (line 39) | TEST_F(MSMTest, MSMPoint2) {
function TEST_F (line 53) | TEST_F(MSMTest, MSMG1Affine) {
FILE: tachyon/c/math/elliptic_curves/point_traits_forward.h
function namespace (line 4) | namespace tachyon::c::math {
FILE: tachyon/c/math/elliptic_curves/short_weierstrass/affine_point_unittest.cc
type tachyon (line 8) | namespace tachyon {
class AffinePointTest (line 12) | class AffinePointTest : public testing::Test {
method SetUp (line 14) | void SetUp() override {
function TEST_F (line 43) | TEST_F(AffinePointTest, Zero) {
function TEST_F (line 51) | TEST_F(AffinePointTest, Generator) {
function TEST_F (line 61) | TEST_F(AffinePointTest, Random) {
function TEST_F (line 69) | TEST_F(AffinePointTest, Eq) {
function TEST_F (line 74) | TEST_F(AffinePointTest, Ne) {
function TEST_F (line 79) | TEST_F(AffinePointTest, Add) {
function TEST_F (line 89) | TEST_F(AffinePointTest, Sub) {
function TEST_F (line 99) | TEST_F(AffinePointTest, Neg) {
function TEST_F (line 107) | TEST_F(AffinePointTest, Dbl) {
FILE: tachyon/c/math/elliptic_curves/short_weierstrass/jacobian_point_unittest.cc
type tachyon (line 8) | namespace tachyon {
class JacobianPointTest (line 12) | class JacobianPointTest : public testing::Test {
method SetUp (line 14) | void SetUp() override {
function TEST_F (line 43) | TEST_F(JacobianPointTest, Zero) {
function TEST_F (line 51) | TEST_F(JacobianPointTest, Generator) {
function TEST_F (line 61) | TEST_F(JacobianPointTest, Random) {
function TEST_F (line 69) | TEST_F(JacobianPointTest, Eq) {
function TEST_F (line 74) | TEST_F(JacobianPointTest, Ne) {
function TEST_F (line 79) | TEST_F(JacobianPointTest, Add) {
function TEST_F (line 99) | TEST_F(JacobianPointTest, Sub) {
function TEST_F (line 119) | TEST_F(JacobianPointTest, Neg) {
function TEST_F (line 127) | TEST_F(JacobianPointTest, Dbl) {
FILE: tachyon/c/math/elliptic_curves/short_weierstrass/point_xyzz_unittest.cc
type tachyon (line 8) | namespace tachyon {
class PointXYZZTest (line 12) | class PointXYZZTest : public testing::Test {
method SetUp (line 14) | void SetUp() override {
function TEST_F (line 43) | TEST_F(PointXYZZTest, Zero) {
function TEST_F (line 51) | TEST_F(PointXYZZTest, Generator) {
function TEST_F (line 60) | TEST_F(PointXYZZTest, Random) {
function TEST_F (line 68) | TEST_F(PointXYZZTest, Eq) {
function TEST_F (line 73) | TEST_F(PointXYZZTest, Ne) {
function TEST_F (line 78) | TEST_F(PointXYZZTest, Add) {
function TEST_F (line 96) | TEST_F(PointXYZZTest, Sub) {
function TEST_F (line 114) | TEST_F(PointXYZZTest, Neg) {
function TEST_F (line 122) | TEST_F(PointXYZZTest, Dbl) {
FILE: tachyon/c/math/elliptic_curves/short_weierstrass/projective_point_unittest.cc
type tachyon (line 8) | namespace tachyon {
class ProjectivePointTest (line 12) | class ProjectivePointTest : public testing::Test {
method SetUp (line 14) | void SetUp() override {
function TEST_F (line 43) | TEST_F(ProjectivePointTest, Zero) {
function TEST_F (line 51) | TEST_F(ProjectivePointTest, Generator) {
function TEST_F (line 61) | TEST_F(ProjectivePointTest, Random) {
function TEST_F (line 69) | TEST_F(ProjectivePointTest, Eq) {
function TEST_F (line 74) | TEST_F(ProjectivePointTest, Ne) {
function TEST_F (line 79) | TEST_F(ProjectivePointTest, Add) {
function TEST_F (line 99) | TEST_F(ProjectivePointTest, Sub) {
function TEST_F (line 119) | TEST_F(ProjectivePointTest, Neg) {
function TEST_F (line 128) | TEST_F(ProjectivePointTest, Dbl) {
FILE: tachyon/c/math/finite_fields/extension_field_unittest.cc
type tachyon (line 7) | namespace tachyon {
class ExtensionFieldTest (line 10) | class ExtensionFieldTest : public testing::Test {
method SetUp (line 12) | void SetUp() override {
function TEST_F (line 46) | TEST_F(ExtensionFieldTest, Zero) {
function TEST_F (line 57) | TEST_F(ExtensionFieldTest, One) {
function TEST_F (line 68) | TEST_F(ExtensionFieldTest, MinusOne) {
function TEST_F (line 79) | TEST_F(ExtensionFieldTest, Random) {
function TEST_F (line 90) | TEST_F(ExtensionFieldTest, Dbl) {
function TEST_F (line 101) | TEST_F(ExtensionFieldTest, Neg) {
function TEST_F (line 112) | TEST_F(ExtensionFieldTest, Sqr) {
function TEST_F (line 123) | TEST_F(ExtensionFieldTest, Inv) {
function TEST_F (line 134) | TEST_F(ExtensionFieldTest, Add) {
function TEST_F (line 145) | TEST_F(ExtensionFieldTest, Sub) {
function TEST_F (line 156) | TEST_F(ExtensionFieldTest, Mul) {
function TEST_F (line 167) | TEST_F(ExtensionFieldTest, Div) {
function TEST_F (line 178) | TEST_F(ExtensionFieldTest, Eq) {
function TEST_F (line 187) | TEST_F(ExtensionFieldTest, Ne) {
function TEST_F (line 196) | TEST_F(ExtensionFieldTest, Gt) {
function TEST_F (line 205) | TEST_F(ExtensionFieldTest, Ge) {
function TEST_F (line 214) | TEST_F(ExtensionFieldTest, Lt) {
function TEST_F (line 223) | TEST_F(ExtensionFieldTest, Le) {
FILE: tachyon/c/math/finite_fields/generator/ext_field_generator/ext_field_generator.cc
type tachyon (line 10) | namespace tachyon {
type GenerationConfig (line 12) | struct GenerationConfig : public build::CcWriter {
function RealMain (line 88) | int RealMain(int argc, char** argv) {
function main (line 150) | int main(int argc, char** argv) { return tachyon::RealMain(argc, argv); }
FILE: tachyon/c/math/finite_fields/generator/prime_field_generator/prime_field_generator.cc
type tachyon (line 10) | namespace tachyon {
type GenerationConfig (line 12) | struct GenerationConfig : public build::CcWriter {
function RealMain (line 83) | int RealMain(int argc, char** argv) {
function main (line 137) | int main(int argc, char** argv) { return tachyon::RealMain(argc, argv); }
FILE: tachyon/c/math/finite_fields/prime_field_unittest.cc
type tachyon (line 5) | namespace tachyon {
class PrimeFieldTest (line 9) | class PrimeFieldTest : public testing::Test {
method SetUp (line 11) | void SetUp() override {
function TEST_F (line 28) | TEST_F(PrimeFieldTest, Zero) {
function TEST_F (line 33) | TEST_F(PrimeFieldTest, One) {
function TEST_F (line 38) | TEST_F(PrimeFieldTest, MinusOne) {
function TEST_F (line 43) | TEST_F(PrimeFieldTest, Random) {
function TEST_F (line 48) | TEST_F(PrimeFieldTest, Add) {
function TEST_F (line 53) | TEST_F(PrimeFieldTest, Sub) {
function TEST_F (line 58) | TEST_F(PrimeFieldTest, Mul) {
function TEST_F (line 63) | TEST_F(PrimeFieldTest, Div) {
function TEST_F (line 68) | TEST_F(PrimeFieldTest, Neg) {
function TEST_F (line 73) | TEST_F(PrimeFieldTest, Dbl) {
function TEST_F (line 78) | TEST_F(PrimeFieldTest, Sqr) {
function TEST_F (line 83) | TEST_F(PrimeFieldTest, Inv) {
function TEST_F (line 88) | TEST_F(PrimeFieldTest, Eq) {
function TEST_F (line 92) | TEST_F(PrimeFieldTest, Ne) {
function TEST_F (line 96) | TEST_F(PrimeFieldTest, Gt) {
function TEST_F (line 100) | TEST_F(PrimeFieldTest, Ge) {
function TEST_F (line 104) | TEST_F(PrimeFieldTest, Lt) {
function TEST_F (line 108) | TEST_F(PrimeFieldTest, Le) {
FILE: tachyon/c/math/matrix/baby_bear_row_major_matrix.cc
function tachyon_baby_bear_row_major_matrix (line 10) | tachyon_baby_bear_row_major_matrix* tachyon_baby_bear_row_major_matrix_c...
function tachyon_baby_bear_row_major_matrix (line 17) | tachyon_baby_bear_row_major_matrix* tachyon_baby_bear_row_major_matrix_c...
function tachyon_baby_bear_row_major_matrix_destroy (line 23) | void tachyon_baby_bear_row_major_matrix_destroy(
function tachyon_baby_bear_row_major_matrix_get_rows (line 28) | size_t tachyon_baby_bear_row_major_matrix_get_rows(
function tachyon_baby_bear_row_major_matrix_get_cols (line 33) | size_t tachyon_baby_bear_row_major_matrix_get_cols(
function tachyon_baby_bear (line 38) | tachyon_baby_bear tachyon_baby_bear_row_major_matrix_get_element(
function tachyon_baby_bear (line 43) | const tachyon_baby_bear* tachyon_baby_bear_row_major_matrix_get_const_da...
function tachyon_baby_bear (line 48) | tachyon_baby_bear* tachyon_baby_bear_row_major_matrix_get_data_ptr(
FILE: tachyon/c/math/matrix/baby_bear_row_major_matrix.h
type tachyon_baby_bear_row_major_matrix (line 26) | struct tachyon_baby_bear_row_major_matrix {}
FILE: tachyon/c/math/matrix/baby_bear_row_major_matrix_type_traits.h
function namespace (line 9) | namespace tachyon::c::base {
FILE: tachyon/c/math/matrix/baby_bear_row_major_matrix_unittest.cc
type tachyon::math (line 9) | namespace tachyon::math {
class RowMajorMatrixTest (line 15) | class RowMajorMatrixTest : public FiniteFieldTest<F> {
method SetUp (line 17) | void SetUp() override {
function TEST_F (line 29) | TEST_F(RowMajorMatrixTest, APIs) {
FILE: tachyon/c/math/polynomials/constants.h
function namespace (line 7) | namespace tachyon::c::math {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_dense_polynomial.cc
function tachyon_bn254_univariate_dense_polynomial (line 10) | tachyon_bn254_univariate_dense_polynomial*
function tachyon_bn254_univariate_dense_polynomial (line 15) | tachyon_bn254_univariate_dense_polynomial*
function tachyon_bn254_univariate_dense_polynomial_destroy (line 22) | void tachyon_bn254_univariate_dense_polynomial_destroy(
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_dense_polynomial.h
type tachyon_bn254_univariate_dense_polynomial (line 23) | struct tachyon_bn254_univariate_dense_polynomial {}
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_dense_polynomial_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_dense_polynomial_unittest.cc
type tachyon::math (line 8) | namespace tachyon::math {
class UnivariateDensePolynomialTest (line 14) | class UnivariateDensePolynomialTest : public FiniteFieldTest<bn254::Fr> {
method SetUp (line 18) | void SetUp() override {
method TearDown (line 23) | void TearDown() override {
function TEST_F (line 33) | TEST_F(UnivariateDensePolynomialTest, Clone) {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluation_domain.cc
function tachyon_bn254_univariate_evaluation_domain (line 19) | tachyon_bn254_univariate_evaluation_domain*
function tachyon_bn254_univariate_evaluation_domain_destroy (line 24) | void tachyon_bn254_univariate_evaluation_domain_destroy(
function tachyon_bn254_univariate_evaluations (line 29) | tachyon_bn254_univariate_evaluations*
function tachyon_bn254_univariate_dense_polynomial (line 36) | tachyon_bn254_univariate_dense_polynomial*
function tachyon_bn254_univariate_rational_evaluations (line 43) | tachyon_bn254_univariate_rational_evaluations*
function tachyon_bn254_univariate_evaluations (line 50) | tachyon_bn254_univariate_evaluations*
function tachyon_bn254_univariate_evaluations (line 59) | tachyon_bn254_univariate_evaluations*
function tachyon_bn254_univariate_dense_polynomial (line 68) | tachyon_bn254_univariate_dense_polynomial*
function tachyon_bn254_univariate_dense_polynomial (line 77) | tachyon_bn254_univariate_dense_polynomial*
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluation_domain.h
type tachyon_bn254_univariate_evaluation_domain (line 26) | struct tachyon_bn254_univariate_evaluation_domain {}
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluation_domain_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluation_domain_unittest.cc
type tachyon::math (line 14) | namespace tachyon::math {
class UnivariateEvaluationDomainTest (line 20) | class UnivariateEvaluationDomainTest : public FiniteFieldTest<bn254::F...
method SetUp (line 26) | void SetUp() override {
method TearDown (line 30) | void TearDown() override {
function TEST_F (line 40) | TEST_F(UnivariateEvaluationDomainTest, EmptyEvals) {
function TEST_F (line 49) | TEST_F(UnivariateEvaluationDomainTest, EmptyPoly) {
function TEST_F (line 58) | TEST_F(UnivariateEvaluationDomainTest, EmptyRationalEvals) {
function TEST_F (line 67) | TEST_F(UnivariateEvaluationDomainTest, FFT) {
function TEST_F (line 77) | TEST_F(UnivariateEvaluationDomainTest, IFFT) {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluations.cc
function tachyon_bn254_univariate_evaluations (line 10) | tachyon_bn254_univariate_evaluations*
function tachyon_bn254_univariate_evaluations (line 15) | tachyon_bn254_univariate_evaluations*
function tachyon_bn254_univariate_evaluations_destroy (line 22) | void tachyon_bn254_univariate_evaluations_destroy(
function tachyon_bn254_univariate_evaluations_len (line 27) | size_t tachyon_bn254_univariate_evaluations_len(
function tachyon_bn254_univariate_evaluations_set_value (line 32) | void tachyon_bn254_univariate_evaluations_set_value(
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluations.h
type tachyon_bn254_univariate_evaluations (line 23) | struct tachyon_bn254_univariate_evaluations {}
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluations_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_evaluations_unittest.cc
type tachyon::math (line 9) | namespace tachyon::math {
class UnivariateEvaluationsTest (line 15) | class UnivariateEvaluationsTest : public FiniteFieldTest<bn254::Fr> {
method SetUp (line 19) | void SetUp() override {
method TearDown (line 24) | void TearDown() override {
function TEST_F (line 34) | TEST_F(UnivariateEvaluationsTest, Clone) {
function TEST_F (line 44) | TEST_F(UnivariateEvaluationsTest, Len) {
function TEST_F (line 48) | TEST_F(UnivariateEvaluationsTest, SetValue) {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_rational_evaluations.cc
function tachyon_bn254_univariate_rational_evaluations (line 18) | tachyon_bn254_univariate_rational_evaluations*
function tachyon_bn254_univariate_rational_evaluations (line 23) | tachyon_bn254_univariate_rational_evaluations*
function tachyon_bn254_univariate_rational_evaluations_destroy (line 30) | void tachyon_bn254_univariate_rational_evaluations_destroy(
function tachyon_bn254_univariate_rational_evaluations_len (line 35) | size_t tachyon_bn254_univariate_rational_evaluations_len(
function tachyon_bn254_univariate_rational_evaluations_set_zero (line 40) | void tachyon_bn254_univariate_rational_evaluations_set_zero(
function tachyon_bn254_univariate_rational_evaluations_set_trivial (line 47) | void tachyon_bn254_univariate_rational_evaluations_set_trivial(
function tachyon_bn254_univariate_rational_evaluations_set_rational (line 55) | void tachyon_bn254_univariate_rational_evaluations_set_rational(
function tachyon_bn254_univariate_rational_evaluations_evaluate (line 65) | void tachyon_bn254_univariate_rational_evaluations_evaluate(
function tachyon_bn254_univariate_evaluations (line 73) | tachyon_bn254_univariate_evaluations*
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_rational_evaluations.h
type tachyon_bn254_univariate_rational_evaluations (line 24) | struct tachyon_bn254_univariate_rational_evaluations {}
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_rational_evaluations_type_traits.h
function namespace (line 11) | namespace tachyon::c::base {
FILE: tachyon/c/math/polynomials/univariate/bn254_univariate_rational_evaluations_unittest.cc
type tachyon::math (line 13) | namespace tachyon::math {
class UnivariateRationalEvaluationsTest (line 19) | class UnivariateRationalEvaluationsTest : public FiniteFieldTest<bn254...
method SetUp (line 25) | void SetUp() override {
method TearDown (line 31) | void TearDown() override {
function TEST_F (line 41) | TEST_F(UnivariateRationalEvaluationsTest, Clone) {
function TEST_F (line 51) | TEST_F(UnivariateRationalEvaluationsTest, Len) {
function TEST_F (line 56) | TEST_F(UnivariateRationalEvaluationsTest, SetZero) {
function TEST_F (line 61) | TEST_F(UnivariateRationalEvaluationsTest, SetTrivial) {
function TEST_F (line 70) | TEST_F(UnivariateRationalEvaluationsTest, SetRational) {
function TEST_F (line 79) | TEST_F(UnivariateRationalEvaluationsTest, BatchEvaluate) {
FILE: tachyon/c/version.cc
function tachyon_get_runtime_version (line 3) | uint32_t tachyon_get_runtime_version() { return TACHYON_C_VERSION; }
FILE: tachyon/c/version_unittest.cc
function TEST (line 6) | TEST(VersionTest, CompileTimeVersionTest) {
function TEST (line 15) | TEST(VersionTest, RunTimeVersionTest) {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_commitment_vec.cc
function tachyon_sp1_baby_bear_poseidon2_commitment_vec (line 14) | tachyon_sp1_baby_bear_poseidon2_commitment_vec*
function tachyon_sp1_baby_bear_poseidon2_commitment_vec_destroy (line 19) | void tachyon_sp1_baby_bear_poseidon2_commitment_vec_destroy(
function tachyon_sp1_baby_bear_poseidon2_commitment_vec_set (line 24) | void tachyon_sp1_baby_bear_poseidon2_commitment_vec_set(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_commitment_vec.h
type tachyon_sp1_baby_bear_poseidon2_commitment_vec (line 16) | struct tachyon_sp1_baby_bear_poseidon2_commitment_vec {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_commitment_vec_type_traits.h
function namespace (line 12) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_domains.cc
function tachyon_sp1_baby_bear_poseidon2_domains (line 13) | tachyon_sp1_baby_bear_poseidon2_domains*
function tachyon_sp1_baby_bear_poseidon2_domains_destroy (line 18) | void tachyon_sp1_baby_bear_poseidon2_domains_destroy(
function tachyon_sp1_baby_bear_poseidon2_domains_allocate (line 23) | void tachyon_sp1_baby_bear_poseidon2_domains_allocate(
function tachyon_sp1_baby_bear_poseidon2_domains_set (line 29) | void tachyon_sp1_baby_bear_poseidon2_domains_set(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_domains.h
type tachyon_sp1_baby_bear_poseidon2_domains (line 16) | struct tachyon_sp1_baby_bear_poseidon2_domains {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_domains_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_duplex_challenger.cc
function tachyon_sp1_baby_bear_poseidon2_duplex_challenger (line 24) | tachyon_sp1_baby_bear_poseidon2_duplex_challenger*
function tachyon_sp1_baby_bear_poseidon2_duplex_challenger (line 43) | tachyon_sp1_baby_bear_poseidon2_duplex_challenger*
function tachyon_sp1_baby_bear_poseidon2_duplex_challenger_destroy (line 52) | void tachyon_sp1_baby_bear_poseidon2_duplex_challenger_destroy(
function tachyon_sp1_baby_bear_poseidon2_duplex_challenger_observe (line 57) | void tachyon_sp1_baby_bear_poseidon2_duplex_challenger_observe(
function tachyon_baby_bear (line 63) | tachyon_baby_bear tachyon_sp1_baby_bear_poseidon2_duplex_challenger_sample(
function tachyon_sp1_baby_bear_poseidon2_duplex_challenger_write_hint (line 68) | void tachyon_sp1_baby_bear_poseidon2_duplex_challenger_write_hint(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_duplex_challenger.h
type tachyon_sp1_baby_bear_poseidon2_duplex_challenger (line 16) | struct tachyon_sp1_baby_bear_poseidon2_duplex_challenger {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_duplex_challenger_type_traits.h
function namespace (line 12) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_duplex_challenger_unittest.cc
type tachyon::crypto (line 11) | namespace tachyon::crypto {
class DuplexChallengerTest (line 20) | class DuplexChallengerTest : public math::FiniteFieldTest<F> {
method SetUp (line 22) | void SetUp() override {
method TearDown (line 26) | void TearDown() override {
function TEST_F (line 34) | TEST_F(DuplexChallengerTest, APIs) {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree.cc
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree (line 12) | tachyon_sp1_baby_bear_poseidon2_field_merkle_tree*
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_destroy (line 18) | void tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_destroy(
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_serialize (line 23) | void tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_serialize(
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree (line 36) | tachyon_sp1_baby_bear_poseidon2_field_merkle_tree*
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree.h
type tachyon_sp1_baby_bear_poseidon2_field_merkle_tree (line 15) | struct tachyon_sp1_baby_bear_poseidon2_field_merkle_tree {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree_type_traits.h
function namespace (line 10) | namespace tachyon::c {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree_vec.cc
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec (line 16) | tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec*
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec (line 21) | tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec*
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec_destroy (line 37) | void tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec_destroy(
function tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec_set (line 42) | void tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec_set(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree_vec.h
type tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec (line 15) | struct tachyon_sp1_baby_bear_poseidon2_field_merkle_tree_vec {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_field_merkle_tree_vec_type_traits.h
function namespace (line 12) | namespace tachyon::c {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_fields.h
function namespace (line 7) | namespace tachyon::c::zk::air::sp1::baby_bear {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_fri_proof.cc
function tachyon_sp1_baby_bear_poseidon2_fri_proof (line 15) | tachyon_sp1_baby_bear_poseidon2_fri_proof*
function tachyon_sp1_baby_bear_poseidon2_fri_proof (line 20) | tachyon_sp1_baby_bear_poseidon2_fri_proof*
function tachyon_sp1_baby_bear_poseidon2_fri_proof_destroy (line 26) | void tachyon_sp1_baby_bear_poseidon2_fri_proof_destroy(
function tachyon_sp1_baby_bear_poseidon2_fri_proof_write_hint (line 31) | void tachyon_sp1_baby_bear_poseidon2_fri_proof_write_hint(
function tachyon_sp1_baby_bear_poseidon2_fri_proof_serialize (line 46) | void tachyon_sp1_baby_bear_poseidon2_fri_proof_serialize(
function tachyon_sp1_baby_bear_poseidon2_fri_proof (line 59) | tachyon_sp1_baby_bear_poseidon2_fri_proof*
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_fri_proof.h
type tachyon_sp1_baby_bear_poseidon2_fri_proof (line 15) | struct tachyon_sp1_baby_bear_poseidon2_fri_proof {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_fri_proof_type_traits.h
function namespace (line 9) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_hintable.h
function namespace (line 21) | namespace tachyon::c::zk::air::sp1::baby_bear {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_hintable_unittest.cc
type tachyon (line 9) | namespace tachyon {
class HintableTest (line 18) | class HintableTest : public math::FiniteFieldTest<F> {}
function TEST_F (line 20) | TEST_F(HintableTest, DuplexChallenger) {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_lde_vec.cc
function tachyon_sp1_baby_bear_poseidon2_lde_vec (line 14) | tachyon_sp1_baby_bear_poseidon2_lde_vec*
function tachyon_sp1_baby_bear_poseidon2_lde_vec_destroy (line 19) | void tachyon_sp1_baby_bear_poseidon2_lde_vec_destroy(
function tachyon_sp1_baby_bear_poseidon2_lde_vec_add (line 24) | void tachyon_sp1_baby_bear_poseidon2_lde_vec_add(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_lde_vec.h
type tachyon_sp1_baby_bear_poseidon2_lde_vec (line 15) | struct tachyon_sp1_baby_bear_poseidon2_lde_vec {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_lde_vec_type_traits.h
function namespace (line 11) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opened_values.cc
function tachyon_sp1_baby_bear_poseidon2_opened_values (line 15) | tachyon_sp1_baby_bear_poseidon2_opened_values*
function tachyon_sp1_baby_bear_poseidon2_opened_values (line 20) | tachyon_sp1_baby_bear_poseidon2_opened_values*
function tachyon_sp1_baby_bear_poseidon2_opened_values_destroy (line 27) | void tachyon_sp1_baby_bear_poseidon2_opened_values_destroy(
function tachyon_sp1_baby_bear_poseidon2_opened_values_serialize (line 32) | void tachyon_sp1_baby_bear_poseidon2_opened_values_serialize(
function tachyon_sp1_baby_bear_poseidon2_opened_values_allocate_outer (line 43) | void tachyon_sp1_baby_bear_poseidon2_opened_values_allocate_outer(
function tachyon_sp1_baby_bear_poseidon2_opened_values_allocate_inner (line 54) | void tachyon_sp1_baby_bear_poseidon2_opened_values_allocate_inner(
function tachyon_sp1_baby_bear_poseidon2_opened_values_set (line 65) | void tachyon_sp1_baby_bear_poseidon2_opened_values_set(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opened_values.h
type tachyon_sp1_baby_bear_poseidon2_opened_values (line 16) | struct tachyon_sp1_baby_bear_poseidon2_opened_values {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opened_values_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opened_values_unittest.cc
type tachyon::math (line 13) | namespace tachyon::math {
class OpenedValuesTest (line 20) | class OpenedValuesTest : public FiniteFieldTest<ExtF> {}
function GetRandom (line 22) | size_t GetRandom() { return base::Uniform(base::Range<size_t>(1, 3)); }
function TEST_F (line 26) | TEST_F(OpenedValuesTest, Serialize) {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opening_points.cc
function tachyon_sp1_baby_bear_poseidon2_opening_points (line 12) | tachyon_sp1_baby_bear_poseidon2_opening_points*
function tachyon_sp1_baby_bear_poseidon2_opening_points (line 17) | tachyon_sp1_baby_bear_poseidon2_opening_points*
function tachyon_sp1_baby_bear_poseidon2_opening_points_destroy (line 24) | void tachyon_sp1_baby_bear_poseidon2_opening_points_destroy(
function tachyon_sp1_baby_bear_poseidon2_opening_points_allocate (line 29) | void tachyon_sp1_baby_bear_poseidon2_opening_points_allocate(
function tachyon_sp1_baby_bear_poseidon2_opening_points_set (line 40) | void tachyon_sp1_baby_bear_poseidon2_opening_points_set(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opening_points.h
type tachyon_sp1_baby_bear_poseidon2_opening_points (line 15) | struct tachyon_sp1_baby_bear_poseidon2_opening_points {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_opening_points_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_two_adic_fri.cc
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri (line 47) | tachyon_sp1_baby_bear_poseidon2_two_adic_fri*
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri_destroy (line 95) | void tachyon_sp1_baby_bear_poseidon2_two_adic_fri_destroy(
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri_coset_lde_batch (line 100) | void tachyon_sp1_baby_bear_poseidon2_two_adic_fri_coset_lde_batch(
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri_commit (line 116) | void tachyon_sp1_baby_bear_poseidon2_two_adic_fri_commit(
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri_open (line 127) | void tachyon_sp1_baby_bear_poseidon2_two_adic_fri_open(
function tachyon_sp1_baby_bear_poseidon2_two_adic_fri_verify (line 146) | bool tachyon_sp1_baby_bear_poseidon2_two_adic_fri_verify(
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_two_adic_fri.h
type tachyon_sp1_baby_bear_poseidon2_two_adic_fri (line 27) | struct tachyon_sp1_baby_bear_poseidon2_two_adic_fri {}
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_two_adic_fri_type_traits.h
function namespace (line 19) | namespace tachyon::c {
FILE: tachyon/c/zk/air/sp1/baby_bear_poseidon2_two_adic_fri_unittest.cc
type tachyon (line 20) | namespace tachyon {
class TwoAdicFRITest (line 33) | class TwoAdicFRITest : public testing::Test {
method SetUp (line 35) | void SetUp() override {
method TearDown (line 51) | void TearDown() override {
function TEST_F (line 79) | TEST_F(TwoAdicFRITest, APIs) {
FILE: tachyon/c/zk/air/sp1/block.h
function namespace (line 14) | namespace tachyon {
function namespace (line 61) | namespace base {
FILE: tachyon/c/zk/air/sp1/block_unittest.cc
type tachyon (line 8) | namespace tachyon {
class BlockTest (line 14) | class BlockTest : public math::FiniteFieldTest<F> {}
function TEST (line 18) | TEST(BlockTest, Copyable) {
FILE: tachyon/c/zk/base/bn254_blinder.cc
function tachyon_halo2_bn254_blinder_set_blinding_factors (line 7) | void tachyon_halo2_bn254_blinder_set_blinding_factors(
function tachyon_halo2_bn254_blinder_get_blinding_factors (line 12) | uint32_t tachyon_halo2_bn254_blinder_get_blinding_factors(
FILE: tachyon/c/zk/base/bn254_blinder.h
type tachyon_bn254_blinder (line 22) | struct tachyon_bn254_blinder {}
FILE: tachyon/c/zk/base/bn254_blinder_type_traits.h
function namespace (line 9) | namespace tachyon::c::base {
FILE: tachyon/c/zk/plonk/constraint_system/bn254_constraint_system.cc
function tachyon_bn254_plonk_constraint_system_compute_blinding_factors (line 9) | uint32_t tachyon_bn254_plonk_constraint_system_compute_blinding_factors(
function tachyon_bn254_plonk_constraint_system_get_advice_column_phases (line 14) | void tachyon_bn254_plonk_constraint_system_get_advice_column_phases(
function tachyon_bn254_plonk_constraint_system_get_challenge_phases (line 26) | void tachyon_bn254_plonk_constraint_system_get_challenge_phases(
function tachyon_bn254_plonk_constraint_system_get_phases (line 38) | void tachyon_bn254_plonk_constraint_system_get_phases(
function tachyon_bn254_plonk_constraint_system_get_num_fixed_columns (line 50) | size_t tachyon_bn254_plonk_constraint_system_get_num_fixed_columns(
function tachyon_bn254_plonk_constraint_system_get_num_instance_columns (line 55) | size_t tachyon_bn254_plonk_constraint_system_get_num_instance_columns(
function tachyon_bn254_plonk_constraint_system_get_num_advice_columns (line 60) | size_t tachyon_bn254_plonk_constraint_system_get_num_advice_columns(
function tachyon_bn254_plonk_constraint_system_get_num_challenges (line 65) | size_t tachyon_bn254_plonk_constraint_system_get_num_challenges(
function tachyon_bn254_plonk_constraint_system_get_constants (line 70) | void tachyon_bn254_plonk_constraint_system_get_constants(
FILE: tachyon/c/zk/plonk/constraint_system/bn254_constraint_system.h
type tachyon_bn254_plonk_constraint_system (line 24) | struct tachyon_bn254_plonk_constraint_system {}
FILE: tachyon/c/zk/plonk/constraint_system/bn254_constraint_system_type_traits.h
function namespace (line 9) | namespace tachyon::c::base {
FILE: tachyon/c/zk/plonk/constraint_system/bn254_constraint_system_unittest.cc
type tachyon::zk::plonk (line 8) | namespace tachyon::zk::plonk {
class ConstraintSystemTest (line 12) | class ConstraintSystemTest : public math::FiniteFieldTest<math::bn254:...
method SetUp (line 14) | void SetUp() override { cs_ = c::base::c_cast(&cpp_cs_); }
function TEST_F (line 23) | TEST_F(ConstraintSystemTest, ComputeBlindingFactors) {
function TEST_F (line 28) | TEST_F(ConstraintSystemTest, GetAdviceColumnPhases) {
function TEST_F (line 47) | TEST_F(ConstraintSystemTest, GetChallengePhases) {
function TEST_F (line 67) | TEST_F(ConstraintSystemTest, GetPhases) {
function TEST_F (line 88) | TEST_F(ConstraintSystemTest, GetNumFixedColumns) {
function TEST_F (line 96) | TEST_F(ConstraintSystemTest, GetNumInstanceColumns) {
function TEST_F (line 106) | TEST_F(ConstraintSystemTest, GetNumAdviceColumns) {
function TEST_F (line 116) | TEST_F(ConstraintSystemTest, GetNumChallenges) {
function TEST_F (line 126) | TEST_F(ConstraintSystemTest, GetConstants) {
FILE: tachyon/c/zk/plonk/constraint_system/column_key.h
type tachyon_fixed_column_key (line 26) | struct tachyon_fixed_column_key {
type tachyon_instance_column_key (line 38) | struct tachyon_instance_column_key {
type tachyon_advice_column_key (line 52) | struct tachyon_advice_column_key {
FILE: tachyon/c/zk/plonk/constraint_system/phase.h
type tachyon_phase (line 27) | struct tachyon_phase {
FILE: tachyon/c/zk/plonk/halo2/bn254_argument_data.cc
function tachyon_halo2_bn254_argument_data (line 17) | tachyon_halo2_bn254_argument_data* tachyon_halo2_bn254_argument_data_cre...
function tachyon_halo2_bn254_argument_data_destroy (line 22) | void tachyon_halo2_bn254_argument_data_destroy(
function tachyon_halo2_bn254_argument_data_reserve_advice_columns (line 27) | void tachyon_halo2_bn254_argument_data_reserve_advice_columns(
function tachyon_halo2_bn254_argument_data_add_advice_column (line 34) | void tachyon_halo2_bn254_argument_data_add_advice_column(
function tachyon_halo2_bn254_argument_data_reserve_advice_blinds (line 42) | void tachyon_halo2_bn254_argument_data_reserve_advice_blinds(
function tachyon_halo2_bn254_argument_data_add_advice_blind (line 49) | void tachyon_halo2_bn254_argument_data_add_advice_blind(
function tachyon_halo2_bn254_argument_data_reserve_instance_columns (line 56) | void tachyon_halo2_bn254_argument_data_reserve_instance_columns(
function tachyon_halo2_bn254_argument_data_add_instance_column (line 63) | void tachyon_halo2_bn254_argument_data_add_instance_column(
function tachyon_halo2_bn254_argument_data_reserve_instance_polys (line 71) | void tachyon_halo2_bn254_argument_data_reserve_instance_polys(
function tachyon_halo2_bn254_argument_data_add_instance_poly (line 78) | void tachyon_halo2_bn254_argument_data_add_instance_poly(
function tachyon_halo2_bn254_argument_data_reserve_challenges (line 86) | void tachyon_halo2_bn254_argument_data_reserve_challenges(
function tachyon_halo2_bn254_argument_data_add_challenge (line 91) | void tachyon_halo2_bn254_argument_data_add_challenge(
FILE: tachyon/c/zk/plonk/halo2/bn254_argument_data.h
type tachyon_halo2_bn254_argument_data (line 29) | struct tachyon_halo2_bn254_argument_data {}
FILE: tachyon/c/zk/plonk/halo2/bn254_argument_data_type_traits.h
function namespace (line 12) | namespace tachyon::c::base {
function tachyon_halo2_bn254_argument_data (line 24) | struct TypeTraits<tachyon_halo2_bn254_argument_data> {
FILE: tachyon/c/zk/plonk/halo2/bn254_instance_columns_vec.cc
function tachyon_halo2_bn254_instance_columns_vec (line 12) | tachyon_halo2_bn254_instance_columns_vec*
function tachyon_halo2_bn254_instance_columns_vec_destroy (line 17) | void tachyon_halo2_bn254_instance_columns_vec_destroy(
function tachyon_halo2_bn254_instance_columns_vec_resize_columns (line 22) | void tachyon_halo2_bn254_instance_columns_vec_resize_columns(
function tachyon_halo2_bn254_instance_columns_vec_reserve_values (line 28) | void tachyon_halo2_bn254_instance_columns_vec_reserve_values(
function tachyon_halo2_bn254_instance_columns_vec_add_values (line 34) | void tachyon_halo2_bn254_instance_columns_vec_add_values(
FILE: tachyon/c/zk/plonk/halo2/bn254_instance_columns_vec.h
type tachyon_halo2_bn254_instance_columns_vec (line 26) | struct tachyon_halo2_bn254_instance_columns_vec {}
FILE: tachyon/c/zk/plonk/halo2/bn254_instance_columns_vec_type_traits.h
function namespace (line 10) | namespace tachyon::c::base {
FILE: tachyon/c/zk/plonk/halo2/bn254_prover.cc
function CreateProver (line 56) | zk::plonk::halo2::Prover<PS> CreateProver(uint8_t transcript_type, uint3...
function CreateProverFromParams (line 103) | zk::plonk::halo2::Prover<PS> CreateProverFromParams(uint8_t transcript_t...
function Destroy (line 151) | void Destroy(NativeProver* prover) {
function GetK (line 156) | uint32_t GetK(NativeEntity* entity) {
function GetN (line 161) | size_t GetN(NativeEntity* entity) {
function tachyon_bn254_g2_affine (line 166) | const tachyon_bn254_g2_affine* GetSG2(NativeEntity* entity) {
function tachyon_bn254_blinder (line 171) | tachyon_bn254_blinder* GetBlinder(NativeProver* prover) {
function tachyon_bn254_univariate_evaluation_domain (line 176) | const tachyon_bn254_univariate_evaluation_domain* GetDomain(
function tachyon_bn254_g1_projective (line 182) | tachyon_bn254_g1_projective* Commit(
function tachyon_bn254_g1_projective (line 191) | tachyon_bn254_g1_projective* CommitLagrange(
function BatchStart (line 199) | void BatchStart(NativeProver* prover, size_t len) {
function BatchCommit (line 211) | void BatchCommit(NativeProver* prover,
function BatchCommitLagrange (line 225) | void BatchCommitLagrange(NativeProver* prover,
function BatchEnd (line 239) | void BatchEnd(NativeProver* prover, tachyon_bn254_g1_affine* points,
function SetRngState (line 257) | void SetRngState(NativeProver* prover, uint8_t rng_type, const uint8_t* ...
function SetTranscriptState (line 275) | void SetTranscriptState(NativeProver* prover, const uint8_t* state,
function SetExtendedDomain (line 321) | void SetExtendedDomain(NativeProver* prover,
function CreateProof (line 341) | void CreateProof(NativeProver* prover, NativeProvingKey* pk,
function GetProof (line 347) | void GetProof(NativeProver* prover, uint8_t* proof, size_t* proof_len) {
function tachyon_halo2_bn254_prover (line 419) | tachyon_halo2_bn254_prover* tachyon_halo2_bn254_prover_create_from_unsaf...
function tachyon_halo2_bn254_prover (line 465) | tachyon_halo2_bn254_prover* tachyon_halo2_bn254_prover_create_from_params(
function tachyon_halo2_bn254_prover_destroy (line 518) | void tachyon_halo2_bn254_prover_destroy(tachyon_halo2_bn254_prover* prov...
function tachyon_halo2_bn254_prover_get_k (line 522) | uint32_t tachyon_halo2_bn254_prover_get_k(
function tachyon_halo2_bn254_prover_get_n (line 528) | size_t tachyon_halo2_bn254_prover_get_n(
function tachyon_bn254_g2_affine (line 534) | const tachyon_bn254_g2_affine* tachyon_halo2_bn254_prover_get_s_g2(
function tachyon_bn254_blinder (line 540) | tachyon_bn254_blinder* tachyon_halo2_bn254_prover_get_blinder(
function tachyon_bn254_univariate_evaluation_domain (line 546) | const tachyon_bn254_univariate_evaluation_domain*
function tachyon_bn254_g1_projective (line 553) | tachyon_bn254_g1_projective* tachyon_halo2_bn254_prover_commit(
function tachyon_bn254_g1_projective (line 560) | tachyon_bn254_g1_projective* tachyon_halo2_bn254_prover_commit_lagrange(
function tachyon_halo2_bn254_prover_batch_start (line 567) | void tachyon_halo2_bn254_prover_batch_start(
function tachyon_halo2_bn254_prover_batch_commit (line 572) | void tachyon_halo2_bn254_prover_batch_commit(
function tachyon_halo2_bn254_prover_batch_commit_lagrange (line 578) | void tachyon_halo2_bn254_prover_batch_commit_lagrange(
function tachyon_halo2_bn254_prover_batch_end (line 584) | void tachyon_halo2_bn254_prover_batch_end(
function tachyon_halo2_bn254_prover_set_rng_state (line 590) | void tachyon_halo2_bn254_prover_set_rng_state(
function tachyon_halo2_bn254_prover_set_transcript_state (line 596) | void tachyon_halo2_bn254_prover_set_transcript_state(
function tachyon_halo2_bn254_prover_set_extended_domain (line 602) | void tachyon_halo2_bn254_prover_set_extended_domain(
function tachyon_halo2_bn254_prover_create_proof (line 608) | void tachyon_halo2_bn254_prover_create_proof(
function tachyon_halo2_bn254_prover_get_proof (line 649) | void tachyon_halo2_bn254_prover_get_proof(
function tachyon_halo2_bn254_prover_set_transcript_repr (line 655) | void tachyon_halo2_bn254_prover_set_transcript_repr(
FILE: tachyon/c/zk/plonk/halo2/bn254_prover.h
type tachyon_halo2_bn254_prover (line 33) | struct tachyon_halo2_bn254_prover {
FILE: tachyon/c/zk/plonk/halo2/bn254_prover_unittest.cc
type tachyon::zk::plonk::halo2::bn254 (line 35) | namespace tachyon::zk::plonk::halo2::bn254 {
type Param (line 49) | struct Param {
method Param (line 54) | Param(uint8_t vendor, uint8_t pcs_type, uint8_t transcript_type)
class ProverTest (line 58) | class ProverTest : public testing::TestWithParam<Param> {
method SetUp (line 60) | void SetUp() override {
method TearDown (line 70) | void TearDown() override { tachyon_halo2_bn254_prover_destroy(prover...
function TEST_P (line 116) | TEST_P(ProverTest, Constructor) {
function TEST_P (line 134) | TEST_P(ProverTest, Getters) {
function TEST_P (line 183) | TEST_P(ProverTest, Commit) {
function TEST_P (line 238) | TEST_P(ProverTest, CommitLagrange) {
function TEST_P (line 294) | TEST_P(ProverTest, BatchCommit) {
function TEST_P (line 357) | TEST_P(ProverTest, BatchCommitLagrange) {
function SetRngTestImpl (line 422) | void SetRngTestImpl(tachyon_halo2_bn254_prover* prover, uint8_t rng_ty...
function TEST_P (line 458) | TEST_P(ProverTest, SetRng) {
function TEST_P (line 469) | TEST_P(ProverTest, SetTranscript) {
FILE: tachyon/c/zk/plonk/halo2/bn254_ps.h
function namespace (line 10) | namespace tachyon::c::zk::plonk::halo2::bn254 {
FILE: tachyon/c/zk/plonk/halo2/bn254_transcript.cc
function tachyon_halo2_bn254_transcript_writer (line 26) | tachyon_halo2_bn254_transcript_writer*
function tachyon_halo2_bn254_transcript_writer (line 54) | tachyon_halo2_bn254_transcript_writer*
function tachyon_halo2_bn254_transcript_writer_destroy (line 92) | void tachyon_halo2_bn254_transcript_writer_destroy(
function tachyon_halo2_bn254_transcript_writer_update (line 119) | void tachyon_halo2_bn254_transcript_writer_update(
function tachyon_halo2_bn254_transcript_writer_finalize (line 149) | void tachyon_halo2_bn254_transcript_writer_finalize(
function tachyon_bn254_fr (line 176) | tachyon_bn254_fr tachyon_halo2_bn254_transcript_writer_squeeze(
function tachyon_halo2_bn254_transcript_writer_get_state (line 202) | void tachyon_halo2_bn254_transcript_writer_get_state(
FILE: tachyon/c/zk/plonk/halo2/bn254_transcript.h
type tachyon_halo2_bn254_transcript_writer (line 17) | struct tachyon_halo2_bn254_transcript_writer {
FILE: tachyon/c/zk/plonk/halo2/bn254_transcript_unittest.cc
type tachyon::zk::plonk::halo2 (line 15) | namespace tachyon::zk::plonk::halo2 {
class TranscriptWriterTest (line 18) | class TranscriptWriterTest : public math::FiniteFieldTest<math::bn254:...
method TearDown (line 20) | void TearDown() override {
function TYPED_TEST (line 37) | TYPED_TEST(TranscriptWriterTest, APIs) {
FILE: tachyon/c/zk/plonk/halo2/bn254_verifier.cc
function Destroy (line 86) | void Destroy(NativeVerifier* verifier) {
function VerifyProof (line 91) | bool VerifyProof(
function tachyon_halo2_bn254_verifier (line 136) | tachyon_halo2_bn254_verifier* tachyon_halo2_bn254_verifier_create_from_p...
function tachyon_halo2_bn254_verifier_destroy (line 182) | void tachyon_halo2_bn254_verifier_destroy(
function tachyon_halo2_bn254_verifier_verify_proof (line 187) | bool tachyon_halo2_bn254_verifier_verify_proof(
FILE: tachyon/c/zk/plonk/halo2/bn254_verifier.h
type tachyon_halo2_bn254_verifier (line 29) | struct tachyon_halo2_bn254_verifier {
FILE: tachyon/c/zk/plonk/halo2/buffer_reader.h
function namespace (line 35) | namespace tachyon::c::zk::plonk {
function ReadU8AsBool (line 57) | inline bool ReadU8AsBool(const tachyon::base::ReadOnlyBuffer& buffer) {
function ReadU32AsSizeT (line 61) | inline size_t ReadU32AsSizeT(const tachyon::base::ReadOnlyBuffer& buffer) {
FILE: tachyon/c/zk/plonk/halo2/kzg_family_prover_impl.h
function namespace (line 16) | namespace tachyon::c::zk::plonk::halo2 {
FILE: tachyon/c/zk/plonk/halo2/prover_impl_base.h
function namespace (line 16) | namespace tachyon::c::zk::plonk::halo2 {
FILE: tachyon/c/zk/plonk/halo2/prover_replay.cc
type tachyon (line 23) | namespace tachyon {
type c::zk::plonk::halo2::bn254 (line 24) | namespace c::zk::plonk::halo2::bn254 {
function DeserializeArgumentData (line 42) | ArgumentData<PCS> DeserializeArgumentData(
function WriteParams (line 53) | void WriteParams(const PCS& pcs, const tachyon::base::FilePath& para...
function WriteParams (line 61) | void WriteParams(tachyon_halo2_bn254_prover* c_prover,
function CreateProof (line 82) | void CreateProof(NativeProver* prover, tachyon_halo2_bn254_prover* c...
function CreateProof (line 134) | void CreateProof(tachyon_halo2_bn254_prover* c_prover, crypto::RNGTy...
function RunMain (line 181) | int RunMain(int argc, char** argv) {
function main (line 340) | int main(int argc, char** argv) { return tachyon::RunMain(argc, argv); }
FILE: tachyon/c/zk/plonk/halo2/test/bn254_halo2_params_data.h
function namespace (line 6) | namespace tachyon::c::zk::plonk::halo2::bn254 {
FILE: tachyon/c/zk/plonk/halo2/verifier_impl.h
function namespace (line 13) | namespace tachyon::c::zk::plonk::halo2 {
function VerifyProof (line 32) | [[nodiscard]] bool VerifyProof(
FILE: tachyon/c/zk/plonk/halo2/verifier_replay.cc
type tachyon (line 22) | namespace tachyon {
type c::zk::plonk::halo2::bn254 (line 23) | namespace c::zk::plonk::halo2::bn254 {
function GetInstanceColumnsVec (line 32) | std::vector<std::vector<typename PCS::Evals>> GetInstanceColumnsVec() {
function VerifyProof (line 38) | bool VerifyProof(NativeVerifier* verifier,
function VerifyProof (line 60) | bool VerifyProof(tachyon_halo2_bn254_verifier* c_verifier,
function RunMain (line 102) | int RunMain(int argc, char** argv) {
function main (line 187) | int main(int argc, char** argv) { return tachyon::RunMain(argc, argv); }
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_proving_key.cc
function Destroy (line 21) | void Destroy(const NativePKey* pk) {
function tachyon_bn254_plonk_verifying_key (line 26) | const tachyon_bn254_plonk_verifying_key* GetVerifyingKey(const NativePKe...
function tachyon_bn254_plonk_proving_key (line 61) | tachyon_bn254_plonk_proving_key*
function tachyon_bn254_plonk_proving_key_destroy (line 107) | void tachyon_bn254_plonk_proving_key_destroy(
function tachyon_bn254_plonk_verifying_key (line 112) | const tachyon_bn254_plonk_verifying_key*
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_proving_key.h
type tachyon_bn254_plonk_proving_key (line 19) | struct tachyon_bn254_plonk_proving_key {
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_proving_key_unittest.cc
type tachyon::zk::plonk (line 11) | namespace tachyon::zk::plonk {
class Bn254PlonkScrollProvingKeyTest (line 15) | class Bn254PlonkScrollProvingKeyTest
function TEST_F (line 20) | TEST_F(Bn254PlonkScrollProvingKeyTest, GetVerifyingKey) {
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_verifying_key.cc
function tachyon_bn254_plonk_constraint_system (line 9) | const tachyon_bn254_plonk_constraint_system*
function tachyon_bn254_fr (line 15) | tachyon_bn254_fr tachyon_bn254_plonk_verifying_key_get_transcript_repr(
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_verifying_key.h
type tachyon_bn254_plonk_verifying_key (line 26) | struct tachyon_bn254_plonk_verifying_key {}
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_verifying_key_type_traits.h
function namespace (line 9) | namespace tachyon::c::base {
FILE: tachyon/c/zk/plonk/keys/bn254_plonk_verifying_key_unittest.cc
type tachyon::zk::plonk (line 9) | namespace tachyon::zk::plonk {
class Bn254PlonkVerifyingKeyTest (line 13) | class Bn254PlonkVerifyingKeyTest
function TEST_F (line 18) | TEST_F(Bn254PlonkVerifyingKeyTest, GetTranscriptRepr) {
FILE: tachyon/c/zk/plonk/keys/proving_key_impl.h
function namespace (line 20) | namespace tachyon::c::zk::plonk {
function SetTranscriptRepr (line 55) | void SetTranscriptRepr(const tachyon::zk::Entity<PCS>& entity) {
function F (line 59) | const F& GetTranscriptRepr(const tachyon::zk::Entity<PCS>& entity) {
function ReadVerifyingKey (line 83) | static void ReadVerifyingKey(const tachyon::base::ReadOnlyBuffer& buffer,
function ReadConstraintSystem (line 100) | static void ReadConstraintSystem(
FILE: tachyon/cc/math/elliptic_curves/generator/generator.cc
type tachyon (line 12) | namespace tachyon {
type GenerationConfig (line 14) | struct GenerationConfig : public build::CcWriter {
function RealMain (line 109) | int RealMain(int argc, char** argv) {
function main (line 165) | int main(int argc, char** argv) { return tachyon::RealMain(argc, argv); }
FILE: tachyon/cc/math/elliptic_curves/short_weierstrass/affine_point_unittest.cc
type tachyon::cc::math (line 8) | namespace tachyon::cc::math {
class AffinePointTest (line 12) | class AffinePointTest : public testing::Test {
method SetUpTestSuite (line 14) | static void SetUpTestSuite() { tachyon::math::bn254::G1Curve::Init(); }
method SetUp (line 16) | void SetUp() override {
function TEST_F (line 33) | TEST_F(AffinePointTest, Zero) {
function TEST_F (line 38) | TEST_F(AffinePointTest, Generator) {
function TEST_F (line 44) | TEST_F(AffinePointTest, Random) {
function TEST_F (line 49) | TEST_F(AffinePointTest, Eq) { EXPECT_EQ(cc_a_ == cc_b_, a_ == b_); }
function TEST_F (line 51) | TEST_F(AffinePointTest, Ne) { EXPECT_EQ(cc_a_ != cc_b_, a_ != b_); }
function TEST_F (line 53) | TEST_F(AffinePointTest, Add) {
function TEST_F (line 58) | TEST_F(AffinePointTest, Sub) {
function TEST_F (line 63) | TEST_F(AffinePointTest, Neg) {
function TEST_F (line 68) | TEST_F(AffinePointTest, Dbl) {
FILE: tachyon/cc/math/elliptic_curves/short_weierstrass/jacobian_point_unittest.cc
type tachyon::cc::math (line 8) | namespace tachyon::cc::math {
class JacobianPointTest (line 12) | class JacobianPointTest : public testing::Test {
method SetUpTestSuite (line 14) | static void SetUpTestSuite() { tachyon::math::bn254::G1Curve::Init(); }
method SetUp (line 16) | void SetUp() override {
function TEST_F (line 33) | TEST_F(JacobianPointTest, Zero) {
function TEST_F (line 38) | TEST_F(JacobianPointTest, Generator) {
function TEST_F (line 44) | TEST_F(JacobianPointTest, Random) {
function TEST_F (line 49) | TEST_F(JacobianPointTest, Eq) { EXPECT_EQ(cc_a_ == cc_b_, a_ == b_); }
function TEST_F (line 51) | TEST_F(JacobianPointTest, Ne) { EXPECT_EQ(cc_a_ != cc_b_, a_ != b_); }
function TEST_F (line 53) | TEST_F(JacobianPointTest, Add) {
function TEST_F (line 59) | TEST_F(JacobianPointTest, Sub) {
function TEST_F (line 65) | TEST_F(JacobianPointTest, Neg) {
function TEST_F (line 70) | TEST_F(JacobianPointTest, Dbl) {
FILE: tachyon/cc/math/elliptic_curves/short_weierstrass/point_xyzz_unittest.cc
type tachyon::cc::math (line 8) | namespace tachyon::cc::math {
class PointXYZZTest (line 12) | class PointXYZZTest : public testing::Test {
method SetUpTestSuite (line 14) | static void SetUpTestSuite() { tachyon::math::bn254::G1Curve::Init(); }
method SetUp (line 16) | void SetUp() override {
function TEST_F (line 33) | TEST_F(PointXYZZTest, Zero) {
function TEST_F (line 38) | TEST_F(PointXYZZTest, Generator) {
function TEST_F (line 44) | TEST_F(PointXYZZTest, Random) {
function TEST_F (line 49) | TEST_F(PointXYZZTest, Eq) { EXPECT_EQ(cc_a_ == cc_b_, a_ == b_); }
function TEST_F (line 51) | TEST_F(PointXYZZTest, Ne) { EXPECT_EQ(cc_a_ != cc_b_, a_ != b_); }
function TEST_F (line 53) | TEST_F(PointXYZZTest, Add) {
function TEST_F (line 59) | TEST_F(PointXYZZTest, Sub) {
function TEST_F (line 65) | TEST_F(PointXYZZTest, Neg) {
function TEST_F (line 70) | TEST_F(PointXYZZTest, Dbl) {
FILE: tachyon/cc/math/elliptic_curves/short_weierstrass/projective_point_unittest.cc
type tachyon::cc::math (line 8) | namespace tachyon::cc::math {
class ProjectivePointTest (line 12) | class ProjectivePointTest : public testing::Test {
method SetUpTestSuite (line 14) | static void SetUpTestSuite() { tachyon::math::bn254::G1Curve::Init(); }
method SetUp (line 16) | void SetUp() override {
function TEST_F (line 33) | TEST_F(ProjectivePointTest, Zero) {
function TEST_F (line 38) | TEST_F(ProjectivePointTest, Generator) {
function TEST_F (line 44) | TEST_F(ProjectivePointTest, Random) {
function TEST_F (line 49) | TEST_F(ProjectivePointTest, Eq) { EXPECT_EQ(cc_a_ == cc_b_, a_ == b_); }
function TEST_F (line 51) | TEST_F(ProjectivePointTest, Ne) { EXPECT_EQ(cc_a_ != cc_b_, a_ != b_); }
function TEST_F (line 53) | TEST_F(ProjectivePointTest, Add) {
function TEST_F (line 59) | TEST_F(ProjectivePointTest, Sub) {
function TEST_F (line 65) | TEST_F(ProjectivePointTest, Neg) {
function TEST_F (line 70) | TEST_F(ProjectivePointTest, Dbl) {
FILE: tachyon/cc/math/finite_fields/prime_field_unittest.cc
type tachyon::cc::math (line 7) | namespace tachyon::cc::math {
class PrimeFieldTest (line 11) | class PrimeFieldTest : public testing::Test {
method SetUp (line 13) | void SetUp() override {
function TEST_F (line 30) | TEST_F(PrimeFieldTest, Zero) {
function TEST_F (line 35) | TEST_F(PrimeFieldTest, One) {
function TEST_F (line 40) | TEST_F(PrimeFieldTest, MinusOne) {
function TEST_F (line 45) | TEST_F(PrimeFieldTest, Random) {
function TEST_F (line 50) | TEST_F(PrimeFieldTest, Add) {
function TEST_F (line 55) | TEST_F(PrimeFieldTest, Sub) {
function TEST_F (line 60) | TEST_F(PrimeFieldTest, Mul) {
function TEST_F (line 65) | TEST_F(PrimeFieldTest, Div) {
function TEST_F (line 78) | TEST_F(PrimeFieldTest, Negate) {
function TEST_F (line 82) | TEST_F(PrimeFieldTest, Double) {
function TEST_F (line 86) | TEST_F(PrimeFieldTest, Square) {
function TEST_F (line 90) | TEST_F(PrimeFieldTest, Inverse) {
function TEST_F (line 100) | TEST_F(PrimeFieldTest, Eq) { EXPECT_EQ(cc_a_ == cc_b_, a_ == b_); }
function TEST_F (line 102) | TEST_F(PrimeFieldTest, Ne) { EXPECT_EQ(cc_a_ != cc_b_, a_ != b_); }
function TEST_F (line 104) | TEST_F(PrimeFieldTest, Gt) { EXPECT_EQ(cc_a_ > cc_b_, a_ > b_); }
function TEST_F (line 106) | TEST_F(PrimeFieldTest, Ge) { EXPECT_EQ(cc_a_ >= cc_b_, a_ >= b_); }
function TEST_F (line 108) | TEST_F(PrimeFieldTest, Lt) { EXPECT_EQ(cc_a_ < cc_b_, a_ < b_); }
function TEST_F (line 110) | TEST_F(PrimeFieldTest, Le) { EXPECT_EQ(cc_a_ <= cc_b_, a_ <= b_); }
FILE: tachyon/cc/version.cc
type tachyon::cc (line 3) | namespace tachyon::cc {
function GetRuntimeVersion (line 5) | uint32_t GetRuntimeVersion() { return TACHYON_CC_VERSION; }
function GetRuntimeVersionStr (line 7) | std::string_view GetRuntimeVersionStr() { return TACHYON_CC_VERSION_ST...
function GetRuntimeFullVersionStr (line 9) | std::string_view GetRuntimeFullVersionStr() {
FILE: tachyon/cc/version.h
function namespace (line 11) | namespace tachyon::cc {
FILE: tachyon/cc/version_unittest.cc
type tachyon::cc (line 6) | namespace tachyon::cc {
function TEST (line 8) | TEST(VersionTest, CompileTimeVersionTest) {
function TEST (line 18) | TEST(VersionTest, RunTimeVersionTest) {
FILE: tachyon/crypto/challenger/challenger.h
function it (line 118) | auto it = std::find_if(ret.begin(), ret.end(), [](uint32_t v) {
FILE: tachyon/crypto/challenger/challenger_traits_forward.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/challenger/duplex_challenger.h
function namespace (line 16) | namespace tachyon {
FILE: tachyon/crypto/challenger/duplex_challenger_unittest.cc
type tachyon::crypto (line 18) | namespace tachyon::crypto {
class DuplexChallengerTest (line 27) | class DuplexChallengerTest : public math::FiniteFieldTest<F> {
method SetUp (line 31) | void SetUp() override {
function TEST_F (line 42) | TEST_F(DuplexChallengerTest, Sample) {
function TEST_F (line 56) | TEST_F(DuplexChallengerTest, Grind) {
FILE: tachyon/crypto/challenger/hash_challenger.h
function namespace (line 15) | namespace tachyon::crypto {
FILE: tachyon/crypto/challenger/hash_challenger_unittest.cc
type tachyon::crypto (line 20) | namespace tachyon::crypto {
class HashChallengerTest (line 30) | class HashChallengerTest : public math::FiniteFieldTest<F> {
method SetUp (line 32) | void SetUp() override {
function TEST_F (line 47) | TEST_F(HashChallengerTest, Sample) {
FILE: tachyon/crypto/challenger/multi_field32_challenger.h
function namespace (line 19) | namespace tachyon::crypto {
FILE: tachyon/crypto/challenger/multi_field32_challenger_unittest.cc
type tachyon::crypto (line 18) | namespace tachyon::crypto {
class MultiField32ChallengerTest (line 27) | class MultiField32ChallengerTest : public testing::Test {
method SetUpTestSuite (line 29) | static void SetUpTestSuite() {
method SetUp (line 34) | void SetUp() override {
function TEST_F (line 49) | TEST_F(MultiField32ChallengerTest, Sample) {
function TEST_F (line 66) | TEST_F(MultiField32ChallengerTest, Grind) {
FILE: tachyon/crypto/challenger/multi_field32_conversions.h
function namespace (line 19) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/batch_commitment_state.h
function namespace (line 8) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/fri_config.h
function namespace (line 17) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/fri_config_unittest.cc
type tachyon::crypto (line 7) | namespace tachyon::crypto {
class FRIConfigTest (line 13) | class FRIConfigTest : public math::FiniteFieldTest<ExtF> {}
function TEST_F (line 17) | TEST_F(FRIConfigTest, FoldMatrix) {
FILE: tachyon/crypto/commitments/fri/fri_proof.h
function namespace (line 20) | namespace crypto {
function ReadFrom (line 204) | static bool ReadFrom(const ReadOnlyBuffer& buffer,
function ReadFrom (line 237) | static bool ReadFrom(const ReadOnlyBuffer& buffer,
function ReadFrom (line 273) | static bool ReadFrom(
function ReadFrom (line 305) | static bool ReadFrom(const ReadOnlyBuffer& buffer,
function ReadFrom (line 338) | static bool ReadFrom(const ReadOnlyBuffer& buffer,
FILE: tachyon/crypto/commitments/fri/lagrange_selectors.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/prove.h
function namespace (line 20) | namespace tachyon::crypto::fri {
FILE: tachyon/crypto/commitments/fri/simple_fri.h
function namespace (line 23) | namespace tachyon::crypto {
function Commit (line 54) | [[nodiscard]] bool Commit(const Poly& poly, Transcript<F>* transcript) c...
function DoCreateOpeningProof (line 90) | [[nodiscard]] bool DoCreateOpeningProof(size_t index,
function DoVerifyOpeningProof (line 121) | [[nodiscard]] bool DoVerifyOpeningProof(
FILE: tachyon/crypto/commitments/fri/simple_fri_proof.h
function namespace (line 11) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/simple_fri_storage.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/simple_fri_unittest.cc
type tachyon::crypto (line 16) | namespace tachyon::crypto {
class SimpleHasher (line 20) | class SimpleHasher
method ComputeLeafHash (line 24) | math::Goldilocks ComputeLeafHash(
method ComputeParentHash (line 28) | math::Goldilocks ComputeParentHash(
class SimpleFRIStorageImpl (line 35) | class SimpleFRIStorageImpl : public SimpleFRIStorage<math::Goldilocks> {
method Allocate (line 43) | void Allocate(size_t size) override { layers_.resize(size); }
class FRITest (line 52) | class FRITest : public math::FiniteFieldTest<math::Goldilocks> {
method SetUp (line 64) | void SetUp() override {
function TEST_F (line 78) | TEST_F(FRITest, CommitAndVerify) {
FILE: tachyon/crypto/commitments/fri/two_adic_fri.h
function namespace (line 32) | namespace c::crypto {
function config_ (line 67) | mmcs_(std::move(mmcs)), config_(std::move(config)) {}
function Domain (line 71) | Domain GetNaturalDomainForDegree(size_t size) {
function Commit (line 76) | [[nodiscard]] bool Commit(const std::vector<Domain>& cosets,
function CreateOpeningProof (line 96) | [[nodiscard]] bool CreateOpeningProof(
FILE: tachyon/crypto/commitments/fri/two_adic_fri_unittest.cc
type tachyon::crypto (line 20) | namespace tachyon::crypto {
class TwoAdicFRITest (line 52) | class TwoAdicFRITest : public testing::Test {
method TwoAdicFRITest (line 54) | TwoAdicFRITest() = default;
method SetUpTestSuite (line 56) | static void SetUpTestSuite() {
method SetUp (line 61) | void SetUp() override {
method TestProtocol (line 71) | void TestProtocol(std::vector<std::vector<uint32_t>> log_degrees_by_...
function TEST_F (line 133) | TEST_F(TwoAdicFRITest, Single) {
function TEST_F (line 137) | TEST_F(TwoAdicFRITest, ManyEqual) {
function TEST_F (line 141) | TEST_F(TwoAdicFRITest, ManyDifferent) {
function TEST_F (line 151) | TEST_F(TwoAdicFRITest, ManyDifferentRev) {
function TEST_F (line 161) | TEST_F(TwoAdicFRITest, MultipleRounds) {
FILE: tachyon/crypto/commitments/fri/two_adic_multiplicative_coset.h
function namespace (line 20) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/fri/two_adic_multiplicative_coset_unittest.cc
type tachyon::crypto (line 7) | namespace tachyon::crypto {
class TwoAdicMultiplicativeCosetTest (line 13) | class TwoAdicMultiplicativeCosetTest : public math::FiniteFieldTest<Ex...
method SetUp (line 15) | void SetUp() override {
function TEST_F (line 28) | TEST_F(TwoAdicMultiplicativeCosetTest, GetNextPoint) {
function TEST_F (line 33) | TEST_F(TwoAdicMultiplicativeCosetTest, CreateDisjointDomain) {
function TEST_F (line 40) | TEST_F(TwoAdicMultiplicativeCosetTest, GetZpAtPoint) {
function TEST_F (line 46) | TEST_F(TwoAdicMultiplicativeCosetTest, SplitDomains) {
function TEST_F (line 56) | TEST_F(TwoAdicMultiplicativeCosetTest, GetSelectorsAtPoint) {
function TEST_F (line 63) | TEST_F(TwoAdicMultiplicativeCosetTest, GetSelectorsOnCoset) {
FILE: tachyon/crypto/commitments/fri/verify.h
function namespace (line 18) | namespace tachyon::crypto::fri {
FILE: tachyon/crypto/commitments/kzg/gwc.h
function namespace (line 22) | namespace tachyon {
function namespace (line 260) | namespace base {
FILE: tachyon/crypto/commitments/kzg/gwc_unittest.cc
type tachyon::crypto (line 5) | namespace tachyon::crypto {
class GWCTest (line 11) | class GWCTest : public KZGFamilyTest<PCS> {}
function TEST_F (line 15) | TEST_F(GWCTest, CreateAndVerifyProof) { this->CreateAndVerifyProof(); }
function TEST_F (line 17) | TEST_F(GWCTest, Copyable) { this->Copyable(); }
FILE: tachyon/crypto/commitments/kzg/kzg.h
function namespace (line 33) | namespace zk {
function SetupForGpu (line 91) | void SetupForGpu() {
function ResizeBatchCommitments (line 116) | void ResizeBatchCommitments(size_t size) {
function Downsize (line 214) | [[nodiscard]] bool Downsize(size_t n) {
function Commit (line 222) | [[nodiscard]] bool Commit(const ScalarContainer& v, Commitment* out) con...
function CommitLagrange (line 243) | [[nodiscard]] bool CommitLagrange(const ScalarContainer& v,
function ReadFrom (line 346) | static bool ReadFrom(const ReadOnlyBuffer& buffer, PCS* pcs) {
function EstimateSize (line 358) | static size_t EstimateSize(const PCS& pcs) {
FILE: tachyon/crypto/commitments/kzg/kzg_family.h
function namespace (line 18) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/kzg/kzg_family_test.h
function namespace (line 19) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/kzg/kzg_unittest.cc
type tachyon::crypto (line 9) | namespace tachyon::crypto {
class KZGTest (line 17) | class KZGTest : public testing::Test {
method SetUpTestSuite (line 25) | static void SetUpTestSuite() { math::bn254::G1Curve::Init(); }
function TEST_F (line 30) | TEST_F(KZGTest, UnsafeSetup) {
function TEST_F (line 39) | TEST_F(KZGTest, CommitLagrange) {
function TEST_F (line 73) | TEST_F(KZGTest, BatchCommitLagrange) {
function TEST_F (line 139) | TEST_F(KZGTest, Downsize) {
function TEST_F (line 147) | TEST_F(KZGTest, Copyable) {
FILE: tachyon/crypto/commitments/kzg/shplonk.h
function namespace (line 23) | namespace tachyon {
function namespace (line 392) | namespace base {
FILE: tachyon/crypto/commitments/kzg/shplonk_unittest.cc
type tachyon::crypto (line 5) | namespace tachyon::crypto {
class SHPlonkTest (line 11) | class SHPlonkTest : public KZGFamilyTest<PCS> {}
function TEST_F (line 15) | TEST_F(SHPlonkTest, CreateAndVerifyProof) { this->CreateAndVerifyProof...
function TEST_F (line 17) | TEST_F(SHPlonkTest, Copyable) { this->Copyable(); }
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/binary_merkle_hasher.h
function namespace (line 7) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/binary_merkle_proof.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/binary_merkle_tree.h
function set_leaves_size_for_parallelization (line 39) | void set_leaves_size_for_parallelization(
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/binary_merkle_tree_storage.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/binary_merkle_tree_unittest.cc
type tachyon::crypto (line 11) | namespace tachyon::crypto {
class SimpleHasher (line 15) | class SimpleHasher : public BinaryMerkleHasher<int, int> {
method ComputeLeafHash (line 18) | int ComputeLeafHash(const int& leaf) const override { return leaf; }
method ComputeParentHash (line 19) | int ComputeParentHash(const int& left, const int& right) const overr...
class BinaryMerkleTreeTest (line 24) | class BinaryMerkleTreeTest : public testing::Test {
method SetUp (line 31) | void SetUp() override {
method CreateLeaves (line 36) | void CreateLeaves() { leaves_ = base::CreateRangedVector<int>(0, N); }
function TEST_F (line 47) | TEST_F(BinaryMerkleTreeTest, FillLeaves) {
function TEST_F (line 54) | TEST_F(BinaryMerkleTreeTest, BuildTreeFromLeaves) {
function TEST_F (line 92) | TEST_F(BinaryMerkleTreeTest, CommitAndVerify) {
FILE: tachyon/crypto/commitments/merkle_tree/binary_merkle_tree/simple_binary_merkle_tree_storage.h
function namespace (line 8) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/extension_field_merkle_tree_mmcs.h
function namespace (line 14) | namespace tachyon::crypto {
function DoCommit (line 36) | [[nodiscard]] bool DoCommit(
function DoCommitOwned (line 42) | [[nodiscard]] bool DoCommitOwned(
function std (line 49) | const std::vector<Eigen::Map<const math::RowMajorMatrix<ExtF>>>&
function DoCreateOpeningProof (line 54) | [[nodiscard]] bool DoCreateOpeningProof(
function DoVerifyOpeningProof (line 60) | [[nodiscard]] bool DoVerifyOpeningProof(
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/extension_field_merkle_tree_mmcs_unittest.cc
type tachyon::crypto (line 22) | namespace tachyon::crypto {
class ExtensionFieldMerkleTreeMMCSTest (line 51) | class ExtensionFieldMerkleTreeMMCSTest : public math::FiniteFieldTest<...
method SetUpTestSuite (line 53) | static void SetUpTestSuite() {
function TEST_F (line 64) | TEST_F(ExtensionFieldMerkleTreeMMCSTest, CommitAndVerify) {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/field_merkle_tree.h
function namespace (line 35) | namespace tachyon {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/field_merkle_tree_gpu_unittest.cc
type tachyon::crypto (line 19) | namespace tachyon::crypto {
class FieldMerkleTreeGpuTest (line 41) | class FieldMerkleTreeGpuTest : public math::FiniteFieldTest<PackedF> {
function TEST_F (line 51) | TEST_F(FieldMerkleTreeGpuTest, CommitGpu) {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/field_merkle_tree_mmcs.h
function namespace (line 24) | namespace tachyon::crypto {
function DoCommit (line 93) | [[nodiscard]] bool DoCommit(
function DoCommitOwned (line 111) | [[nodiscard]] bool DoCommitOwned(
function std (line 129) | const std::vector<Eigen::Map<const math::RowMajorMatrix<F>>>& DoGetMatri...
function DoCreateOpeningProof (line 134) | [[nodiscard]] bool DoCreateOpeningProof(size_t index,
function DoVerifyOpeningProof (line 167) | [[nodiscard]] bool DoVerifyOpeningProof(
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/field_merkle_tree_mmcs_unittest.cc
type tachyon::crypto (line 20) | namespace tachyon::crypto {
class FieldMerkleTreeMMCSTest (line 44) | class FieldMerkleTreeMMCSTest : public math::FiniteFieldTest<PackedF> {
function TEST_F (line 51) | TEST_F(FieldMerkleTreeMMCSTest, Commit) {
function TEST_F (line 85) | TEST_F(FieldMerkleTreeMMCSTest, CommitOwned) {
function TEST_F (line 119) | TEST_F(FieldMerkleTreeMMCSTest, CommitAndVerify) {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/field_merkle_tree_unittest.cc
type tachyon::crypto (line 20) | namespace tachyon::crypto {
class FieldMerkleTreeTest (line 42) | class FieldMerkleTreeTest : public math::FiniteFieldTest<PackedF> {
function TEST_F (line 52) | TEST_F(FieldMerkleTreeTest, CommitSingle1x8) {
function TEST_F (line 82) | TEST_F(FieldMerkleTreeTest, CommitSingle2x2) {
function TEST_F (line 98) | TEST_F(FieldMerkleTreeTest, CommitSingle2x3) {
function TEST_F (line 121) | TEST_F(FieldMerkleTreeTest, CommitMixed) {
function TEST_F (line 156) | TEST_F(FieldMerkleTreeTest, CommitEitherOrder) {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/icicle/icicle_mmcs.h
function namespace (line 17) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/icicle/icicle_mmcs_baby_bear.cc
function gpuError_t (line 20) | gpuError_t tachyon_babybear_mmcs_commit_cuda(
type tachyon::crypto (line 33) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/icicle/icicle_mmcs_bn254.cc
function gpuError_t (line 20) | gpuError_t tachyon_bn254_mmcs_commit_cuda(
type tachyon::crypto (line 32) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/merkle_tree/field_merkle_tree/icicle/icicle_mmcs_holder.h
function IcicleMMCS (line 19) | const IcicleMMCS<F>& operator*() const { return *get(); }
function Release (line 48) | void Release() {
FILE: tachyon/crypto/commitments/mixed_matrix_commitment_scheme.h
function namespace (line 16) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/mixed_matrix_commitment_scheme_traits_forward.h
function namespace (line 4) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/pedersen/pedersen.h
function namespace (line 32) | namespace tachyon {
FILE: tachyon/crypto/commitments/pedersen/pedersen_unittest.cc
type tachyon::crypto (line 8) | namespace tachyon::crypto {
class PedersenTest (line 12) | class PedersenTest : public testing::Test {
method SetUpTestSuite (line 19) | static void SetUpTestSuite() { math::bn254::G1Curve::Init(); }
function TEST_F (line 24) | TEST_F(PedersenTest, CommitPedersen) {
function TEST_F (line 52) | TEST_F(PedersenTest, BatchCommitPedersen) {
function TEST_F (line 107) | TEST_F(PedersenTest, Copyable) {
FILE: tachyon/crypto/commitments/polynomial_openings.h
function Poly (line 124) | Poly CreateCombinedLowDegreeExtensions(
function Poly (line 154) | Poly CombineLowDegreeExtensions(
function GroupBySinglePoint (line 191) | void GroupBySinglePoint(
type GroupedPolyOraclePair (line 245) | struct GroupedPolyOraclePair {
function Field (line 335) | static Field GetOpeningFromPolyOpenings(
FILE: tachyon/crypto/commitments/polynomial_openings_unittest.cc
type tachyon::crypto (line 10) | namespace tachyon::crypto {
class PolynomialOpeningsTest (line 23) | class PolynomialOpeningsTest : public FiniteFieldTest<GF7> {
method SetUp (line 25) | void SetUp() override {
function TEST_F (line 46) | TEST_F(PolynomialOpeningsTest, CreateCombinedLowDegreeExtensions) {
function TEST_F (line 112) | TEST_F(PolynomialOpeningsTest, GroupBySinglePoint) {
function TEST_F (line 159) | TEST_F(PolynomialOpeningsTest, GroupByPolyOracleAndPoints) {
FILE: tachyon/crypto/commitments/test/bn254_kzg_polynomial_openings.h
function namespace (line 12) | namespace tachyon {
FILE: tachyon/crypto/commitments/univariate_polynomial_commitment_scheme.h
function namespace (line 10) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/vector_commitment_scheme.h
function namespace (line 11) | namespace tachyon::crypto {
FILE: tachyon/crypto/commitments/vector_commitment_scheme_traits_forward.h
function namespace (line 4) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/compressor.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/hasher.h
function namespace (line 9) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/prime_field_serializable.h
function namespace (line 19) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/prime_field_serializable_unittest.cc
type tachyon::crypto (line 8) | namespace tachyon::crypto {
class PrimeFieldSerializableTest (line 12) | class PrimeFieldSerializableTest : public math::FiniteFieldTest<math::...
function TEST_F (line 16) | TEST_F(PrimeFieldSerializableTest, SerializeSingleValueToField) {
function TEST_F (line 24) | TEST_F(PrimeFieldSerializableTest, SerializeVectorToField) {
function TEST_F (line 34) | TEST_F(PrimeFieldSerializableTest, SerializeArrayToField) {
function TEST_F (line 44) | TEST_F(PrimeFieldSerializableTest, SerializeInlinedVectorToField) {
function TEST_F (line 54) | TEST_F(PrimeFieldSerializableTest, SerializeBatchToField) {
function TEST_F (line 65) | TEST_F(PrimeFieldSerializableTest, SerializationFailureDueToModulus) {
FILE: tachyon/crypto/hashes/sponge/duplex_sponge_mode.h
function namespace (line 13) | namespace tachyon {
function namespace (line 57) | namespace base {
FILE: tachyon/crypto/hashes/sponge/duplex_sponge_mode_unittest.cc
type tachyon::crypto (line 12) | namespace tachyon::crypto {
function TEST (line 14) | TEST(DuplexSpongeModeTest, Copyable) {
FILE: tachyon/crypto/hashes/sponge/padding_free_sponge.h
function namespace (line 17) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/sponge/padding_free_sponge_unittest.cc
type tachyon::crypto (line 13) | namespace tachyon::crypto {
class PaddingFreeSpongeTest (line 19) | class PaddingFreeSpongeTest : public math::FiniteFieldTest<F> {}
function TEST_F (line 23) | TEST_F(PaddingFreeSpongeTest, Hash) {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseidon.h
function namespace (line 23) | namespace tachyon {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseidon_config.h
function namespace (line 30) | namespace tachyon {
function namespace (line 222) | namespace base {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseidon_config_base.h
function namespace (line 17) | namespace tachyon {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseidon_config_entry.h
function namespace (line 14) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseidon_config_entry_base.h
function namespace (line 15) | namespace tachyon::crypto {
FILE: tachyon/crypto/hashes/sponge/poseidon/poseid
Condensed preview — 2064 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (8,651K chars).
[
{
"path": ".bazelignore",
"chars": 49,
"preview": "tachyon/node/test\ntachyon/py/test\nvendors/circom\n"
},
{
"path": ".bazelrc",
"chars": 3925,
"preview": "# Tachyon Bazel configuration file.\n# This file tries to group and simply build option for Tachyon\n#\n# ----CONFIG OPTION"
},
{
"path": ".bazelversion",
"chars": 6,
"preview": "6.3.0\n"
},
{
"path": ".clang-format",
"chars": 3114,
"preview": "BasedOnStyle: Google\n# This defaults to 'Auto'. Explicitly set it for a while, so that\n# 'vector<vector<int> >' in exist"
},
{
"path": ".dockerignore",
"chars": 8084,
"preview": "# Created by https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node\n# Ed"
},
{
"path": ".github/workflows/ci.yml",
"chars": 4934,
"preview": "name: CI\n\non:\n push:\n branches: [\"main\"]\n pull_request:\n branches: [\"main\"]\n\njobs:\n test:\n strategy:\n m"
},
{
"path": ".github/workflows/delete_cache.yml",
"chars": 427,
"preview": "name: Delete Cache\n\non:\n pull_request:\n branches: [\"closed\"]\n\njobs:\n if_merged:\n if: github.event.pull_request.m"
},
{
"path": ".gitignore",
"chars": 8069,
"preview": "# Created by https://www.toptal.com/developers/gitignore/api/c++,vim,bazel,linux,macos,python,visualstudiocode,node\n# Ed"
},
{
"path": ".gitmessage",
"chars": 3994,
"preview": "<type>(<scope>): <summary>\n# ──────────────────────────────── 80 chars ───────────────────────────────────┤\n\n<Describe t"
},
{
"path": "BUILD.bazel",
"chars": 3760,
"preview": "load(\"@bazel_skylib//rules:common_settings.bzl\", \"bool_flag\")\nload(\"@com_github_bazelbuild_buildtools//buildifier:def.bz"
},
{
"path": "Cargo.toml",
"chars": 455,
"preview": "[workspace]\nmembers = [\n \"benchmark/msm/arkworks\",\n \"benchmark/msm/bellman\",\n \"benchmark/msm/halo2\",\n \"bench"
},
{
"path": "LICENSE",
"chars": 1074,
"preview": "(The MIT License)\n\nCopyright 2023 Lightscale Inc.\n\nPermission is hereby granted, free of charge, to any person obtaining"
},
{
"path": "LICENSE-APACHE.EF",
"chars": 10204,
"preview": "APACHE LICENSE\nVersion 2.0, January 2004\nhttp://www.apache.org/licenses/\n\nTERMS AND CONDITIONS FOR USE, REPRODUCTION, AN"
},
{
"path": "LICENSE-APACHE.arkworks-rs",
"chars": 10841,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "LICENSE-APACHE.era-bellman-cuda",
"chars": 10176,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "LICENSE-APACHE.halo2",
"chars": 10848,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "LICENSE-APACHE.plonky3",
"chars": 10848,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "LICENSE-APACHE.scroll",
"chars": 10848,
"preview": " Apache License\n Version 2.0, January 2004\n http"
},
{
"path": "LICENSE-APACHE.stwo",
"chars": 11354,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "LICENSE-MIT.EF",
"chars": 1072,
"preview": "MIT LICENSE\n\nCopyright 2022 Ethereum Foundation\n\nPermission is hereby granted, free of charge, to any person obtaining a"
},
{
"path": "LICENSE-MIT.arkworks-rs",
"chars": 1046,
"preview": "The MIT License (MIT)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and"
},
{
"path": "LICENSE-MIT.era-bellman-cuda",
"chars": 1068,
"preview": "MIT License\n\nCopyright (c) 2022 Matter Labs\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
},
{
"path": "LICENSE-MIT.halo2",
"chars": 1138,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2020-2022 The Electric Coin Company\nCopyright (c) 2022 The Halo 2 developers\n\nPermi"
},
{
"path": "LICENSE-MIT.plonky3",
"chars": 1086,
"preview": "The MIT License (MIT)\n\nCopyright (c) 2022 The Plonky3 Authors\n\nPermission is hereby granted, free of charge, to any pers"
},
{
"path": "LICENSE-MIT.scroll",
"chars": 1068,
"preview": "MIT License\n\nCopyright (c) 2022-2024 Scroll\n\nPermission is hereby granted, free of charge, to any person obtaining a cop"
},
{
"path": "LICENSE.chromium",
"chars": 1536,
"preview": "// Copyright 2015 The Chromium Authors\n//\n// Redistribution and use in source and binary forms, with or without\n// modif"
},
{
"path": "LICENSE.lambdaworks",
"chars": 11361,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "LICENSE.tensorflow",
"chars": 13575,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "LICENSE.ulvetanna",
"chars": 11344,
"preview": " Apache License\n Version 2.0, January 2004\n "
},
{
"path": "README.md",
"chars": 4777,
"preview": "<div align=\"center\">\n <br /><br /><br />\n <img src=\"tachyon_logo_horizontal.png\" style=\"width: 50%;\">\n <br /><br /><b"
},
{
"path": "WORKSPACE",
"chars": 3577,
"preview": "workspace(name = \"kroma_network_tachyon\")\n\nload(\"//bazel:tachyon_deps.bzl\", \"tachyon_deps\")\n\ntachyon_deps()\n\n# Start of "
},
{
"path": "bazel/BUILD.bazel",
"chars": 0,
"preview": ""
},
{
"path": "bazel/buildifier_deps.bzl",
"chars": 1961,
"preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\n# See https://github.com/bazelbuild/buildtools/blo"
},
{
"path": "bazel/js_deps.bzl",
"chars": 1200,
"preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\ndef js_deps():\n if not native.existing_rule(\"as"
},
{
"path": "bazel/pybind11_deps.bzl",
"chars": 713,
"preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\n\ndef pybind11_deps():\n if not native.existing_ru"
},
{
"path": "bazel/tachyon.bzl",
"chars": 3868,
"preview": "load(\"@local_config_cuda//cuda:build_defs.bzl\", \"if_cuda_is_configured\")\nload(\"@local_config_rocm//rocm:build_defs.bzl\","
},
{
"path": "bazel/tachyon_cc.bzl",
"chars": 11886,
"preview": "load(\"@local_config_cuda//cuda:build_defs.bzl\", \"cuda_library\", \"if_cuda\")\nload(\"@rules_cc//cc:defs.bzl\", \"cc_binary\", \""
},
{
"path": "bazel/tachyon_deps.bzl",
"chars": 8983,
"preview": "load(\"@bazel_tools//tools/build_defs/repo:http.bzl\", \"http_archive\")\nload(\"//third_party/circomlib:workspace.bzl\", circo"
},
{
"path": "bazel/tachyon_node.bzl",
"chars": 796,
"preview": "load(\"//bazel:tachyon.bzl\", \"if_node_binding\")\nload(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\", \"tachyon_cc_shared_l"
},
{
"path": "bazel/tachyon_py.bzl",
"chars": 2390,
"preview": "load(\"@pybind11_bazel//:build_defs.bzl\", \"PYBIND_COPTS\", \"PYBIND_DEPS\", \"PYBIND_FEATURES\")\nload(\"@rules_python//python:d"
},
{
"path": "bazel/tachyon_repo.bzl",
"chars": 3489,
"preview": "load(\"@bazel_tools//tools/cpp:unix_cc_configure.bzl\", \"find_cc\")\n\n# This is taken from tensorflow/third_party/remote_con"
},
{
"path": "bazel/tachyon_rust.bzl",
"chars": 1495,
"preview": "load(\n \"@rules_rust//rust:defs.bzl\",\n \"rust_binary\",\n \"rust_library\",\n \"rust_static_library\",\n \"rust_test"
},
{
"path": "benchmark/BUILD.bazel",
"chars": 1489,
"preview": "load(\"//bazel:tachyon.bzl\", \"if_has_matplotlib\")\nload(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\", \"tachyon_matplotli"
},
{
"path": "benchmark/config.cc",
"chars": 752,
"preview": "#include \"benchmark/config.h\"\n\n#include <string>\n\n#include \"tachyon/base/console/iostream.h\"\n#include \"tachyon/base/flag"
},
{
"path": "benchmark/config.h",
"chars": 979,
"preview": "#ifndef BENCHMARK_CONFIG_H_\n#define BENCHMARK_CONFIG_H_\n\n#include <set>\n\n// clang-format off\n#include \"benchmark/vendor."
},
{
"path": "benchmark/ec/BUILD.bazel",
"chars": 802,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\", \"tachyon_cuda_binary\")\n\ntachyon_cc_library(\n name = \"ec_config\","
},
{
"path": "benchmark/ec/ec_config.cc",
"chars": 488,
"preview": "#include \"benchmark/ec/ec_config.h\"\n\n#include \"tachyon/base/ranges/algorithm.h\"\n\nnamespace tachyon::benchmark {\n\nECConfi"
},
{
"path": "benchmark/ec/ec_config.h",
"chars": 591,
"preview": "#ifndef BENCHMARK_EC_EC_CONFIG_H_\n#define BENCHMARK_EC_EC_CONFIG_H_\n\n#include <vector>\n\n// clang-format off\n#include \"be"
},
{
"path": "benchmark/ec/ec_double_benchmark_gpu.cc",
"chars": 4255,
"preview": "#if TACHYON_CUDA || TACHYON_USE_ROCM\n\n#include <iostream>\n\n// clang-format off\n#include \"benchmark/simple_reporter.h\"\n#i"
},
{
"path": "benchmark/fft/BUILD.bazel",
"chars": 1851,
"preview": "load(\n \"//bazel:tachyon_cc.bzl\",\n \"tachyon_cc_binary\",\n \"tachyon_cc_library\",\n)\n\ntachyon_cc_library(\n name ="
},
{
"path": "benchmark/fft/README.md",
"chars": 5170,
"preview": "# (I)FFT Benchmark\n\n## CPU\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompiler: clang-15\nCPU"
},
{
"path": "benchmark/fft/arkworks/BUILD.bazel",
"chars": 429,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/fft/arkworks/Cargo.toml",
"chars": 721,
"preview": "[package]\nname = \"arkworks_fft_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.netwo"
},
{
"path": "benchmark/fft/arkworks/src/lib.rs",
"chars": 1466,
"preview": "use ark_bn254::Fr;\nuse ark_poly::domain::{EvaluationDomain, Radix2EvaluationDomain};\nuse std::{mem, slice, time::Instant"
},
{
"path": "benchmark/fft/bellman/BUILD.bazel",
"chars": 428,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/fft/bellman/Cargo.toml",
"chars": 657,
"preview": "[package]\nname = \"bellman_fft_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.networ"
},
{
"path": "benchmark/fft/bellman/src/lib.rs",
"chars": 1586,
"preview": "use bellman_ce::{domain::EvaluationDomain, domain::Scalar, pairing::bn256::Bn256, worker::Worker};\nuse std::{mem, slice,"
},
{
"path": "benchmark/fft/fft_benchmark.cc",
"chars": 8496,
"preview": "#include <stddef.h>\n#include <stdint.h>\n\n#include <memory>\n#include <vector>\n\n// clang-format off\n#include \"benchmark/ff"
},
{
"path": "benchmark/fft/fft_benchmark_gpu.cc",
"chars": 4199,
"preview": "#include <memory>\n#include <vector>\n#if TACHYON_CUDA\n\n// clang-format off\n#include \"benchmark/fft/fft_config.h\"\n#include"
},
{
"path": "benchmark/fft/fft_config.cc",
"chars": 1762,
"preview": "#include \"benchmark/fft/fft_config.h\"\n\n#include <set>\n\n#include \"tachyon/base/console/iostream.h\"\n#include \"tachyon/base"
},
{
"path": "benchmark/fft/fft_config.h",
"chars": 921,
"preview": "#ifndef BENCHMARK_FFT_FFT_CONFIG_H_\n#define BENCHMARK_FFT_FFT_CONFIG_H_\n\n#include <stdint.h>\n\n#include <vector>\n\n// clan"
},
{
"path": "benchmark/fft/fft_runner.h",
"chars": 3823,
"preview": "#ifndef BENCHMARK_FFT_FFT_RUNNER_H_\n#define BENCHMARK_FFT_FFT_RUNNER_H_\n\n#include <stddef.h>\n#include <stdint.h>\n\n#inclu"
},
{
"path": "benchmark/fft/halo2/BUILD.bazel",
"chars": 426,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/fft/halo2/Cargo.toml",
"chars": 649,
"preview": "[package]\nname = \"halo2_fft_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.network>"
},
{
"path": "benchmark/fft/halo2/src/lib.rs",
"chars": 1652,
"preview": "use halo2_proofs::arithmetic::{best_fft, parallelize, Field};\nuse halo2_proofs::halo2curves::bn256::Fr;\nuse std::{mem, s"
},
{
"path": "benchmark/fft_batch/BUILD.bazel",
"chars": 1432,
"preview": "load(\n \"//bazel:tachyon_cc.bzl\",\n \"tachyon_cc_binary\",\n \"tachyon_cc_library\",\n)\n\ntachyon_cc_library(\n name ="
},
{
"path": "benchmark/fft_batch/README.md",
"chars": 3263,
"preview": "# FFTBatch/CosetLDEBatch Benchmark\n\n## CPU\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompil"
},
{
"path": "benchmark/fft_batch/fft_batch_benchmark.cc",
"chars": 3659,
"preview": "#include <string>\n#include <vector>\n\n#include \"absl/strings/substitute.h\"\n\n// clang-format off\n#include \"benchmark/fft_b"
},
{
"path": "benchmark/fft_batch/fft_batch_config.cc",
"chars": 2057,
"preview": "#include \"benchmark/fft_batch/fft_batch_config.h\"\n\n#include <set>\n\n#include \"tachyon/base/console/iostream.h\"\n#include \""
},
{
"path": "benchmark/fft_batch/fft_batch_config.h",
"chars": 1038,
"preview": "#ifndef BENCHMARK_FFT_BATCH_FFT_BATCH_CONFIG_H_\n#define BENCHMARK_FFT_BATCH_FFT_BATCH_CONFIG_H_\n\n#include <stddef.h>\n\n#i"
},
{
"path": "benchmark/fft_batch/fft_batch_runner.h",
"chars": 2681,
"preview": "#ifndef BENCHMARK_FFT_BATCH_FFT_BATCH_RUNNER_H_\n#define BENCHMARK_FFT_BATCH_FFT_BATCH_RUNNER_H_\n\n#include <stddef.h>\n#in"
},
{
"path": "benchmark/fft_batch/plonky3/BUILD.bazel",
"chars": 434,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/fft_batch/plonky3/Cargo.toml",
"chars": 673,
"preview": "[package]\nname = \"plonky3_batch_fft_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma."
},
{
"path": "benchmark/fft_batch/plonky3/src/lib.rs",
"chars": 1716,
"preview": "use p3_baby_bear::BabyBear;\nuse p3_dft::{Radix2DitParallel, TwoAdicSubgroupDft};\nuse p3_field::AbstractField;\nuse p3_mat"
},
{
"path": "benchmark/field_type.h",
"chars": 1728,
"preview": "#ifndef BENCHMARK_FIELD_TYPE_H_\n#define BENCHMARK_FIELD_TYPE_H_\n\n#include <stdint.h>\n\n#include <string>\n#include <string"
},
{
"path": "benchmark/fri/BUILD.bazel",
"chars": 2158,
"preview": "load(\n \"//bazel:tachyon_cc.bzl\",\n \"tachyon_cc_binary\",\n \"tachyon_cc_library\",\n)\n\ntachyon_cc_library(\n name ="
},
{
"path": "benchmark/fri/README.md",
"chars": 1426,
"preview": "# FRI Benchmark\n\n## CPU\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompiler: clang-15\nCPU Ca"
},
{
"path": "benchmark/fri/fri_benchmark.cc",
"chars": 5498,
"preview": "#include <iostream>\n#include <string>\n#include <utility>\n#include <vector>\n\n#include \"absl/strings/substitute.h\"\n\n// cla"
},
{
"path": "benchmark/fri/fri_config.cc",
"chars": 2010,
"preview": "#include \"benchmark/fri/fri_config.h\"\n\n#include <set>\n\n#include \"tachyon/base/console/iostream.h\"\n#include \"tachyon/base"
},
{
"path": "benchmark/fri/fri_config.h",
"chars": 996,
"preview": "#ifndef BENCHMARK_FRI_FRI_CONFIG_H_\n#define BENCHMARK_FRI_FRI_CONFIG_H_\n\n#include <stddef.h>\n\n#include <vector>\n\n// clan"
},
{
"path": "benchmark/fri/fri_runner.h",
"chars": 4882,
"preview": "#ifndef BENCHMARK_FRI_FRI_RUNNER_H_\n#define BENCHMARK_FRI_FRI_RUNNER_H_\n\n#include <stddef.h>\n#include <stdint.h>\n\n#inclu"
},
{
"path": "benchmark/fri/plonky3/BUILD.bazel",
"chars": 428,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/fri/plonky3/Cargo.toml",
"chars": 957,
"preview": "[package]\nname = \"plonky3_fri_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.networ"
},
{
"path": "benchmark/fri/plonky3/src/lib.rs",
"chars": 6068,
"preview": "use std::fmt::Debug;\nuse std::time::Instant;\n\nuse p3_baby_bear::{BabyBear, DiffusionMatrixBabyBear};\nuse p3_challenger::"
},
{
"path": "benchmark/msm/BUILD.bazel",
"chars": 1553,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_binary\", \"tachyon_cc_library\")\n\ntachyon_cc_library(\n name = \"msm_config\",\n"
},
{
"path": "benchmark/msm/README.md",
"chars": 5248,
"preview": "# MSM Benchmark\n\n## CPU\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompiler: clang-15\nCPU Ca"
},
{
"path": "benchmark/msm/arkworks/BUILD.bazel",
"chars": 429,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/msm/arkworks/Cargo.toml",
"chars": 719,
"preview": "[package]\nname = \"arkworks_msm_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.netwo"
},
{
"path": "benchmark/msm/arkworks/src/lib.rs",
"chars": 1319,
"preview": "use ark_bn254::{Fr, G1Affine, G1Projective};\nuse ark_ec::VariableBaseMSM;\nuse ark_ff::Zero;\nuse std::{mem, slice, time::"
},
{
"path": "benchmark/msm/bellman/BUILD.bazel",
"chars": 428,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/msm/bellman/Cargo.toml",
"chars": 653,
"preview": "[package]\nname = \"bellman_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.network>\"]"
},
{
"path": "benchmark/msm/bellman/src/lib.rs",
"chars": 1585,
"preview": "use bellman_ce::{\n multiexp,\n pairing::CurveAffine,\n pairing::{\n bn256::{Fr, FrRepr, G1Affine},\n "
},
{
"path": "benchmark/msm/halo2/BUILD.bazel",
"chars": 426,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/msm/halo2/Cargo.toml",
"chars": 649,
"preview": "[package]\nname = \"halo2_msm_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma.network>"
},
{
"path": "benchmark/msm/halo2/src/lib.rs",
"chars": 1411,
"preview": "use halo2_proofs::halo2curves::bn256::{Bn256, Fr, G1Affine};\nuse halo2_proofs::poly::commitment::MSM;\nuse halo2_proofs::"
},
{
"path": "benchmark/msm/msm_benchmark.cc",
"chars": 3659,
"preview": "#include <iostream>\n#include <memory>\n#include <vector>\n\n// clang-format off\n#include \"benchmark/msm/msm_config.h\"\n#incl"
},
{
"path": "benchmark/msm/msm_benchmark_gpu.cc",
"chars": 2735,
"preview": "#include <iostream>\n#include <vector>\n#if TACHYON_CUDA\n\n// clang-format off\n#include \"benchmark/msm/msm_config.h\"\n#inclu"
},
{
"path": "benchmark/msm/msm_config.cc",
"chars": 2436,
"preview": "#include \"benchmark/msm/msm_config.h\"\n\n#include <set>\n#include <string>\n\n#include \"absl/strings/substitute.h\"\n\n#include "
},
{
"path": "benchmark/msm/msm_config.h",
"chars": 1590,
"preview": "#ifndef BENCHMARK_MSM_MSM_CONFIG_H_\n#define BENCHMARK_MSM_MSM_CONFIG_H_\n\n#include <stdint.h>\n\n#include <vector>\n\n// clan"
},
{
"path": "benchmark/msm/msm_runner.h",
"chars": 2936,
"preview": "#ifndef BENCHMARK_MSM_MSM_RUNNER_H_\n#define BENCHMARK_MSM_MSM_RUNNER_H_\n\n#include <stddef.h>\n\n#include <memory>\n#include"
},
{
"path": "benchmark/poseidon/BUILD.bazel",
"chars": 1201,
"preview": "load(\n \"//bazel:tachyon_cc.bzl\",\n \"tachyon_cc_binary\",\n \"tachyon_cc_library\",\n)\n\npackage(default_visibility = ["
},
{
"path": "benchmark/poseidon/README.md",
"chars": 1716,
"preview": "# Poseidon Hash Benchmark\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompiler: clang-15\nCPU "
},
{
"path": "benchmark/poseidon/arkworks/BUILD.bazel",
"chars": 434,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/poseidon/arkworks/Cargo.toml",
"chars": 798,
"preview": "[package]\nname = \"arkworks_poseidon_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma."
},
{
"path": "benchmark/poseidon/arkworks/src/lib.rs",
"chars": 924,
"preview": "use ark_bn254::Fr;\nuse ark_crypto_primitives::sponge::poseidon::traits::find_poseidon_ark_and_mds;\nuse ark_crypto_primit"
},
{
"path": "benchmark/poseidon/poseidon_benchmark.cc",
"chars": 1794,
"preview": "#include <iostream>\n\n// clang-format off\n#include \"benchmark/poseidon/poseidon_config.h\"\n#include \"benchmark/poseidon/po"
},
{
"path": "benchmark/poseidon/poseidon_benchmark_runner.h",
"chars": 2090,
"preview": "#ifndef BENCHMARK_POSEIDON_POSEIDON_BENCHMARK_RUNNER_H_\n#define BENCHMARK_POSEIDON_POSEIDON_BENCHMARK_RUNNER_H_\n\n#includ"
},
{
"path": "benchmark/poseidon/poseidon_config.cc",
"chars": 340,
"preview": "#include \"benchmark/poseidon/poseidon_config.h\"\n\nnamespace tachyon::benchmark {\n\nPoseidonConfig::PoseidonConfig() {\n pa"
},
{
"path": "benchmark/poseidon/poseidon_config.h",
"chars": 591,
"preview": "#ifndef BENCHMARK_POSEIDON_POSEIDON_CONFIG_H_\n#define BENCHMARK_POSEIDON_POSEIDON_CONFIG_H_\n\n#include <stddef.h>\n\n// cla"
},
{
"path": "benchmark/poseidon2/BUILD.bazel",
"chars": 1537,
"preview": "load(\n \"//bazel:tachyon_cc.bzl\",\n \"tachyon_cc_binary\",\n \"tachyon_cc_library\",\n)\n\ntachyon_cc_library(\n name ="
},
{
"path": "benchmark/poseidon2/README.md",
"chars": 5549,
"preview": "# Poseidon2 Hash Benchmark\n\n```\nRun on 13th Gen Intel(R) Core(TM) i9-13900K (32 X 5500 MHz CPU s)\nCompiler: clang-15\nCPU"
},
{
"path": "benchmark/poseidon2/horizen/BUILD.bazel",
"chars": 434,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/poseidon2/horizen/Cargo.toml",
"chars": 670,
"preview": "[package]\nname = \"horizen_poseidon2_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma."
},
{
"path": "benchmark/poseidon2/horizen/src/lib.rs",
"chars": 1298,
"preview": "use std::{sync::Arc, time::Instant};\nuse tachyon_rs::math::{\n elliptic_curves::bn::bn254::Fr as CppBn254Fr, finite_fi"
},
{
"path": "benchmark/poseidon2/plonky3/BUILD.bazel",
"chars": 434,
"preview": "load(\"@crate_index//:defs.bzl\", \"aliases\", \"all_crate_deps\")\nload(\"//bazel:tachyon_rust.bzl\", \"tachyon_rust_static_libra"
},
{
"path": "benchmark/poseidon2/plonky3/Cargo.toml",
"chars": 865,
"preview": "[package]\nname = \"plonky3_poseidon2_benchmark\"\nversion = \"0.0.1\"\nauthors = [\"The Tachyon Authors <tachyon-discuss@kroma."
},
{
"path": "benchmark/poseidon2/plonky3/src/lib.rs",
"chars": 3614,
"preview": "use core::fmt;\nuse ff::PrimeField;\nuse p3_baby_bear::{BabyBear, DiffusionMatrixBabyBear};\nuse p3_bn254_fr::{Bn254Fr, Dif"
},
{
"path": "benchmark/poseidon2/poseidon2_benchmark.cc",
"chars": 4570,
"preview": "#include <iostream>\n\n// clang-format off\n#include \"benchmark/simple_reporter.h\"\n#include \"benchmark/poseidon2/poseidon2_"
},
{
"path": "benchmark/poseidon2/poseidon2_benchmark_runner.h",
"chars": 2075,
"preview": "#ifndef BENCHMARK_POSEIDON2_POSEIDON2_BENCHMARK_RUNNER_H_\n#define BENCHMARK_POSEIDON2_POSEIDON2_BENCHMARK_RUNNER_H_\n\n#in"
},
{
"path": "benchmark/poseidon2/poseidon2_config.cc",
"chars": 1625,
"preview": "#include \"benchmark/poseidon2/poseidon2_config.h\"\n\n#include <set>\n\n#include \"tachyon/base/console/iostream.h\"\n\nnamespace"
},
{
"path": "benchmark/poseidon2/poseidon2_config.h",
"chars": 794,
"preview": "#ifndef BENCHMARK_POSEIDON2_POSEIDON2_CONFIG_H_\n#define BENCHMARK_POSEIDON2_POSEIDON2_CONFIG_H_\n\n#include <stddef.h>\n\n#i"
},
{
"path": "benchmark/simple_reporter.cc",
"chars": 2873,
"preview": "#include \"benchmark/simple_reporter.h\"\n\n#if defined(TACHYON_HAS_MATPLOTLIB)\n#include \"third_party/matplotlibcpp17/includ"
},
{
"path": "benchmark/simple_reporter.h",
"chars": 1480,
"preview": "#ifndef BENCHMARK_SIMPLE_REPORTER_H_\n#define BENCHMARK_SIMPLE_REPORTER_H_\n\n#include <string>\n#include <unordered_map>\n#i"
},
{
"path": "benchmark/vendor.h",
"chars": 3622,
"preview": "#ifndef BENCHMARK_VENDOR_H_\n#define BENCHMARK_VENDOR_H_\n\n#include <stdint.h>\n\n#include <string>\n#include <string_view>\n\n"
},
{
"path": "docker/Dockerfile.base.jammy",
"chars": 1251,
"preview": "FROM ubuntu:jammy AS builder\nLABEL maintainer=\"The Tachyon Authors <tachyon-discuss@kroma.network>\"\n\nARG PYTHON_VERSION="
},
{
"path": "docker/Dockerfile.circom.jammy",
"chars": 1704,
"preview": "FROM zktachyon/base:jammy-latest AS builder\nLABEL maintainer=\"The Tachyon Authors <tachyon-discuss@kroma.network>\"\n\n# In"
},
{
"path": "docker/Dockerfile.halo2.jammy",
"chars": 1403,
"preview": "FROM zktachyon/base:jammy-latest AS builder\nLABEL maintainer=\"The Tachyon Authors <tachyon-discuss@kroma.network>\"\n\nCOPY"
},
{
"path": "docs/doxygen/BUILD.bazel",
"chars": 844,
"preview": "load(\"//tachyon/c:version.bzl\", \"VERSION\")\n\ngenrule(\n name = \"doxyfile\",\n srcs = [\"Doxyfile.in\"],\n outs = [\"Dox"
},
{
"path": "docs/doxygen/Doxyfile.in",
"chars": 128221,
"preview": "# Doxyfile 1.10.0\n\n# This file describes the settings to be used by the documentation system\n# doxygen (www.doxygen.org)"
},
{
"path": "docs/doxygen/main_page.md",
"chars": 549,
"preview": "# Tachyon\n\nThis document lists and describes the APIs exposed in C by Tachyon.\n\nRefer to [the Tachyon repository](https:"
},
{
"path": "docs/how_to_contribute/conventions.md",
"chars": 5401,
"preview": "# Conventions\n\n## Styling\n\nWe follow the standards of the [Google C++ Style Guide](https://google.github.io/styleguide/c"
},
{
"path": "docs/how_to_contribute/math/how_to_add_elliptic_curves.md",
"chars": 1803,
"preview": "# How to add elliptic curves\n\nFollow this guide to add a new elliptic curve for Tachyon.\n\n_Note_: We have our own develo"
},
{
"path": "docs/how_to_contribute/math/how_to_add_prime_fields.md",
"chars": 6626,
"preview": "# How to add prime fields\n\nFollow this guide to add a new prime field for Tachyon.\n\n_Note_: We have our own development "
},
{
"path": "docs/how_to_contribute/math/math_structure.md",
"chars": 142,
"preview": "# Math Structure\n\nThis is an abstract diagram of the **math** directory structure.\n\n:\n argument_parser = argparse."
},
{
"path": "scripts/packages/debian/BUILD.bazel",
"chars": 55,
"preview": "exports_files([\n \"copyright\",\n \"description\",\n])\n"
},
{
"path": "scripts/packages/debian/copyright",
"chars": 1393,
"preview": "Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/\nUpstream-Name: tachyon\nSource: https://github."
},
{
"path": "scripts/packages/debian/debian.bzl",
"chars": 121,
"preview": "HOMEPAGE = \"https://github.com/kroma-network/tachyon\"\nMAINTAINER = \"The Tachyon Authors <tachyon-discuss@kroma.network>\""
},
{
"path": "scripts/packages/debian/description",
"chars": 79,
"preview": "Tachyon is a blazing fast Zero-Knowledge Proof (ZKP) library developed in C++.\n"
},
{
"path": "scripts/packages/debian/dev/BUILD.bazel",
"chars": 1530,
"preview": "load(\"@bazel_skylib//rules:expand_template.bzl\", \"expand_template\")\nload(\"@rules_pkg//pkg:deb.bzl\", \"pkg_deb\")\nload(\"@ru"
},
{
"path": "scripts/packages/debian/dev/tachyon.pc.tpl",
"chars": 321,
"preview": "prefix=/usr\nexec_prefix=${prefix}\nincludedir=${prefix}/include\nlibdir=/usr/lib/x86_64-linux-gnu\n\nName: Tachyon\nDescripti"
},
{
"path": "scripts/packages/debian/runtime/BUILD.bazel",
"chars": 1250,
"preview": "load(\"@rules_pkg//pkg:deb.bzl\", \"pkg_deb\")\nload(\"@rules_pkg//pkg:tar.bzl\", \"pkg_tar\")\nload(\"//scripts/packages/debian:de"
},
{
"path": "scripts/packages/install_package.sh",
"chars": 2449,
"preview": "#!/usr/bin/env bash\n\nset -e\n\nfunction copy_and_link_lib_linux() {\n LIB=$1\n BASENAME=$(basename $LIB)\n\n LIBNAME=$(echo"
},
{
"path": "tachyon/BUILD.bazel",
"chars": 1038,
"preview": "load(\n \"//bazel:tachyon.bzl\",\n \"VERSION_MAJOR\",\n \"VERSION_MINOR\",\n \"VERSION_PATCH\",\n \"VERSION_PRERELEASE\""
},
{
"path": "tachyon/base/BUILD.bazel",
"chars": 4828,
"preview": "load(\"//bazel:tachyon.bzl\", \"if_has_openmp_on_macos\", \"if_posix\")\nload(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_benchmark\","
},
{
"path": "tachyon/base/apple/.clang-format",
"chars": 39,
"preview": "DisableFormat: true\nSortIncludes: true\n"
},
{
"path": "tachyon/base/apple/BUILD.bazel",
"chars": 505,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_objc_library\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ntachyon_o"
},
{
"path": "tachyon/base/apple/bridging.h",
"chars": 7733,
"preview": "// Copyright 2021 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/apple/bundle_locations.h",
"chars": 2655,
"preview": "// Copyright 2012 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/apple/bundle_locations.mm",
"chars": 552,
"preview": "// Copyright 2012 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/auto_reset.h",
"chars": 2405,
"preview": "// Copyright 2011 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/auto_reset_unittest.cc",
"chars": 826,
"preview": "// Copyright 2019 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/binding/BUILD.bazel",
"chars": 854,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ntachyon_cc_"
},
{
"path": "tachyon/base/binding/callable_util.h",
"chars": 3773,
"preview": "#ifndef TACHYON_BASE_BINDING_CALLABLE_UTIL_H_\n#define TACHYON_BASE_BINDING_CALLABLE_UTIL_H_\n\n#include <tuple>\n#include <"
},
{
"path": "tachyon/base/binding/cpp_constructor.cc",
"chars": 1827,
"preview": "#include \"tachyon/base/binding/cpp_constructor.h\"\n\n#include \"tachyon/base/binding/cpp_type_names.h\"\n#include \"tachyon/ba"
},
{
"path": "tachyon/base/binding/cpp_constructor.h",
"chars": 1063,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_CONSTRUCTOR_H_\n#define TACHYON_BASE_BINDING_CPP_CONSTRUCTOR_H_\n\n#include <memory>\n#incl"
},
{
"path": "tachyon/base/binding/cpp_constructor_matcher.cc",
"chars": 1274,
"preview": "#include \"tachyon/base/binding/cpp_constructor_matcher.h\"\n\n#include \"tachyon/base/logging.h\"\n\nnamespace tachyon::base {\n"
},
{
"path": "tachyon/base/binding/cpp_constructor_matcher.h",
"chars": 993,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_CONSTRUCTOR_MATCHER_H_\n#define TACHYON_BASE_BINDING_CPP_CONSTRUCTOR_MATCHER_H_\n\n#includ"
},
{
"path": "tachyon/base/binding/cpp_raw_ptr.h",
"chars": 728,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_RAW_PTR_H_\n#define TACHYON_BASE_BINDING_CPP_RAW_PTR_H_\n\n#include <type_traits>\n\n#includ"
},
{
"path": "tachyon/base/binding/cpp_shared_ptr.h",
"chars": 879,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_SHARED_PTR_H_\n#define TACHYON_BASE_BINDING_CPP_SHARED_PTR_H_\n\n#include <memory>\n#includ"
},
{
"path": "tachyon/base/binding/cpp_stack_value.h",
"chars": 870,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_STACK_VALUE_H_\n#define TACHYON_BASE_BINDING_CPP_STACK_VALUE_H_\n\n#include <type_traits>\n"
},
{
"path": "tachyon/base/binding/cpp_type.h",
"chars": 792,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_TYPE_H_\n#define TACHYON_BASE_BINDING_CPP_TYPE_H_\n\n#include <string>\n\n#include \"tachyon/"
},
{
"path": "tachyon/base/binding/cpp_type_names.cc",
"chars": 1153,
"preview": "#include \"tachyon/base/binding/cpp_type_names.h\"\n\n#include \"absl/strings/substitute.h\"\n\nnamespace tachyon::base {\n\nstd::"
},
{
"path": "tachyon/base/binding/cpp_type_names.h",
"chars": 1606,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_TYPE_NAMES_H_\n#define TACHYON_BASE_BINDING_CPP_TYPE_NAMES_H_\n\n#include <string>\n#includ"
},
{
"path": "tachyon/base/binding/cpp_unique_ptr.h",
"chars": 964,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_UNIQUE_PTR_H_\n#define TACHYON_BASE_BINDING_CPP_UNIQUE_PTR_H_\n\n#include <memory>\n#includ"
},
{
"path": "tachyon/base/binding/cpp_value.cc",
"chars": 169,
"preview": "#include \"tachyon/base/binding/cpp_value.h\"\n\nnamespace tachyon::base {\n\nCppValue::CppValue() = default;\n\nCppValue::~CppV"
},
{
"path": "tachyon/base/binding/cpp_value.h",
"chars": 1485,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_VALUE_H_\n#define TACHYON_BASE_BINDING_CPP_VALUE_H_\n\n#include \"tachyon/base/logging.h\"\n#"
},
{
"path": "tachyon/base/binding/cpp_value_factory.h",
"chars": 1081,
"preview": "#ifndef TACHYON_BASE_BINDING_CPP_VALUE_FACTORY_H_\n#define TACHYON_BASE_BINDING_CPP_VALUE_FACTORY_H_\n\n#include <memory>\n#"
},
{
"path": "tachyon/base/binding/holder_util.h",
"chars": 2020,
"preview": "#ifndef TACHYON_BASE_BINDING_HOLDER_UTIL_H_\n#define TACHYON_BASE_BINDING_HOLDER_UTIL_H_\n\n#include <memory>\n#include <uti"
},
{
"path": "tachyon/base/binding/property_util.h",
"chars": 735,
"preview": "#ifndef TACHYON_BASE_BINDING_PROPERTY_UTIL_H_\n#define TACHYON_BASE_BINDING_PROPERTY_UTIL_H_\n\n#include <functional>\n#incl"
},
{
"path": "tachyon/base/binding/test/BUILD.bazel",
"chars": 835,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\")\n\npackage(default_visibility = [\"//visibility:public\"])\n\ntachyon_cc_"
},
{
"path": "tachyon/base/binding/test/adder.cc",
"chars": 278,
"preview": "#include \"tachyon/base/binding/test/adder.h\"\n\nnamespace tachyon::base::test {\n\nint Adder::Add(int a, int b, int c, int d"
},
{
"path": "tachyon/base/binding/test/adder.h",
"chars": 341,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_ADDER_H_\n#define TACHYON_BASE_BINDING_TEST_ADDER_H_\n\nnamespace tachyon::base::test {\n\n"
},
{
"path": "tachyon/base/binding/test/color.cc",
"chars": 370,
"preview": "#include \"tachyon/base/binding/test/color.h\"\n\n#include \"tachyon/base/logging.h\"\n\nnamespace tachyon::base::test {\n\nstd::s"
},
{
"path": "tachyon/base/binding/test/color.h",
"chars": 302,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_COLOR_H_\n#define TACHYON_BASE_BINDING_TEST_COLOR_H_\n\n#include <string>\n\nnamespace tach"
},
{
"path": "tachyon/base/binding/test/colored_point.cc",
"chars": 373,
"preview": "#include \"tachyon/base/binding/test/colored_point.h\"\n\nnamespace tachyon::base::test {\n\nColoredPoint::ColoredPoint() = de"
},
{
"path": "tachyon/base/binding/test/colored_point.h",
"chars": 497,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_COLORED_POINT_H_\n#define TACHYON_BASE_BINDING_TEST_COLORED_POINT_H_\n\n#include <string>"
},
{
"path": "tachyon/base/binding/test/functions.cc",
"chars": 467,
"preview": "#include \"tachyon/base/binding/test/functions.h\"\n\nnamespace tachyon::base::test {\n\nnamespace {\nint g_global_value = 0;\n}"
},
{
"path": "tachyon/base/binding/test/functions.h",
"chars": 409,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_FUNCTIONS_H_\n#define TACHYON_BASE_BINDING_TEST_FUNCTIONS_H_\n\n#include <string>\n#includ"
},
{
"path": "tachyon/base/binding/test/move_only_int.cc",
"chars": 439,
"preview": "#include \"tachyon/base/binding/test/move_only_int.h\"\n\nnamespace tachyon::base::test {\n\nMoveOnlyInt::MoveOnlyInt() : valu"
},
{
"path": "tachyon/base/binding/test/move_only_int.h",
"chars": 509,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_MOVE_ONLY_INT_H_\n#define TACHYON_BASE_BINDING_TEST_MOVE_ONLY_INT_H_\n\nnamespace tachyon"
},
{
"path": "tachyon/base/binding/test/point.cc",
"chars": 478,
"preview": "#include \"tachyon/base/binding/test/point.h\"\n\nnamespace tachyon::base::test {\n\nPoint::Point() = default;\nPoint::Point(in"
},
{
"path": "tachyon/base/binding/test/point.h",
"chars": 771,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_POINT_H_\n#define TACHYON_BASE_BINDING_TEST_POINT_H_\n\n#include <math.h>\n\n#include <stri"
},
{
"path": "tachyon/base/binding/test/rect.cc",
"chars": 257,
"preview": "#include \"tachyon/base/binding/test/rect.h\"\n\nnamespace tachyon::base::test {\n\nRect::Rect() = default;\n\nRect::Rect(const "
},
{
"path": "tachyon/base/binding/test/rect.h",
"chars": 597,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_RECT_H_\n#define TACHYON_BASE_BINDING_TEST_RECT_H_\n\n#include \"tachyon/base/binding/test"
},
{
"path": "tachyon/base/binding/test/variant.cc",
"chars": 454,
"preview": "#include \"tachyon/base/binding/test/variant.h\"\n\nnamespace tachyon::base::test {\n\nVariant::Variant(bool b) : b(b) {}\n\nVar"
},
{
"path": "tachyon/base/binding/test/variant.h",
"chars": 694,
"preview": "#ifndef TACHYON_BASE_BINDING_TEST_VARIANT_H_\n#define TACHYON_BASE_BINDING_TEST_VARIANT_H_\n\n#include <stdint.h>\n\n#include"
},
{
"path": "tachyon/base/bit_cast.h",
"chars": 1434,
"preview": "// Copyright 2016 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/bit_cast_unittest.cc",
"chars": 601,
"preview": "// Copyright 2016 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/bits.cc",
"chars": 420,
"preview": "#include \"tachyon/base/bits.h\"\n\nnamespace tachyon::base {\nnamespace bits {\n\nuint64_t BitRev(uint64_t n) {\n#if defined(__"
},
{
"path": "tachyon/base/bits.h",
"chars": 6809,
"preview": "// Copyright 2013 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/bits_unittest.cc",
"chars": 11882,
"preview": "// Copyright 2009 The Chromium Authors\n// Use of this source code is governed by a BSD-style license that can be\n// foun"
},
{
"path": "tachyon/base/buffer/BUILD.bazel",
"chars": 1492,
"preview": "load(\"//bazel:tachyon_cc.bzl\", \"tachyon_cc_library\", \"tachyon_cc_unittest\")\n\npackage(default_visibility = [\"//visibility"
},
{
"path": "tachyon/base/buffer/buffer.cc",
"chars": 2524,
"preview": "#include \"tachyon/base/buffer/buffer.h\"\n\n#include <string.h>\n\n#include \"tachyon/base/numerics/checked_math.h\"\n\nnamespace"
},
{
"path": "tachyon/base/buffer/buffer.h",
"chars": 5148,
"preview": "#ifndef TACHYON_BASE_BUFFER_BUFFER_H_\n#define TACHYON_BASE_BUFFER_BUFFER_H_\n\n#include \"tachyon/base/buffer/read_only_buf"
},
{
"path": "tachyon/base/buffer/buffer_unittest.cc",
"chars": 4628,
"preview": "#include \"gmock/gmock.h\"\n#include \"gtest/gtest.h\"\n\n#include \"tachyon/base/buffer/copyable.h\"\n#include \"tachyon/base/buff"
},
{
"path": "tachyon/base/buffer/copyable.h",
"chars": 6683,
"preview": "#ifndef TACHYON_BASE_BUFFER_COPYABLE_H_\n#define TACHYON_BASE_BUFFER_COPYABLE_H_\n\n#include <array>\n#include <numeric>\n#in"
}
]
// ... and 1864 more files (download for full content)
About this extraction
This page contains the full source code of the kroma-network/tachyon GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 2064 files (40.1 MB), approximately 2.2M tokens, and a symbol index with 5661 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.