Câu trả lời:
Gói này (CUGates.m) đã được công bố trên arXiv vài ngày trước đây có thể hữu ích cho bạn. Nó sử dụng Mathicala. Tôi đã không thử mặc dù, và nó có thể hoặc không thể làm những gì bạn cần. Từ tóm tắt:
Bài viết này trình bày sơ đồ phân rã hiệu quả cao và sổ ghi chép Mathicala liên quan của nó để phân tích các mạch lượng tử phức tạp bao gồm các cổng lượng tử đơn / nhiều qubit và qudit. Đặc biệt, sơ đồ này làm giảm việc đánh giá nhiều hoạt động cổng đơn nhất với nhiều điều kiện chỉ còn hai phép cộng, bất kể số lượng điều kiện hoặc kích thước cổng. Điều này cải thiện đáng kể khả năng của một bộ phân tích mạch lượng tử được thực hiện trong một máy tính cổ điển. Đây cũng là máy phân tích mạch lượng tử hiệu quả đầu tiên bao gồm các cổng logic lượng tử qudit.
Có một bài viết cách đây khoảng 6 năm về việc triển khai và tối ưu hóa phân tách Barenco: http://arxiv.org/abs/quant-ph/0607123 Tôi không biết liệu họ đã phát hành phần mềm của họ hay chưa, nếu bạn cần yêu cầu họ độc đáo cho nó.
Trang web này - Quantum Compiler.org - có mã nguồn cho một thư viện python thực hiện điều này, trong hai mô hình, Solovay-Kitaev và Kitaev-Shen-Vyalyi.
Có một chương trình Hồi Qubiter bởi RRTucci sử dụng phân tách CS, được mô tả trong http://arxiv.org/abs/quant-ph/9902062 và được phân phối miễn phí qua mã nguồn (C ++). Tôi vừa thấy - một liên kết trong bản in điện tử vẫn còn hiệu lực, phiên bản cuối cùng là 1-11, nhưng tôi chưa bao giờ sử dụng chương trình này và do đó có thể không nhận xét điều đó.
[EDIT] Có (ít nhất) hai gói để phân tách trong danh sách http://www.quantiki.org/wiki/List_of_QC_simulators
Ngoài các câu trả lời trước đó, có một gói tính toán các biến đổi Fourier cho các nhóm không giao hoán có thể giải được dựa trên thuật toán này . Phần mềm này có một công cụ để phân tách biến đổi Fourier thành ma trận đơn giản hơn. Sự phân hủy như vậy về cơ bản là một mạch lượng tử hiệu quả để thực hiện một phép biến đổi Fourier lượng tử không abelian.
Mặc dù nó không phải là một gói mục đích chung, nó là một công cụ tốt nếu bạn làm việc với lớp này (khá phức tạp). Trong bối cảnh này, không có lựa chọn thay thế mà tôi biết.