// Copyright © 2023 Apple Inc. #pragma once #include "mlx/array.h" namespace mlx::core { struct NodeNamer { std::unordered_map names; const std::string& get_name(const array& x); }; void print_graph(std::ostream& os, const std::vector& outputs); template > void print_graph(std::ostream& os, Arrays&&... outputs) { print_graph(os, std::vector{std::forward(outputs)...}); } void export_to_dot(std::ostream& os, const std::vector& outputs); template > void export_to_dot(std::ostream& os, Arrays&&... outputs) { export_to_dot(os, std::vector{std::forward(outputs)...}); } } // namespace mlx::core