Releases: OriginQ/QPanda-2
Releases · OriginQ/QPanda-2
QPanda v2.1.6
QPanda
- 单振幅虚拟机添加概率测量类接口
- 部分振幅虚拟机添加概率测量类接口
- 增加模式匹配的并行化功能
- 添加直接通过矩阵构造U3门方法
- 添加Toffli门支持
- 单振幅虚拟机算法增加路径优化功能
- 拓展Var支持逻辑门
- 修改线路dagger()和control()函数的内部实现
- 在量子程序或量子线路中插入节点时修改为深拷贝的方式
- bmt及sabre映射算法插入swap门时,直接转换成U3+cz门
- 独立单门优化方法
- 全振幅虚拟机算法优化
- mingw支持大文件debug编译
- 量子比特和经典寄存器与虚拟机解耦
pyQPanda
- 单振幅虚拟机添加概率测量类接口
- 部分振幅虚拟机添加概率测量类接口
- 增加模式匹配的并行化功能
- 添加直接通过矩阵构造U3门方法
- bmt及sabre映射算法插入swap门时,直接转换成U3+cz门
- 添加OBMT_mapping映射算法Python接口
- 单振幅虚拟机算法增加路径优化功能
- 拓展Var支持逻辑门
- 修改线路dagger()和control()函数的内部实现
- 在量子程序或量子线路中插入节点时修改为深拷贝的方式
- 独立单门优化方法
- 全振幅虚拟机算法优化
- 量子比特和经典寄存器与虚拟机解耦
QPanda v2.1.5
QPanda
- 更新统计时序接口
2.修改了请求接口的超时设置
3.添加保真度算法
4.修改qubit释放错误问题
5.优化PyQPanda字符画接口
6.添加逻辑门取消控制qubit接口
7.添加BMT映射算法代码
8.优化分层代码,提高分层效率
9.优化芯片拓扑接口json配置方法及相关读取接口
10.解决连续X门合并抵消优化错误问题
11.MPS单个振幅测量接口
12.添加 convert_originir_str_to_qprog 接口,实现originir直接到Qprog的转换
13.添加MPS噪声算法
14.修改含噪声虚拟机算法及接口
15.修改异常字符串包含编译文件绝对路径问题
16.添加pyqpanda的依赖库
17.修改var
18.虚拟机添加屏障
19.量子线路字符画CR门显示格式修改
pyQPanda
- 更新统计时序接口
2.修改了请求接口的超时设置
3.添加保真度算法
4.修改qubit释放错误问题
5.优化PyQPanda字符画接口
6.添加逻辑门取消控制qubit接口
7.添加BMT映射算法代码
8.优化分层代码,提高分层效率
9.优化芯片拓扑接口json配置方法及相关读取接口
10.解决连续X门合并抵消优化错误问题
11.MPS单个振幅测量接口
12.添加 convert_originir_str_to_qprog 接口,实现originir直接到Qprog的转换
13.添加MPS噪声算法
14.修改含噪声虚拟机算法及接口
15.修改异常字符串包含编译文件绝对路径问题
16.添加pyqpanda的依赖库
17.修改var
18.虚拟机添加屏障
19.量子线路字符画CR门显示格式修改
20.量子线路优化接口python接口,通过list传递组合优化模式
QPanda v2.1.4
QPanda
- 添加线路适配异常处理
- MPS 振幅模拟功能
- 添加多控门分解独立接口
- 云量子虚拟机支持链接真实芯片功能
- 配置文件接口可直接接收json字符串形式的配置信息
- 修改windows控制台字符画乱码问题
- 优化了测量部分
- 优化Shor算法结果处理,使量子算法结果到输出逆元这一步更为可靠
- applications 中 HHL 实例修改
- 修改线路替换时,qubit内存错误问题
- 更新originir支持PI,自然对数
- 修改受控单门无法在多控门分解接口分解的问题
pyQPanda
- 优化字符画Python接口,可直接print量子程序
- 添加量子线路适配芯片拓扑结构接口
- 添加Grover算法接口
- 添加获取量子线路所用到的qubit的接口
- 添加线路适配异常处理
- MPS 振幅模拟功能
- 添加多控门分解独立接口
- 云量子虚拟机支持链接真实芯片功能
- 修改windows控制台字符画乱码问题
- 优化了测量部分
- 优化Shor算法结果处理,使量子算法结果到输出逆元这一步更为可靠
- 更新originir支持PI,自然对数
QPanda v2.1.3
QPanda
- 添加 SU4 线路映射功能
- 添加含噪声虚拟机中添加角度旋转误差接口 set_rotation_angle_error
- 添加通过泡利矩阵设置噪声模型的方法 set_noise_kraus_matrix
- 添加通酉矩阵和概率设置噪声的方法 set_noise_unitary_matrix
- 添加生成随机线路的功能 RandomCircuit
- 添加
Base_QCircuit
文件夹存放基础量子线路,QFT,QPE 等 - 添加 HHL 算法
- 添加 QARM 算法
- 添加 QSVM 算法
- 添加 QITE 算法
- convert_qasm_to_qprog 支持科学记数表达式:如 1.0e-10
- 修改 runwithconfiguration 返回结果的显示方式
- 修复 free qubit 内存泄漏
- 修复 U4 gamma 值为nan的问题
- 更新线路优化算法
- 去掉噪声虚拟机的默认噪声参数的设置
- 修复 Psi4Wrapper 中成员变量未赋初值的bug
- 添加 QGate::remap 接口,映射逻辑门量子bit到不同的量子bit
pyQPanda
- 添加 SU4 线路映射功能
- 添加含噪声虚拟机中添加角度旋转误差接口 set_rotation_angle_error
- 添加通过泡利矩阵设置噪声模型的方法 set_noise_kraus_matrix
- 添加通酉矩阵和概率设置噪声的方法 set_noise_unitary_matrix
- 添加生成随机线路的功能 RandomCircuit
- 添加
Base_QCircuit
文件夹存放基础量子线路,QFT,QPE 等 - 添加 HHL 算法
- 添加 QARM 算法
- 添加 QSVM 算法
- 添加 QITE 算法
- convert_qasm_to_qprog 支持科学记数表达式:如 1.0e-10
- 修改 runwithconfiguration 返回结果的显示方式
- 修复 free qubit 内存泄漏
- 修复 U4 gamma 值为nan的问题
- 更新线路优化算法
- 去掉噪声虚拟机的默认噪声参数的设置
- 修复 Psi4Wrapper 中成员变量未赋初值的bug
- 添加 QGate::remap 接口,映射逻辑门量子bit到不同的量子bit
QPanda v2.1.2
QPanda
- QAdder 量子加法器功能
- amplitude_encode实现经典数据的量子态振幅编码
- run_with_configuration 添加测量次数的接口
- QCodar一种用于各种NISQ设备的上下文持续时间感知的Qubit映射
- 修改 QCloudMachine 接口
- 修改 SQISWAP 、U2 、U3 门中的bug
- 调整 topology_match 功能,使QVec完成物理比特映射
pyQPanda
- QAdder量子加法器功能
- amplitude_encode实现经典数据的量子态振幅编码
- run_with_configuration添加测量次数的接口
- QCodar一种用于各种NISQ设备的上下文持续时间感知的Qubit映射
- 修复Shor算法测试代码的错误
- 调整topology_match功能,使QVec完成物理比特映射
- 修改虚拟机中调用pmeasure系列接口出错的问题
QPanda v2.1.1
QPanda:
QCloudMachine 添加商业云功能
修改GTEST测试框架
ChemiQ可以生成动态库
修改NoiseQVM中的算法错误
修改QIF和QWHILE中的执行错误
修改注释部分的乱码引起的编译错误
pyQPanda:
添加接口 : set_noise_model: 设置噪声模型
QCloudMachine`添加商业云功能
Changed
修改NoiseQVM中的算法错误
修改QIF和QWHILE中的执行错误
QPanda v2.1.0
QPanda:
- 添加逻辑门:I门
- 添加接口:fill_qprog_by_I:通过I门填充QProg
- 添加接口:cast_qprog_qgate:转换Qprog到Qgate
- 添加接口:cast_qprog_qmeasure:转换Qprog到Qmeasure
- 添加接口:cast_qprog_qcircuit:转换Qprog到QCircuit,遇到流控节点或者测量节点,返回false
- 调整QPanda2 的Utilities目录:Compiler:存放QProg到其他平台的适配转换,QProgInfo:存放线路信息查询相关接口,QProgTransform:Qprog的其他形式转换比如有向无环图,Tools:存放其他工具类接口
- 新增接口:NoiseModel::set_noise_model():设置NoiseModel配置接口
- 调整接口:原字符画接口print_prog改为:draw_qprog
- 修改接口名:QVM::setConfigure为 QVM::setConfig
- 添加接口:flatten():添加展开量子程序中的嵌套节点的功能
- 新增功能:单振幅量子虚拟机中添加SWAP门
- 添加新的含噪声虚拟机模型:DECOHERENCE_KRAUS_OPERATOR_P1_P2, BITFLIP_KRAUS_OPERATOR, DEPOLARIZING_KRAUS_OPERATOR, BIT_PHASE_FLIP_OPRATOR, PHASE_DAMPING_OPRATOR
- 调整接口:通过重载std::cout,直接输出目标线路的字符画
- 新加接口:convert_qprog_to_binary:转换QProg到二进制
- 新加接口:convert_binary_data_to_qprog:转换二进制到QProg
- 添加接口:convert_originir_to_qprog:转换Qoriginir到QProg
- 添加接口:convert_qasm_to_qprog:新增QASM转QProg的方法
- 新加接口:convert_qprog_to_originir:转换QProg到Qoriginir
- 新加接口:convert_qprog_to_quil:转换QProg到QUil
- 新加接口:convert_qprog_to_qasm:转换QProg到QASM
pyQPanda:
- 添加逻辑门:I门
- 添加接口:fill_qprog_by_I:通过I门填充QProg
- 添加接口:cast_qprog_qgate:转换Qprog到Qgate
- 添加接口:cast_qprog_qmeasure:转换Qprog到Qmeasure
- 添加接口:cast_qprog_qcircuit:转换Qprog到QCircuit,遇到流控节点或者测量节点,返回false
- 添加接口:flatten():添加量子程序或线路展开功能的python接口
- 调整接口:打印字符画接口print_qprog修改为draw_qprog
- 添加接口:convert_qprog_to_binary:转换QProg到二进制
- 添加接口:convert_binary_data_to_qprog:转换二进制到QProg
- 添加接口:convert_originir_to_qprog:转换Qoriginir到QProg
- 添加接口:convert_qprog_to_originir:转换QProg到Qoriginir
- 添加接口:convert_qprog_to_quil:转换QProg到QUil
- 添加接口:convert_qasm_to_qprog:新增QASM转QProg的方法
- 添加接口:convert_qprog_to_qasm:转换QProg到QASM
调整QPanda架构,添加新的接口
QPanda:
- QPanda重构了项目框架把QPanda分为Applications、QAlg、Components、Core四层。
- 添加接口getAllocateCMemNum():获取申请经典比特的数量
- 添加接口pMeasureNoIndex:概率测量
- 添加接口createEmptyCircuit:创建空的量子线路
- 添加接口QWhile::getClassicalCondition: 获得经典表达式
- 添加接口createWhileProg:创建QWhile
- 添加接口createIfProg: 创建QIf
- 添加接口createEmptyQProg:创建量子程序
- 添加接口 QVM::setConfigure: 设置比特数和经典寄存器数
- 添加接口QVM:: qAlloc: 申请量子比特
- 添加接口QVM::qAllocMany:申请多个量子比特
- 添加接口QVM::getAllocateQubitNum:获取申请的量子比特数
- 添加接口QVM::getAllocateCMemNum 获取申请的经典寄存器数
- 添加接口QVM::cAlloc: 申请一个经典寄存器
- 添加接口QVM::cAllocMany:申请多个经典寄存器
- 添加接口SingleAmplitudeQVM:pMeasureBinIndex: 通过二进制下标进行PMeasure操作
- 添加接口SingleAmplitudeQVM:pMeasureDecIndex: 通过十进制下标进行PMeasure操作
- 添加接口CPUQVM:: pMeasureNoIndex: PMeasure操作
- 添加接口validateSingleQGateType: 验证单量子逻辑门有效性
- 添加接口validateDoubleQGateType:验证双量子逻辑门有效性
- 添加接口getUnsupportQGateNum:统计量子程序(包含量子线路、QIF、QWHILE)中不支持的逻辑门的数量
- 添加接口getQGateNum:统计量子程序(包含量子线路、QIF、QWHILE)中逻辑门的数量
- 添加接口transformBinaryDataToQProg: 解析二进制数据转化为量子程序
- 添加接口transformQProgToBinary:量子程序转化为二进制数据
pyQPanda:
- 添加接口cAlloc: 申请一个固定位置上的经典比特
- 添加接口cFree_all:释放传入的所有经典寄存器
- 添加接口get_allocate_qubit_num: 获取申请量子比特的数量
- 添加接口get_allocate_cmem_num:获取申请经典比特的数量
- 添加接口get_prob_tuple_list:获得目标量子比特的概率测量结果, 其对应的下标为十进制,需先调用directlyRun
- 添加接口get_prob_list:获得目标量子比特的概率测量结果, 并没有其对应的下标,需先调用directlyRun
- 添加接口get_prob_dict:获得目标量子比特的概率测量结果, 其对应的下标为二进制,需先调用directlyRun
- 添加接口pmeasure_no_index:概率测量
- 添加接口accumulate_probability:累计概率
- 添加接口QGate::set_dagger:设置逻辑门转置共轭
- 添加接口QGate::set_control:设置逻辑门控制比特
- 添加接口QCircuit::set_dagger:设置线路转置共轭
- 添加接口Circuit::set_control:设置线路控制比特
- 添加接口create_empty_circuit: 申请空线路
- 添加接口QWhileProg::get_true_branch:获取正确分支
- 添加接口QWhileProg::get_classical_condition 获取判断表达式
- 添加接口QIfProg::get_true_branch:获取正确分支
- 添加接口QIfProg::get_classical_condition 获取判断表达式
- 添加接口QIfProg::get_false_branch:获取失败分支
- 添加接口create_If_prog:创建QIf
- 添加接口create_empty_qprog:创建QProg
- 添加接口QVM::allocate_qubit_through_phy_address:通过量子比特物理地址申请量子比特
- 添加接口QVM::allocate_qubit_through_vir_address:通过量子比特虚拟地址申请量子比特
- 添加接口QVM::get_result_map:获取结果map
- 添加接口QVM::get_allocate_qubit_num:获取申请比特数
- 添加接口QVM::get_allocate_cmem_num:获取申请经典寄存器数
- 添加接口QVM::init_qvm:初始化量子虚拟机
- 添加接口PartialAmplitudeQVM::pmeasure_subset:获取量子态任意子集的结果
- 添加接口validate_single_qgate_type:验证单量子逻辑门有效性
- 添加接口validate_double_qgate_type: 验证双量子逻辑门有效性
- 添加接口transform_qprog_to_originir:量子程序转化OriginIR
- 添加接口transform_originir_to_qprog:OriginIR转化量子程序
- 添加接口get_unsupport_qgate_num:统计量子程序(包含量子线路、QIF、QWHILE)中不支持的逻辑门的数量
- 添加接口get_qgate_num:统计量子程序(包含量子线路、QIF、QWHILE)中逻辑门的数量
- 添加接口get_qprog_clock_cycle:统计量子程序时钟周期
- 添加接口transform_binary_data_to_qprog:解析二进制数据转化为量子程序
- 添加接口transform_qprog_to_binary:量子程序转化为二进制数据
- 添加接口transform_qprog_to_qasm:量子程序转化为QASM指令集
- 添加接口transform_qprog_to_quil:量子程序转化为Quil指令集