quantumrings 0.11.2000__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,475 @@
1
+ Metadata-Version: 2.4
2
+ Name: quantumrings
3
+ Version: 0.11.2000
4
+ Summary: A Quantum Development Library
5
+ Author-email: "Quantum Rings Inc." <contact@quantumrings.com>
6
+ Project-URL: Homepage, https://www.quantumrings.com
7
+ Project-URL: Documentation, https://portal.quantumrings.com/doc/
8
+ Project-URL: API Reference, https://portal.quantumrings.com/doc/modules.html
9
+ Keywords: quantum,quantum circuit,quantum computing,quantum programming language,quantum register,quantum tools,tools,sdk
10
+ Classifier: Development Status :: 4 - Beta
11
+ Classifier: Environment :: Console
12
+ Classifier: Intended Audience :: Developers
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: Topic :: Software Development :: Build Tools
15
+ Classifier: Topic :: Scientific/Engineering
16
+ Classifier: Programming Language :: Python :: 3.11
17
+ Classifier: Programming Language :: Python :: 3.12
18
+ Classifier: Programming Language :: Python :: 3.13
19
+ Classifier: Programming Language :: Python :: 3.14
20
+ Classifier: Operating System :: POSIX :: Linux
21
+ Classifier: Operating System :: Microsoft :: Windows
22
+ Requires-Python: >=3.11
23
+ Description-Content-Type: text/x-rst
24
+ License-File: LICENSE.rst
25
+ Provides-Extra: cpu
26
+ Requires-Dist: quantumrings-cpu; extra == "cpu"
27
+ Provides-Extra: cuda12x
28
+ Requires-Dist: quantumrings-cuda12x; extra == "cuda12x"
29
+ Provides-Extra: cuda13x
30
+ Requires-Dist: quantumrings-cuda13x; extra == "cuda13x"
31
+ Provides-Extra: nvidia
32
+ Requires-Dist: quantumrings-cuda13x; extra == "nvidia"
33
+ Dynamic: license-file
34
+
35
+ ================================
36
+ Welcome to the Quantum Rings SDK
37
+ ================================
38
+
39
+ This document serves as a guide for installing the Quantum Rings SDK. You can choose to install the SDK in either CPU-only mode or GPU-enabled mode,
40
+ depending on your system configuration. Before starting the installation process, please review the sections that outline the minimum system requirements and
41
+ supported GPU architectures.
42
+
43
+ Additionally, the section titled "Feedback and Getting Support" provides links for submitting feedback or obtaining further assistance.
44
+
45
+
46
+ Finding the Latest Version of the SDK
47
+ -------------------------------------
48
+
49
+ - 0.11.2311 -- For Python 3.11 based installations
50
+ - 0.11.2312 -- For Python 3.12 based installations
51
+ - 0.11.2313 -- For Python 3.13 based installations
52
+ - 0.11.2314 -- For Python 3.14 based installations
53
+
54
+
55
+ Minimum System Requirements
56
+ ---------------------------
57
+
58
+ A system with specifications exceeding the minimum requirements is recommended.
59
+ Lower specifications may limit the number of qubits supported and could result in poor performance.
60
+
61
+ - Operating systems recommended:
62
+
63
+ - Ubuntu 22.04.4 LTS
64
+ - Ubuntu 24.04.4 LTS
65
+ - Windows 11 Pro
66
+ - macOS 15 (Only CPU mode and official Python builds are supported. For more information, visit www.python.org.)
67
+ - WSL2 based Linux Instances on Windows 11 Pro
68
+
69
+ - 64-bit Intel i9 x86 CPU (14 cores 20 logical processors recommended) or equivalent
70
+
71
+ - Intel processors or Apple Silicon on Mac Systems
72
+
73
+ - NVIDIA GB10 Grace Blackwell Superchip
74
+
75
+ - DDR5 or better memory channels recommended
76
+
77
+ - 32 GB Installed physical memory
78
+
79
+ - 18 GB Available physical memory
80
+
81
+ - 64-bit Python version 3.11, 3.12, 3.13, or 3.14
82
+
83
+
84
+ Supported GPU Architectures
85
+ ---------------------------
86
+
87
+ * Amphere, compute capabilities 8.0, 8.6
88
+ * Hopper, compute capability 9.0
89
+ * Blackwell, compute capability 10.0
90
+ * or later
91
+
92
+ A minimum of 4 GB global memory on the GPU is required to run the SDK.
93
+ The actual amount of memory needed depends upon the number of qubits used and the gate operations involved.
94
+ CUDA Toolkit 12.x or 13.x is required to install the GPU version of the SDK.
95
+
96
+
97
+ =================================================
98
+ Installing the Quantum Rings SDK in CPU-Only Mode
99
+ =================================================
100
+
101
+ To unlock the full potential of the Quantum Rings Software Development Kit (SDK) in CPU-only mode,
102
+ follow these essential steps for seamless installation.
103
+
104
+
105
+ **STEP - 1**
106
+
107
+ To obtain your license for the `Quantum Rings SDK <https://www.quantumrings.com/>`_, register by selecting the **Login** option from the menu.
108
+
109
+ If you are already registered, you can skip this step.
110
+
111
+ Next, log in to the `Quantum Rings portal <https://portal.quantumrings.com/developer/>`_. To download your access keys, select the **Manage Keys** option in the left sidebar.
112
+
113
+
114
+ **STEP - 2**
115
+
116
+ Create a virtual environment for your Python version using the following example.
117
+
118
+ .. code-block:: console
119
+
120
+ virtualenv --python=/usr/bin/python3.11 myenv311
121
+ source myenv311/bin/activate
122
+
123
+ In some installations, the virtual environment can be created as follows:
124
+
125
+ .. code-block:: console
126
+
127
+ python3.11 -m venv myenv311
128
+ source myenv311/bin/activate
129
+
130
+ Note that installing a Python virtual environment may require additional steps.
131
+
132
+ You can optionally install Jupyter Notebook using the following command:
133
+
134
+ .. code-block:: console
135
+
136
+ pip install notebook
137
+
138
+
139
+ **STEP - 3**
140
+
141
+ Install the Quantum Rings SDK using the following command:
142
+
143
+ .. code-block:: console
144
+
145
+ pip install QuantumRingsLib
146
+
147
+
148
+ or by using the following option:
149
+
150
+ .. code-block:: console
151
+
152
+ pip install quantumrings[cpu]
153
+
154
+
155
+ **STEP - 6**
156
+
157
+ Now, try the following Python program from your Jupyter notebook to ensure that everything is working fine.
158
+
159
+ .. code-block:: python
160
+
161
+ import QuantumRingsLib
162
+ from QuantumRingsLib import QuantumRegister, AncillaRegister, ClassicalRegister, QuantumCircuit
163
+ from QuantumRingsLib import QuantumRingsProvider
164
+ from QuantumRingsLib import job_monitor
165
+ from QuantumRingsLib import JobStatus
166
+ from QuantumRingsLib import OptimizeQuantumCircuit
167
+ from matplotlib import pyplot as plt
168
+ import numpy as np
169
+ import math
170
+
171
+ provider = QuantumRingsProvider(token =<YOUR_TOKEN_HERE>, name=<YOUR_ACCOUNT_NAME_HERE>)
172
+ backend = provider.get_backend("scarlet_quantum_rings")
173
+ numberofqubits = 50
174
+ shots = 100
175
+
176
+ q = QuantumRegister(numberofqubits , 'q')
177
+ c = ClassicalRegister(numberofqubits , 'c')
178
+ qc = QuantumCircuit(q, c)
179
+
180
+ qc.h(0)
181
+ for i in range (qc.num_qubits - 1):
182
+ qc.cnot(i, i + 1)
183
+
184
+ qc.measure_all()
185
+
186
+ job = backend.run(qc, shots=shots)
187
+ job_monitor(job)
188
+
189
+ result = job.result()
190
+ counts = result.get_counts()
191
+ print(counts)
192
+
193
+
194
+ ================================================
195
+ Installting the Quantum Rings SDK for NVidia GPU
196
+ ================================================
197
+
198
+ Quantum Rings SDK now supports Nvidia GPUs, either in the native mode or together with the toolkit for Qiskit.
199
+
200
+ The following steps outline the installation procedure.
201
+
202
+
203
+ **STEP - 1**
204
+
205
+ To obtain your license for the `Quantum Rings SDK <https://www.quantumrings.com/>`_, register by selecting the **Login** option from the menu.
206
+
207
+ If you are already registered, you can skip this step.
208
+
209
+ Next, log in to the `Quantum Rings portal <https://portal.quantumrings.com/developer/>`_.
210
+ To download your access keys, select the **Manage Keys** option in the left sidebar.
211
+
212
+
213
+
214
+ **STEP - 2**
215
+
216
+ .. note::
217
+
218
+ If you are using a university supercomputer or a cloud instance with NVIDIA GPUs, your system administrator may have already installed the necessary
219
+ NVIDIA drivers for you. In such cases, you can skip this step.
220
+
221
+ .. warning::
222
+
223
+ This step may be challenging, and you may need professional help. Installing device drivers can make your installation unstable. Always proceed with a backup and read all
224
+ documentation carefully. Ensure you install the correct drivers for your hardware platform. Installing open source drivers may not be a good idea.
225
+
226
+ Update the `NVIDIA drivers <https://www.nvidia.com/en-us/drivers/>`_ for your system.
227
+ For some Linux distributions, you may need to install the NVIDIA drivers directly from the distribution. Please search for the documentation
228
+ from your Linux operating system provider and follow their recommendation.
229
+
230
+ If you are installing on WSL-based Linux, you must update the NVIDIA driver in Windows. It will automatically apply to the WSL Linux instance.
231
+
232
+ Note down the driver version by running the ``nvidia-smi`` command in the terminal and observing the version displayed in the top panel.
233
+ You will need to know the driver version to install the CUDA Toolkit later.
234
+
235
+
236
+ **STEP - 3**
237
+
238
+ Create a virtual environment for your python version using the following example.
239
+
240
+ .. code-block:: console
241
+
242
+ virtualenv --python=/usr/bin/python3.11 myenv311
243
+ source myenv31/bin/activate
244
+
245
+ In some installations, the virtual environment can be created as follows:
246
+
247
+ .. code-block:: console
248
+
249
+ python3.11 -m venv myenv311
250
+ source myenv311/bin/activate
251
+
252
+ Note that installing a python virtual environment may require additional steps.
253
+
254
+ You can optionally choose to install Jupyter notebook, at this time using the following command.
255
+
256
+ .. code-block:: console
257
+
258
+ pip install notebook
259
+
260
+
261
+ **STEP - 4**
262
+
263
+ Choose the appropriate CUDA Toolkit (CTK) for your driver version. Section 2.2 CUDA Driver in `Release notes <https://docs.nvidia.com/cuda/cuda-toolkit-release-notes/index.html>`_ outlines the CUDA Driver
264
+ version range and the CUDA Toolkit (CTK) you could install.
265
+ Install the CUDA Toolkit (CTK) by following the instructions in the link: `CUDA Toolkit <https://developer.nvidia.com/cuda-toolkit>`_
266
+ Follow the instructions on the screen after installing and setting up the CUDA Toolkit, and set the paths as directed.
267
+
268
+
269
+ .. note::
270
+
271
+ Linux Users:
272
+
273
+ After installing the CUDA Toolkit, you may have to set the environment variable ``LD_LIBRARY_PATH`` to point to the folder where the CUDA Toolkit library was installed.
274
+ If this is not set, then there may be runtime linkage errors when you import QuantumRingsLib in your Python code.
275
+
276
+ Assuming ``/usr/local/cuda-13.0`` is where your CUDA Toolkit is installed, add the following two lines at the bottom of your profile ``~/.profile``.
277
+
278
+ .. code-block:: console
279
+
280
+ PATH="$PATH:$/usr/local/cuda-13.0/bin"
281
+ LD_LIBRARY_PATH="$LD_LIBRARY_PATH:$/usr/local/cuda-13.0/lib64"
282
+
283
+ Windows Users:
284
+
285
+ Ensure that the environment variable ``CUDA_PATH`` is set to the folder where the CUDA Toolkit is installed. Also, ensure that the environment variable ``PATH`` includes the path where
286
+ CUDA Toolkit components are installed.
287
+
288
+ In addition, you have to tell Python where the CUDA dynamically linkable libraries (DLLs) are located.
289
+
290
+ Note that:
291
+
292
+ If you are using CUDA Toolkit version 13.x, the runtume is usually installed at: ``"C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\bin\\x64"``
293
+
294
+ or
295
+
296
+ If you are using CUDA Toolkit version 12.x, the runtume is usually installed at: ``C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.9\\bin``
297
+
298
+ Use the following lines at the top of your code, before importing QuantumRingsLib.
299
+
300
+ .. code-block:: console
301
+
302
+ import os
303
+ import platform
304
+
305
+ if platform.system() == "Windows":
306
+ cuda_path = os.getenv("CUDA_PATH", "")
307
+ if "" == cuda_path:
308
+ #set a hard-coded path
309
+ cuda_path = "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\bin\\x64"
310
+ else:
311
+ #create from the environment
312
+ if "13" in cuda_path:
313
+ cuda_path += "\\bin\\x64"
314
+ else:
315
+ cuda_path += "\\bin"
316
+
317
+ os.add_dll_directory(cuda_path)
318
+
319
+ import QuantumRingsLib
320
+
321
+
322
+ If environment variables are not set correctly, linker errors will occur, and the SDK will not load.
323
+ If you are a Windows user, see additional instructions in `Section 6` to set up the DLL search path with Python.
324
+
325
+ If you are using your university supercomputer or a cloud environment with NVIDIA GPUs,
326
+ your system administrator may already have installed the necessary runtime components optimized for your hardware platform.
327
+ You may only need to select the CUDA Toolkit module. Selecting the CUDA Toolkit is typically done using a module loader, as shown below.
328
+ Browse the modules installed in your system and choose the most recent CUDA Toolkit.
329
+ Note that your system may use a different way of loading runtime components.
330
+
331
+ .. code-block:: console
332
+
333
+ module load cuda-12.6.1-gcc-12.1.0
334
+
335
+
336
+ **STEP - 5**
337
+
338
+ To install the Quantum Rings SDK, use the command appropriate for your CUDA Toolkit version:
339
+
340
+ If you are using CUDA Toolkit version 13.x:
341
+
342
+ .. code-block:: console
343
+
344
+ pip install quantumrings-nvidia-gpu
345
+
346
+ or
347
+
348
+ .. code-block:: console
349
+
350
+ pip install quantumrings[cuda13x]
351
+
352
+
353
+ If you are using CUDA Toolkit version 12.x:
354
+
355
+ .. code-block:: console
356
+
357
+ pip install quantumrings[cuda12x]
358
+
359
+
360
+ **STEP - 6**
361
+
362
+ Try running the following Python program in your Jupyter notebook to ensure everything is functioning correctly.
363
+
364
+ .. code-block:: python
365
+
366
+ # For Windows users. Linux users may skip this.
367
+ # Setup the CUDA Toolkit path with Python
368
+ import os
369
+ import platform
370
+
371
+ if platform.system() == "Windows":
372
+ cuda_path = os.getenv("CUDA_PATH", "")
373
+ if "" == cuda_path:
374
+ #set a hard-coded path
375
+ cuda_path = "C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v13.0\\bin\\x64"
376
+ else:
377
+ #create from the environment
378
+ if "13" in cuda_path:
379
+ cuda_path += "\\bin\\x64"
380
+ else:
381
+ cuda_path += "\\bin"
382
+
383
+ os.add_dll_directory(cuda_path)
384
+ #
385
+ #
386
+
387
+ import QuantumRingsLib
388
+ from QuantumRingsLib import QuantumRegister, AncillaRegister, ClassicalRegister, QuantumCircuit
389
+ from QuantumRingsLib import QuantumRingsProvider
390
+ from QuantumRingsLib import job_monitor
391
+ from QuantumRingsLib import JobStatus
392
+ from QuantumRingsLib import OptimizeQuantumCircuit
393
+ from matplotlib import pyplot as plt
394
+ import numpy as np
395
+ import math
396
+
397
+ provider = QuantumRingsProvider(token =<YOUR_TOKEN_HERE>, name=<YOUR_ACCOUNT_NAME_HERE>)
398
+ backend = provider.get_backend("amber_quantum_rings")
399
+ numberofqubits = 50
400
+ shots = 100
401
+
402
+ q = QuantumRegister(numberofqubits , 'q')
403
+ c = ClassicalRegister(numberofqubits , 'c')
404
+ qc = QuantumCircuit(q, c)
405
+
406
+ qc.h(0)
407
+ for i in range (qc.num_qubits - 1):
408
+ qc.cnot(i, i + 1)
409
+
410
+ qc.measure_all()
411
+
412
+ job = backend.run(qc, shots=shots)
413
+ job_monitor(job)
414
+
415
+ result = job.result()
416
+ counts = result.get_counts()
417
+ print(counts)
418
+
419
+
420
+
421
+ Using the GPU Mode
422
+ ------------------
423
+
424
+ Certain programs with a large number of qubits (> 22), complex entanglement, and many gate operations can benefit from using a GPU.
425
+
426
+ To switch to the GPU mode, select the ``amber_quantum_rings`` backend as follows:
427
+
428
+
429
+ .. code-block:: console
430
+
431
+ backend = provider.get_backend("amber_quantum_rings")
432
+
433
+ To switch to the CPU mode, select the ``scarlet_quantum_rings`` backend as follows:
434
+
435
+ .. code-block:: console
436
+
437
+ backend = provider.get_backend("scarlet_quantum_rings")
438
+
439
+ .. note::
440
+
441
+ Programs with a few qubits and gate operations usually run faster on the CPU mode with the ``scarlet_quantum_rings`` backend.
442
+ You can also use the hybrid backend ``serin_quantum_rings`` backend, which uses CPU for most operations and switches to the GPU mode for complex operations.
443
+
444
+
445
+ You can also store the backend name in the configuration file using the key ``backend`` and allow the method ``provider.get_backend`` select it automatically
446
+ by not providing any arguments. To save the backend name in the configuration file, please follow the instructions in the SDK.
447
+ Once the backend name is saved in the configuration file, you can obtain the backend by providing no arguments to the ``provider.get_backend`` method as follows:
448
+
449
+
450
+ .. code-block:: console
451
+
452
+ provider = QuantumRingsProvider()
453
+ backend = provider.get_backend()
454
+
455
+
456
+
457
+ ============================
458
+ Feedback and getting support
459
+ ============================
460
+
461
+ We love to hear from you! Please join our `Discord community <https://discord.com/invite/dZJvX5AfkS>`_ to discuss anything quantum computing.
462
+
463
+
464
+ `SDK Documentation <https://portal.quantumrings.com/doc/>`_
465
+
466
+ `FAQ <https://portal.quantumrings.com/developer/support/>`_ (Requires you to login)
467
+
468
+ `Managing your license keys <https://portal.quantumrings.com/developer/keys/>`_ (Requires you to login)
469
+
470
+ `Need more qubits? Request here <https://portal.quantumrings.com/developer/keys/>`_ (Requires you to login)
471
+
472
+
473
+
474
+
475
+
@@ -0,0 +1,5 @@
1
+ quantumrings-0.11.2000.dist-info/licenses/LICENSE.rst,sha256=gjTOlalh8rQGN2uJb06TX4RSNaISgdysUpj5kfl45kE,11097
2
+ quantumrings-0.11.2000.dist-info/METADATA,sha256=usvng47QiVUA0iUaC5HPm0RbrAaCcSK2-pl30tCxUTE,16804
3
+ quantumrings-0.11.2000.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
4
+ quantumrings-0.11.2000.dist-info/top_level.txt,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
5
+ quantumrings-0.11.2000.dist-info/RECORD,,
@@ -0,0 +1,5 @@
1
+ Wheel-Version: 1.0
2
+ Generator: setuptools (80.9.0)
3
+ Root-Is-Purelib: true
4
+ Tag: py3-none-any
5
+
@@ -0,0 +1,115 @@
1
+
2
+ ====================
3
+ EVALUATION AGREEMENT
4
+ ====================
5
+
6
+ **IMPORTANT:** PLEASE READ THIS EVALUATION AGREEMENT ("**AGREEMENT**") BEFORE CLICKING THE "ACCEPT" BUTTON, AND/OR USING
7
+ THE QUANTUM RINGS, INC. (**"QUANTUM"**) PRODUCT THAT ACCOMPANIES OR IS PROVIDED IN CONNECTION WITH THIS AGREEMENT. BY
8
+ CLICKING THE "ACCEPT" BUTTON, AND/OR USING THE SERVICES IN ANY WAY, YOU AND THE ENTITY THAT YOU REPRESENT ("**EVALUATOR**")
9
+ IS UNCONDITIONALLY CONSENTING TO BE BOUND BY AND IS BECOMING A PARTY TO THIS AGREEMENT WITH QUANTUM AND YOU REPRESENT
10
+ AND WARRANT THAT YOU HAVE THE AUTHORITY TO BIND SUCH ENTITY TO THESE TERMS. IF EVALUATOR DOES NOT UNCONDITIONALLY AGREE
11
+ TO ALL OF THE TERMS OF THIS AGREEMENT, USE OF THE SERVICES IS STRICTLY PROHIBITED. IF EVALUATOR HAS EXECUTED, OR
12
+ SUBSEQUENTLY EXECUTES, AN EVALUATION AGREEMENT OR AN END USER AGREEMENT WITH QUANTUM, THEN THE TERMS AND
13
+ CONDITIONS OF SUCH EXECUTED EVALUATION AGREEMENT OR END USER AGREEMENT, AS APPLICABLE, SHALL GOVERN AND CONTROL
14
+ YOUR USE OF THE PRODUCT.
15
+
16
+ 1. **BETA SERVICES**. Quantum is developing a proprietary, set of development tools for quantum computing (the
17
+ "**Services**"). Evaluator wishes to utilize an evaluation "beta" version of the Services, and Quantum desires to make a beta
18
+ version of the Services available to Evaluator, subject to the following terms and conditions. Subject to the terms and
19
+ conditions of this Agreement, Quantum hereby grants Evaluator, during the Term (as defined below), non-exclusive,
20
+ non-transferable, non-sublicensable right and license to access and use the Services solely for the purpose of evaluating the
21
+ performance and functionality of the Services (the "**Limited Purpose**"). Evaluator agrees to use and evaluate the Services for
22
+ a period of ninty days or such other period of time as mutually agreed by the parties in writing (the "**Term**"). Quantum's
23
+ services outside the scope of this Agreement, if any, shall be provided pursuant to Quantum's then-current applicable services
24
+ policies and procedures ("**Other Terms**"). Nothing in any of Quantum's Other Terms or any other existing agreements that
25
+ Evaluator may have with Quantum apply to or are applicable to this Agreement, or Evaluator's use of the Services offered
26
+ hereunder.
27
+
28
+ 2. **INTELLECTUAL PROPERTY.** The Services (excluding the Evaluator Content hosted thereon), Documentation, and all
29
+ other materials provided by Quantum hereunder, including but not limited to all manuals, reports, records, programs, data and
30
+ other materials, and all intellectual property rights in each of the foregoing, are the exclusive property of Quantum and its
31
+ suppliers. Evaluator agrees that it will not, and will not permit any other party to: (a) permit any party to access the Services
32
+ or any accompanying documentation ("**Documentation**"); (b) modify, adapt, alter or translate the Services or
33
+ Documentation; (c) sublicense, lease, rent, loan, distribute, or otherwise transfer the Services or Documentation to any third
34
+ party; (d) reverse engineer, decompile, disassemble, or otherwise derive or determine or attempt to derive or determine the
35
+ source code (or the underlying ideas, algorithms, structure or organization) of the Services; (e) use or copy the Services or
36
+ Documentation except for the Limited Purpose; or (f) publish or disclose to any third party any performance benchmark tests
37
+ or analyses or other non-public information relating to the Services or the use thereof.
38
+
39
+ 3. **FEEDBACK.** Evaluator understands and agrees that the Services represent a beta test version of unreleased software
40
+ and services that may contain bugs, defects, and errors. In exchange for the licenses granted to Evaluator to use such
41
+ software, Evaluator agrees to use good faith efforts to test, use, and evaluate the Services in live operations, and to promptly
42
+ report to Quantum, either orally or in writing, any errors, problems, defects, or suggestions for changes and improvements to
43
+ the Services (collectively, "**Feedback**"). Evaluator acknowledges and agrees that all Feedback and all intellectual property
44
+ rights therein are the exclusive property of Quantum, and hereby assigns to Quantum, all right, title and interest to any and all
45
+ Feedback. Further, Evaluator acknowledges and agrees that Feedback may be used by Quantum in Quantum's development
46
+ of and be incorporated into a version of the Services Quantum may make available for commercial distribution
47
+ ("**Commercial Release**") or any other software or intellectual property created by Quantum. Without limiting the foregoing,
48
+ Quantum may incorporate Feedback into its products and services and Evaluator will gain no rights in such products or
49
+ services by virtue of having disclosed Feedback. Evaluator agrees and acknowledges that the products and services
50
+ incorporating such Feedback will be the sole and exclusive property of Quantum, and Evaluator will gain no right, title or
51
+ interest in or to the Services, Documentation or any Commercial Release by virtue of Evaluator's provision of Feedback to
52
+ Quantum or for any other reason. Quantum has no obligation to create, distribute or otherwise offer a Commercial Release,
53
+ and in the event of such Commercial Release, Quantum has no obligation to offer the Commercial Release to Evaluator or to
54
+ offer Evaluator any discounted pricing schedules or special terms. Evaluator understands and agrees that the Commercial
55
+ Release may contain functions and functionality, and perform in a manner significantly different from the current beta version
56
+ of the Services. Accordingly, Evaluator acknowledges that any research or development performed, or business plans made,
57
+ by Evaluator regarding or in reliance upon the Services are done entirely at Evaluator's own risk.
58
+
59
+ 4. **DISCLAIMERS OF WARRANTIES.** Evaluator acknowledges that the Services contain prerelease code for testing
60
+ purposes only and are not at the level of performance and compatibility of a final, generally available product offering.
61
+ Furthermore, Evaluator acknowledges that the Services may contain bugs, errors, omissions and other problems that could
62
+ cause system or other failures and data loss. Evaluator acknowledges that Quantum may not introduce a product similar to or
63
+ compatible with the Services. Accordingly, Evaluator acknowledges that any research, development or other work that
64
+
65
+
66
+ Evaluator performs regarding the Services is done entirely at Evaluator's own risk. To the maximum extent permitted by law,
67
+ the Services, and all other documentation and materials are provided "AS IS" AND WITH ALL FAULTS. QUANTUM
68
+ MAKES NO WARRANTIES WITH RESPECT TO THE SERVICES OR DOCUMENTATION, WHETHER EXPRESS OR
69
+ IMPLIED, INCLUDING WARRANTIES OF TITLE, ACCURACY, INTERFERENCE WITH EVALUATOR'S QUIET
70
+ ENJOYMENT, SYSTEM INTEGRATION, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A
71
+ PARTICULAR PURPOSE. THE ENTIRE RISK ARISING OUT OF THE USE OR PERFORMANCE OF THE SERVICES
72
+ IS WITH EVALUATOR NO ORAL OR WRITTEN INFORMATION OR ADVICE GIVEN BY QUANTUM OR ITS
73
+ AGENTS OR EMPLOYEES SHALL IN ANY WAY INCREASE THE SCOPE OF THIS WARRANTY.
74
+
75
+ 5. **LIMITATION OF LIABILITY.** IN NO EVENT WILL QUANTUM OR ITS LICENSORS (IF ANY) BE LIABLE TO
76
+ EVALUATOR OR ANY THIRD PARTY FOR THE COST OF PROCUREMENT OF SUBSTITUTE SERVICES, LOST
77
+ PROFITS, LOST DATA, OR ANY SPECIAL, INDIRECT, CONSEQUENTIAL, INCIDENTAL OR PUNITIVE
78
+ DAMAGES, HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY ARISING IN ANY WAY OUT OF THIS
79
+ AGREEMENT OR EVALUATOR'S USE OF THE SERVICES, EVEN IF QUANTUM HAS BEEN ADVISED OF THE
80
+ POSSIBILITY OF SUCH DAMAGES. THE TOTAL CUMULATIVE LIABILITY, RELATED TO THIS AGREEMENT,
81
+ OF QUANTUM AND ITS LICENSORS (IF ANY) SHALL BE LIMITED TO FIFTY DOLLARS (U.S. $50). The parties
82
+ agree that the limitations of liability set forth in this section shall survive and continue in full force and effect despite any
83
+ failure of consideration or of an exclusive remedy. The parties acknowledge that the prices have been set and the Agreement
84
+ entered into in reliance upon these limitations of liability and that all such limitations form an essential basis of the bargain
85
+ between the parties.
86
+
87
+ 6. **CONFIDENTIALITY.** The structure, sequence, organization and code of the software used to provide the Services
88
+ constitute valuable trade secrets of Quantum and its suppliers. Evaluator will not disclose to any third party: any information
89
+ about the Services, including its existence, design, performance characteristics, feedback, and test results. Evaluator will use
90
+ reasonable efforts to prevent any access to the Services by anyone other than its employees who are obligated to comply with
91
+ the terms hereof.
92
+
93
+ 7. **PRODUCT DIAGNOSTIC REPORTING.** Evaluator acknowledges that the Services will store certain diagnostic information
94
+ about the routine operations of the Services (including, without limitation, its performance, data reduction ratios,
95
+ configuration data, and any software faults) and will periodically transmit this diagnostic information to Quantum. Evaluator
96
+ agrees that Quantum has a perpetual, irrevocable, worldwide, sublicenseable, and royalty-free right to use this diagnostic
97
+ information in any manner and that Evaluator will not interfere with the collection or transmission of such information to
98
+ Quantum. For clarification, there is no actual user data of Evaluator that is transmitted or provided to Quantum.
99
+
100
+ 8. **TERM AND TERMINATION.** This Agreement commences upon the Effective Date and will continue in effect until the
101
+ end of the Term. Either party may terminate this Agreement upon written notice to the other party. Upon termination,
102
+ Evaluator shall immediately cease all use of Services, and delete or destroy all copies of the Documentation in the possession
103
+ or control of Evaluator.
104
+
105
+ 9. **GENERAL PROVISIONS.** This Agreement will be governed by the laws of the State of Colorado. Evaluator submits to
106
+ the exclusive jurisdiction and venue of the federal and state courts located in Denver County, Colorado for any disputes
107
+ arising out of or related to this Agreement. Evaluator may not assign or transfer, by operation of law, change of control or
108
+ otherwise, any of its rights under this Agreement to any third party without Quantum's prior written consent. Any attempted
109
+ assignment or transfer in violation of the foregoing will be void. All waivers must be in writing. Any waiver or failure to
110
+ enforce any provision of this Agreement on one occasion will not be deemed a waiver of any other provision or of such
111
+ provision on any other occasion. If any part of this Agreement is found void and unenforceable, it will not affect the validity
112
+ of the balance of this Agreement, which shall remain valid and enforceable according to its terms. If any provision of this
113
+ Agreement is, for any reason, held to be invalid or unenforceable, the other provisions of this Agreement will remain
114
+ enforceable and the invalid or unenforceable provision will be deemed modified so that it is valid and enforceable to the
115
+ maximum extent permitted by law.