C++ library for a binary quadratic model
Project description
cimod : C++ header-only library for a binary quadratic model
How to use
You should only include a header src/binary_quadratic_model.hpp
in your project.
Example
C++
#include "src/binary_quadratic_model.hpp"
using namespace cimod;
int main()
{
// Set linear biases and quadratic biases
Linear<uint32_t, double> linear{ {1, 1.0}, {2, 2.0}, {3, 3.0}, {4, 4.0} };
Quadratic<uint32_t, double> quadratic
{
{std::make_pair(1, 2), 12.0}, {std::make_pair(1, 3), 13.0}, {std::make_pair(1, 4), 14.0},
{std::make_pair(2, 3), 23.0}, {std::make_pair(2, 4), 24.0},
{std::make_pair(3, 4), 34.0}
};
// Set offset
double offset = 0.0;
// Set variable type
Vartype vartype = Vartype::BINARY;
// Create a BinaryQuadraticModel instance
BinaryQuadraticModel<uint32_t, double, cimod::Dense> bqm(linear, quadratic, offset, vartype);
//linear terms -> bqm.get_linear()
//quadratic terms -> bqm.get_quadratic()
return 0;
}
Python
import cimod
import dimod
# Set linear biases and quadratic biases
linear = {1:1.0, 2:2.0, 3:3.0, 4:4.0}
quadratic = {(1,2):12.0, (1,3):13.0, (1,4):14.0, (2,3):23.0, (2,4):24.0, (3,4):34.0}
# Set offset
offset = 0.0
# Set variable type
vartype = dimod.BINARY
# Create a BinaryQuadraticModel instance
bqm = cimod.BinaryQuadraticModel(linear, quadratic, offset, vartype)
print(bqm.linear)
print(bqm.quadratic)
Install
via this directory
$ python -m pip install .
via pip
$ pip install jij-cimod
Benchmark
Benchmark code
import dimod
import cimod
import time
fil = open("benchmark", "w")
fil.write("N t_dimod t_cimod\n")
def benchmark(N, test_fw):
linear = {}
quadratic = {}
spin = {}
# interactions
for i in range(N):
spin[i] = 1
for elem in range(N):
linear[elem] = 2.0*elem;
for i in range(N):
for j in range(i+1, N):
if i != j:
quadratic[(i,j)] = (i+j)/(N)
t1 = time.time()
# initialize
a = test_fw.BinaryQuadraticModel(linear, quadratic, 0, test_fw.BINARY)
a.change_vartype(test_fw.SPIN)
# calculate energy for 50 times.
for _ in range(50):
print(a.energy(spin))
t2 = time.time()
return t2-t1
d_arr = []
c_arr = []
for N in [25, 50, 100, 200, 300, 400, 600, 800,1000, 1600, 2000, 3200, 5000]:
print("N {}".format(N))
d = benchmark(N, dimod)
c = benchmark(N, cimod)
print("{} {} {}".format(N, d, c))
fil.write("{} {} {}\n".format(N, d, c))
Software versions
Package | Version |
---|---|
cimod | 1.0.3 |
dimod | 0.9.2 |
Result
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
jij_cimod-1.3.4.tar.gz
(202.4 kB
view hashes)
Built Distributions
Close
Hashes for jij_cimod-1.3.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 06ea0aefc6c70fe523217f09c75ddab169e03f7abb02e0e7bba880f913ca7edd |
|
MD5 | 40f7ea5df7947bf190557f38e8763661 |
|
BLAKE2b-256 | 5bda2b681a10825750df77f25838391a911ae788bb307cc7ab44c07ed5764d10 |
Close
Hashes for jij_cimod-1.3.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1cd2e1727655595e19f9890641607f43e90a831aefb0c942b4eee0e770a7eb88 |
|
MD5 | d3f0a3f2b8b83b6ac74921fe74870ead |
|
BLAKE2b-256 | ccff266059d3acb27711c4c12d3b29ff3cc99e44ddd18cb54b1ce003d71af5b9 |
Close
Hashes for jij_cimod-1.3.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ae909703046e41fc7b6ba109a910344e68d27e8318283bda7de311bfb0402c0 |
|
MD5 | ffdf61ffd97595acaeb5ae5b7698b25f |
|
BLAKE2b-256 | 431a27a22bf840c0da818592076b84b37debcd13d6693e6ddd785951da1f1d8f |
Close
Hashes for jij_cimod-1.3.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bdcf64ddf0d0a2fe1d0eada9b792fe875db63794ac20691208e4c355c73bc9a |
|
MD5 | 00f5524401ad92b92442a3dac56ae7ae |
|
BLAKE2b-256 | bfad5d67a2e7ffad528860b39b3939c691e42f542e6cd26cb5902a41bb0459bd |
Close
Hashes for jij_cimod-1.3.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a95a74799c0d495617e2a8b9346fc768b62ed273d896ae4650d6346af2816fb0 |
|
MD5 | 4590ddaa3ae6bb6d2379a0b07b764ddf |
|
BLAKE2b-256 | d103c1d117a785d71e40fb9dc746c3a06a9c44f5c924af7b4814f890ce82538a |
Close
Hashes for jij_cimod-1.3.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fcb27a466ef82bf0496650d408c64862b9c1399c430d1975c5e7be82bf509802 |
|
MD5 | 47aec55708870db45a784aba701f1a23 |
|
BLAKE2b-256 | 79716176554b968a27a75f0bfc879dcceb9bb1b332370adc4ef886c491ca4053 |
Close
Hashes for jij_cimod-1.3.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 668445f1a099a575739d034fff68ace61fe27adbbcb1255b687491080a1b2e10 |
|
MD5 | 5a1dc5df7799a0f8b8b9e74c6d6da321 |
|
BLAKE2b-256 | 4b09cc8511e0932a46fdbeb313bf66f6c0e11c096d235ab193667e3f33c26ba3 |
Close
Hashes for jij_cimod-1.3.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd73e8fd2785186f2102b104551798a6275046c670d3c85da8338cb1e4ba2620 |
|
MD5 | 51f00375aa23d0f268268a0072fbfe87 |
|
BLAKE2b-256 | f743c6815a2a7fbeb7ef9abaa840ec7726a14e223735d6c75f6cbc6ff3dad865 |
Close
Hashes for jij_cimod-1.3.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71445eeba33400200e0355af3f670d0deb69630086752a37d07299255e843fa6 |
|
MD5 | c992a708487e477ec19a7e718e996355 |
|
BLAKE2b-256 | d03e3fc0a612356e15d95a54f07f67e7fbbb6a52a46c459f2244daf193f82cfd |
Close
Hashes for jij_cimod-1.3.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76a318ecba314f43626c03cff49fdff31553b09b416024fab9f9f7a7c7b7edf1 |
|
MD5 | 59de9edce44f0234ca1320b4c2e75030 |
|
BLAKE2b-256 | 8fc4c9c2ccac8384c3d8266840859135fe9f852177526ac64fb487e2727074dd |
Close
Hashes for jij_cimod-1.3.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 578638557ce6d7e7b3085275cd7889b192b0a204e108d3a207dd47a9fa608f0f |
|
MD5 | cc0c01430aa4dfc9a11cb1e3260aafab |
|
BLAKE2b-256 | ad8e63af273bfd36be64ccac92cce6ab258a0e82038289aa2b12085f70ce9be5 |
Close
Hashes for jij_cimod-1.3.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a4ec158c99352d3e14aebaaec9c8383cd0a774f4ea123caabf2d602ae665bd28 |
|
MD5 | 1cf98897f089b2d64b6be3b83058774f |
|
BLAKE2b-256 | d5daaadfdcde7c12d257ec616c1a5376494f5cc1df30213b880d0e6bde18c1a2 |
Close
Hashes for jij_cimod-1.3.4-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 72b0251ed671b6c26ffe452b121a7aee64bd754bd3a58d4c73431c76eef31923 |
|
MD5 | b5117dba88e05ec541dd1332e1de9cd7 |
|
BLAKE2b-256 | ee4e156b1fb781a65112f1d4044fa9e473c85caaa970dad61b5cdde654b1b78f |
Close
Hashes for jij_cimod-1.3.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d031c68375e995ddf7f8efd7b8da35d477528d2301c2976d4fa6952b5bc08e7 |
|
MD5 | a5f2cec1c7f463f2a8121b021322530b |
|
BLAKE2b-256 | 7cbd676cbaeec841e7c0e5c0262d2751e2c652bf43dad90bff1a8a82e43e164c |
Close
Hashes for jij_cimod-1.3.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a416762e7fa2b80f40d4765952ae8d3a52721b09a7399a2a37f517f86046cbae |
|
MD5 | 1580ec048c53d0713e619670baded94d |
|
BLAKE2b-256 | 52aacfb7746c9cb800748ccbca4ba0a9caa62e9b17cb5c76009d07dd71e96885 |
Close
Hashes for jij_cimod-1.3.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f5a5f6e4dcebe81db5c375eca119fbb5d448e8ab8f2021245f0e1cdd67b93445 |
|
MD5 | bf86ac86900d7a223a86ceb479f1a4eb |
|
BLAKE2b-256 | 192883d217a52152bb9375614331d1e30b3e4ee3fc796260bded0b9bebaa7c58 |
Close
Hashes for jij_cimod-1.3.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a415f8f1b7972ad5cff199ad5bb647d02f63aa3ca637f84c14fccd62936cb23 |
|
MD5 | 8bf198e77b14e1de3eba77ea7e0f1295 |
|
BLAKE2b-256 | a32feddfa632139a2c441a37ece45678a0896b1e2c421334efce0abb48bb99fe |
Close
Hashes for jij_cimod-1.3.4-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c60fe5bfd6b8929fd50e1d902e0ad2ff89d4cda0b5f4351056e60734e47f81c4 |
|
MD5 | 3b734b9cb500f24523aded4bc8bb3a05 |
|
BLAKE2b-256 | c030a29780d0e88d65e02f1dc984cfab3bf8c1e8bf35a52c80df95d8b0e59e17 |
Close
Hashes for jij_cimod-1.3.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da8b9999d2fc20c6ff2c77d576d2255da9a1749c43f1df3504aba83e16cd92f7 |
|
MD5 | 00b36fa3790a19342d64d054eb10c1d2 |
|
BLAKE2b-256 | 8e09a0fcf39e4c8bcf80c943c0ac7114bc1a55d7dea2c4700f9cf256b9256b63 |