mirror of
https://github.com/libquantum/libquantum.git
synced 2025-10-03 08:42:01 +00:00
updated libquantum 0.2.4 source files
This commit is contained in:
4
CHANGES
4
CHANGES
@@ -1,3 +1,7 @@
|
|||||||
|
libquantum 0.2.4:
|
||||||
|
- Fixed a bug in the wrapper for the density operator formalism
|
||||||
|
that caused a compiler error when using some gates
|
||||||
|
|
||||||
libquantum 0.2.3:
|
libquantum 0.2.3:
|
||||||
- Added density operator formalism
|
- Added density operator formalism
|
||||||
- Added functions for dot product and purity
|
- Added functions for dot product and purity
|
||||||
|
22
Makefile.in
22
Makefile.in
@@ -1,6 +1,6 @@
|
|||||||
# Makefile: Build libquantum
|
# Makefile: Build libquantum
|
||||||
#
|
#
|
||||||
# Copyright 2003, 2004 Bjoern Butscher, Hendrik Weimer
|
# Copyright 2003-2005 Bjoern Butscher, Hendrik Weimer
|
||||||
#
|
#
|
||||||
# This file is part of libquantum
|
# This file is part of libquantum
|
||||||
#
|
#
|
||||||
@@ -49,15 +49,12 @@ LIBTOOL=@LIBTOOL@
|
|||||||
# Flags passed to C compiler
|
# Flags passed to C compiler
|
||||||
|
|
||||||
CFLAGS=@CFLAGS@
|
CFLAGS=@CFLAGS@
|
||||||
LDFLAGS=-rpath $(LIBDIR) -version-info 5:0:2
|
LDFLAGS=-rpath $(LIBDIR) -version-info 5:1:2
|
||||||
|
|
||||||
# Dependencies
|
# Dependencies
|
||||||
|
|
||||||
all: libquantum.la
|
all: libquantum.la
|
||||||
|
|
||||||
Makefile: Makefile.in configure.in config.h.in types.h.in quantum.h.in
|
|
||||||
./configure
|
|
||||||
|
|
||||||
libquantum.la: complex.lo measure.lo matrix.lo gates.lo qft.lo classic.lo\
|
libquantum.la: complex.lo measure.lo matrix.lo gates.lo qft.lo classic.lo\
|
||||||
qureg.lo decoherence.lo oaddn.lo omuln.lo expn.lo qec.lo version.lo\
|
qureg.lo decoherence.lo oaddn.lo omuln.lo expn.lo qec.lo version.lo\
|
||||||
objcode.lo density.lo Makefile
|
objcode.lo density.lo Makefile
|
||||||
@@ -66,7 +63,7 @@ libquantum.la: complex.lo measure.lo matrix.lo gates.lo qft.lo classic.lo\
|
|||||||
classic.lo qureg.lo decoherence.lo qec.lo version.lo objcode.lo\
|
classic.lo qureg.lo decoherence.lo qec.lo version.lo objcode.lo\
|
||||||
density.lo -lm
|
density.lo -lm
|
||||||
|
|
||||||
complex.lo: complex.c complex.h Makefile
|
complex.lo: complex.c complex.h config.h Makefile
|
||||||
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c complex.c
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c complex.c
|
||||||
|
|
||||||
measure.lo: measure.c measure.h matrix.h qureg.h complex.h config.h Makefile
|
measure.lo: measure.c measure.h matrix.h qureg.h complex.h config.h Makefile
|
||||||
@@ -113,6 +110,17 @@ objcode.lo: objcode.c objcode.h matrix.h gates.h qureg.h measure.h config.h\
|
|||||||
density.lo: density.c density.h matrix.h qureg.h complex.h config.h Makefile
|
density.lo: density.c density.h matrix.h qureg.h complex.h config.h Makefile
|
||||||
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c density.c
|
$(LIBTOOL) --mode=compile $(CC) $(CFLAGS) -c density.c
|
||||||
|
|
||||||
|
# Autoconf stuff
|
||||||
|
|
||||||
|
Makefile: configure Makefile.in aclocal.m4 config.h.in types.h.in quantum.h.in
|
||||||
|
./configure
|
||||||
|
|
||||||
|
config.h: config.h.in
|
||||||
|
./configure
|
||||||
|
|
||||||
|
configure: configure.in
|
||||||
|
autoconf
|
||||||
|
|
||||||
# Build demos of Shor's and Grover's algorithms
|
# Build demos of Shor's and Grover's algorithms
|
||||||
|
|
||||||
demos: shor grover
|
demos: shor grover
|
||||||
@@ -158,6 +166,8 @@ distclean:
|
|||||||
-rm shor *.lo *.o config.h quantum.h config.status config.log\
|
-rm shor *.lo *.o config.h quantum.h config.status config.log\
|
||||||
libquantum.la
|
libquantum.la
|
||||||
|
|
||||||
|
# Build the source tarball
|
||||||
|
|
||||||
dist:
|
dist:
|
||||||
-rm quantum.h config.h types.h
|
-rm quantum.h config.h types.h
|
||||||
mkdir libquantum-$(VERSION)
|
mkdir libquantum-$(VERSION)
|
||||||
|
2
aclocal.m4
vendored
2
aclocal.m4
vendored
@@ -23,7 +23,7 @@
|
|||||||
## the same distribution terms that you use for the rest of that program.
|
## the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
# serial 47 AC_PROG_LIBTOOL
|
# serial 47 AC_PROG_LIBTOOL
|
||||||
# Debian $Rev: 214 $
|
# Debian $Rev: 133 $
|
||||||
|
|
||||||
|
|
||||||
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
|
# AC_PROVIDE_IFELSE(MACRO-NAME, IF-PROVIDED, IF-NOT-PROVIDED)
|
||||||
|
26
config.h.in
26
config.h.in
@@ -1,4 +1,25 @@
|
|||||||
/* config.h.in. Generated from configure.in by autoheader. */
|
/* config.h: configure settings
|
||||||
|
|
||||||
|
Copyright 2003-2005 Bjoern Butscher, Hendrik Weimer
|
||||||
|
|
||||||
|
This file is part of libquantum
|
||||||
|
|
||||||
|
libquantum is free software; you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published
|
||||||
|
by the Free Software Foundation; either version 2 of the License,
|
||||||
|
or (at your option) any later version.
|
||||||
|
|
||||||
|
libquantum is distributed in the hope that it will be useful, but
|
||||||
|
WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with libquantum; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
|
USA
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
/* Complex data type */
|
/* Complex data type */
|
||||||
#undef COMPLEX_FLOAT
|
#undef COMPLEX_FLOAT
|
||||||
@@ -67,4 +88,7 @@
|
|||||||
if it is not supported. */
|
if it is not supported. */
|
||||||
#undef inline
|
#undef inline
|
||||||
|
|
||||||
|
/* Define to 1 if you have GCC */
|
||||||
|
#undef HAVE_GCC
|
||||||
|
|
||||||
#include "types.h"
|
#include "types.h"
|
||||||
|
22
configure
vendored
22
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.59 for libquantum 0.2.3.
|
# Generated by GNU Autoconf 2.59 for libquantum 0.2.4.
|
||||||
#
|
#
|
||||||
# Report bugs to <libquantum@enyo.de>.
|
# Report bugs to <libquantum@enyo.de>.
|
||||||
#
|
#
|
||||||
@@ -419,8 +419,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='libquantum'
|
PACKAGE_NAME='libquantum'
|
||||||
PACKAGE_TARNAME='libquantum'
|
PACKAGE_TARNAME='libquantum'
|
||||||
PACKAGE_VERSION='0.2.3'
|
PACKAGE_VERSION='0.2.4'
|
||||||
PACKAGE_STRING='libquantum 0.2.3'
|
PACKAGE_STRING='libquantum 0.2.4'
|
||||||
PACKAGE_BUGREPORT='libquantum@enyo.de'
|
PACKAGE_BUGREPORT='libquantum@enyo.de'
|
||||||
|
|
||||||
ac_unique_file="classic.c"
|
ac_unique_file="classic.c"
|
||||||
@@ -930,7 +930,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures libquantum 0.2.3 to adapt to many kinds of systems.
|
\`configure' configures libquantum 0.2.4 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@@ -991,7 +991,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of libquantum 0.2.3:";;
|
short | recursive ) echo "Configuration of libquantum 0.2.4:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@@ -1127,7 +1127,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit 0
|
test -n "$ac_init_help" && exit 0
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
libquantum configure 0.2.3
|
libquantum configure 0.2.4
|
||||||
generated by GNU Autoconf 2.59
|
generated by GNU Autoconf 2.59
|
||||||
|
|
||||||
Copyright (C) 2003 Free Software Foundation, Inc.
|
Copyright (C) 2003 Free Software Foundation, Inc.
|
||||||
@@ -1141,7 +1141,7 @@ cat >&5 <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by libquantum $as_me 0.2.3, which was
|
It was created by libquantum $as_me 0.2.4, which was
|
||||||
generated by GNU Autoconf 2.59. Invocation command line was
|
generated by GNU Autoconf 2.59. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@@ -9122,6 +9122,10 @@ fi;
|
|||||||
# Enable -Wall for gcc
|
# Enable -Wall for gcc
|
||||||
if test $CC = "gcc"
|
if test $CC = "gcc"
|
||||||
then
|
then
|
||||||
|
cat >>confdefs.h <<\_ACEOF
|
||||||
|
#define HAVE_GCC 1
|
||||||
|
_ACEOF
|
||||||
|
|
||||||
CFLAGS="$CFLAGS -Wall"
|
CFLAGS="$CFLAGS -Wall"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -9490,7 +9494,7 @@ _ASBOX
|
|||||||
} >&5
|
} >&5
|
||||||
cat >&5 <<_CSEOF
|
cat >&5 <<_CSEOF
|
||||||
|
|
||||||
This file was extended by libquantum $as_me 0.2.3, which was
|
This file was extended by libquantum $as_me 0.2.4, which was
|
||||||
generated by GNU Autoconf 2.59. Invocation command line was
|
generated by GNU Autoconf 2.59. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@@ -9550,7 +9554,7 @@ _ACEOF
|
|||||||
|
|
||||||
cat >>$CONFIG_STATUS <<_ACEOF
|
cat >>$CONFIG_STATUS <<_ACEOF
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
libquantum config.status 0.2.3
|
libquantum config.status 0.2.4
|
||||||
configured by $0, generated by GNU Autoconf 2.59,
|
configured by $0, generated by GNU Autoconf 2.59,
|
||||||
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
|
||||||
|
|
||||||
|
26
configure.in
26
configure.in
@@ -1,5 +1,26 @@
|
|||||||
# Process this file with autoconf to produce a configure script.
|
# configure.in: Process this file with autoconf to produce a configure
|
||||||
AC_INIT([libquantum], [0.2.3], [libquantum@enyo.de])
|
# script.
|
||||||
|
#
|
||||||
|
# Copyright 2003-2005 Bjoern Butscher, Hendrik Weimer
|
||||||
|
#
|
||||||
|
# This file is part of libquantum
|
||||||
|
#
|
||||||
|
# libquantum is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published
|
||||||
|
# by the Free Software Foundation; either version 2 of the License,
|
||||||
|
# or (at your option) any later version.
|
||||||
|
#
|
||||||
|
# libquantum is distributed in the hope that it will be useful, but
|
||||||
|
# WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||||
|
# General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with libquantum; if not, write to the Free Software
|
||||||
|
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||||
|
# USA
|
||||||
|
|
||||||
|
AC_INIT([libquantum], [0.2.4], [libquantum@enyo.de])
|
||||||
AC_CONFIG_SRCDIR([classic.c])
|
AC_CONFIG_SRCDIR([classic.c])
|
||||||
AC_CONFIG_HEADER([config.h])
|
AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
@@ -94,6 +115,7 @@ AC_ARG_ENABLE(profiling,
|
|||||||
# Enable -Wall for gcc
|
# Enable -Wall for gcc
|
||||||
if test $CC = "gcc"
|
if test $CC = "gcc"
|
||||||
then
|
then
|
||||||
|
AC_DEFINE(HAVE_GCC)
|
||||||
CFLAGS="$CFLAGS -Wall"
|
CFLAGS="$CFLAGS -Wall"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
18
density.h
18
density.h
@@ -1,6 +1,6 @@
|
|||||||
/* density.h: Declarations for density.c
|
/* density.h: Declarations for density.c
|
||||||
|
|
||||||
Copyright 2004 Bjoern Butscher, Hendrik Weimer
|
Copyright 2004, 2005 Bjoern Butscher, Hendrik Weimer
|
||||||
|
|
||||||
This file is part of libquantum
|
This file is part of libquantum
|
||||||
|
|
||||||
@@ -27,24 +27,14 @@
|
|||||||
|
|
||||||
#include "qureg.h"
|
#include "qureg.h"
|
||||||
|
|
||||||
#define quantum_density_wrapper_ubt(reg, ctl, ...) \
|
|
||||||
quantum_unbounded_toffoli(ctl, reg, __VA_ARGS__)
|
|
||||||
|
|
||||||
#define quantum_density_operation(function, rho, ...) \
|
#define quantum_density_operation(function, rho, ...) \
|
||||||
do{ \
|
do{ \
|
||||||
int quantum_int; \
|
int quantum_int; \
|
||||||
if ((void *) function == quantum_unbounded_toffoli) \
|
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
||||||
{ \
|
function(__VA_ARGS__, &rho.reg[quantum_int]); \
|
||||||
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
|
||||||
quantum_density_wrapper_ubt(&rho.reg[quantum_int], __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
else \
|
|
||||||
{ \
|
|
||||||
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
|
||||||
function(__VA_ARGS__, &rho.reg[quantum_int]); \
|
|
||||||
} \
|
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
|
|
||||||
struct quantum_density_op_struct
|
struct quantum_density_op_struct
|
||||||
{
|
{
|
||||||
int num; /* total number of state vectors */
|
int num; /* total number of state vectors */
|
||||||
|
@@ -44,7 +44,7 @@ EXIT_FAILURE=1
|
|||||||
PROGRAM=ltmain.sh
|
PROGRAM=ltmain.sh
|
||||||
PACKAGE=libtool
|
PACKAGE=libtool
|
||||||
VERSION=1.5.6
|
VERSION=1.5.6
|
||||||
TIMESTAMP=" (1.1220.2.95 2004/04/11 05:50:42) Debian$Rev: 220 $"
|
TIMESTAMP=" (1.1220.2.95 2004/04/11 05:50:42) Debian$Rev: 133 $"
|
||||||
|
|
||||||
|
|
||||||
# Check that we have a working $echo.
|
# Check that we have a working $echo.
|
||||||
|
17
quantum.h.in
17
quantum.h.in
@@ -1,6 +1,6 @@
|
|||||||
/* quantum.h: Header file for libquantum
|
/* quantum.h: Header file for libquantum
|
||||||
|
|
||||||
Copyright 2003, 2004 Bjoern Butscher, Hendrik Weimer
|
Copyright 2003-2005 Bjoern Butscher, Hendrik Weimer
|
||||||
|
|
||||||
This file is part of libquantum
|
This file is part of libquantum
|
||||||
|
|
||||||
@@ -28,22 +28,11 @@
|
|||||||
#define COMPLEX_FLOAT @CF_TYPE@
|
#define COMPLEX_FLOAT @CF_TYPE@
|
||||||
#define MAX_UNSIGNED @MU_TYPE@
|
#define MAX_UNSIGNED @MU_TYPE@
|
||||||
|
|
||||||
#define quantum_density_wrapper_ubt(reg, ctl, ...) \
|
|
||||||
quantum_unbounded_toffoli(ctl, reg, __VA_ARGS__)
|
|
||||||
|
|
||||||
#define quantum_density_operation(function, rho, ...) \
|
#define quantum_density_operation(function, rho, ...) \
|
||||||
do{ \
|
do{ \
|
||||||
int quantum_int; \
|
int quantum_int; \
|
||||||
if ((void *) function == quantum_unbounded_toffoli) \
|
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
||||||
{ \
|
function(__VA_ARGS__, &rho.reg[quantum_int]); \
|
||||||
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
|
||||||
quantum_density_wrapper_ubt(&rho.reg[quantum_int], __VA_ARGS__); \
|
|
||||||
} \
|
|
||||||
else \
|
|
||||||
{ \
|
|
||||||
for(quantum_int=0; quantum_int < rho.num; quantum_int++) \
|
|
||||||
function(__VA_ARGS__, &rho.reg[quantum_int]); \
|
|
||||||
} \
|
|
||||||
} while(0)
|
} while(0)
|
||||||
|
|
||||||
/* A ROWS x COLS matrix with complex elements */
|
/* A ROWS x COLS matrix with complex elements */
|
||||||
|
Reference in New Issue
Block a user