# HG changeset patch # User John W. Eaton # Date 1330030514 18000 # Node ID e8bc9c02533a9995f6b36799dd2d9b888e799539 # Parent e41e538e9d035f398096e24d0673153ee4f65953# Parent 670feb71afdef1db7574bc8ca91d98b5a3baff85 maint: periodic merge of stable to default diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,7 @@ OCTAVE_VERSION="$PACKAGE_VERSION" OCTAVE_API_VERSION_NUMBER="48" OCTAVE_API_VERSION="api-v$OCTAVE_API_VERSION_NUMBER+" -OCTAVE_RELEASE_DATE="2012-02-07" +OCTAVE_RELEASE_DATE="2012-02-22" OCTAVE_COPYRIGHT="Copyright (C) 2012 John W. Eaton and others." AC_SUBST(OCTAVE_VERSION) AC_SUBST(OCTAVE_API_VERSION_NUMBER) diff --git a/libcruft/Makefile.am b/libcruft/Makefile.am --- a/libcruft/Makefile.am +++ b/libcruft/Makefile.am @@ -20,7 +20,10 @@ include $(top_srcdir)/build-aux/common.mk -AM_CPPFLAGS = @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu +## Search local directories before those specified by the user. +AM_CPPFLAGS = \ + -I../libgnu -I$(top_srcdir)/libgnu \ + @CPPFLAGS@ AUTOMAKE_OPTIONS = subdir-objects diff --git a/liboctave/CColVector.cc b/liboctave/CColVector.cc --- a/liboctave/CColVector.cc +++ b/liboctave/CColVector.cc @@ -346,13 +346,19 @@ if (nr != 0) { - Complex *y = retval.fortran_vec (); + if (nc == 0) + retval.fill (0.0); + else + { + Complex *y = retval.fortran_vec (); - F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), - nr, nc, 1.0, m.data (), nr, - a.data (), 1, 0.0, y, 1 - F77_CHAR_ARG_LEN (1))); + F77_XFCN (zgemv, ZGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), + nr, nc, 1.0, m.data (), nr, + a.data (), 1, 0.0, y, 1 + F77_CHAR_ARG_LEN (1))); + } } + } return retval; diff --git a/liboctave/Makefile.am b/liboctave/Makefile.am --- a/liboctave/Makefile.am +++ b/liboctave/Makefile.am @@ -20,9 +20,11 @@ include $(top_srcdir)/build-aux/common.mk +## Search local directories before those specified by the user. AM_CPPFLAGS = \ - @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ - -I$(top_srcdir)/libcruft/misc + -I../libgnu -I$(top_srcdir)/libgnu \ + -I$(top_srcdir)/libcruft/misc \ + @CPPFLAGS@ EXTRA_DIST = \ config-ops.sh \ diff --git a/liboctave/config-ops.sh b/liboctave/config-ops.sh --- a/liboctave/config-ops.sh +++ b/liboctave/config-ops.sh @@ -34,7 +34,7 @@ case "$src_type" in inc | all) VX_INC=$($AWK -f $mk_ops prefix=vx list_h_files=1 $liboctave_dir/vx-ops) - echo "VX_OP_INC = $(echo $VX_INC)" > $liboctave_dir/vx-op-inc.mk-t + echo "VX_OP_INC = $VX_INC" > $liboctave_dir/vx-op-inc.mk-t $move_if_change $liboctave_dir/vx-op-inc.mk-t $liboctave_dir/vx-op-inc.mk ;; esac @@ -46,7 +46,7 @@ case "$src_type" in src | all) VX_SRC=$($AWK -f $mk_ops prefix=vx list_cc_files=1 $liboctave_dir/vx-ops) - echo "VX_OP_SRC = $(echo $VX_SRC)" > $liboctave_dir/vx-op-src.mk-t + echo "VX_OP_SRC = $VX_SRC" > $liboctave_dir/vx-op-src.mk-t $move_if_change $liboctave_dir/vx-op-src.mk-t $liboctave_dir/vx-op-src.mk ;; esac @@ -58,7 +58,7 @@ case "$src_type" in inc | all) MX_INC=$($AWK -f $mk_ops prefix=mx list_h_files=1 $liboctave_dir/mx-ops) - echo "MX_OP_INC = $(echo $MX_INC)" > $liboctave_dir/mx-op-inc.mk-t + echo "MX_OP_INC = $MX_INC" > $liboctave_dir/mx-op-inc.mk-t $move_if_change $liboctave_dir/mx-op-inc.mk-t $liboctave_dir/mx-op-inc.mk ;; esac @@ -70,7 +70,7 @@ case "$src_type" in src | all) MX_SRC=$($AWK -f $mk_ops prefix=mx list_cc_files=1 $liboctave_dir/mx-ops) - echo "MX_OP_SRC = $(echo $MX_SRC)" > $liboctave_dir/mx-op-src.mk-t + echo "MX_OP_SRC = $MX_SRC" > $liboctave_dir/mx-op-src.mk-t $move_if_change $liboctave_dir/mx-op-src.mk-t $liboctave_dir/mx-op-src.mk ;; esac @@ -82,7 +82,7 @@ case "$src_type" in inc | all) SMX_INC=$($AWK -f $sparse_mk_ops prefix=smx list_h_files=1 $liboctave_dir/sparse-mx-ops) - echo "SMX_OP_INC = $(echo $SMX_INC)" > $liboctave_dir/smx-op-inc.mk-t + echo "SMX_OP_INC = $SMX_INC" > $liboctave_dir/smx-op-inc.mk-t $move_if_change $liboctave_dir/smx-op-inc.mk-t $liboctave_dir/smx-op-inc.mk ;; esac @@ -94,7 +94,7 @@ case "$src_type" in src | all) SMX_SRC=$($AWK -f $sparse_mk_ops prefix=smx list_cc_files=1 $liboctave_dir/sparse-mx-ops) - echo "SMX_OP_SRC = $(echo $SMX_SRC)" > $liboctave_dir/smx-op-src.mk-t + echo "SMX_OP_SRC = $SMX_SRC" > $liboctave_dir/smx-op-src.mk-t $move_if_change $liboctave_dir/smx-op-src.mk-t $liboctave_dir/smx-op-src.mk ;; esac diff --git a/liboctave/dColVector.cc b/liboctave/dColVector.cc --- a/liboctave/dColVector.cc +++ b/liboctave/dColVector.cc @@ -212,12 +212,17 @@ if (nr != 0) { - double *y = retval.fortran_vec (); + if (nc == 0) + retval.fill (0.0); + else + { + double *y = retval.fortran_vec (); - F77_XFCN (dgemv, DGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), - nr, nc, 1.0, m.data (), nr, - a.data (), 1, 0.0, y, 1 - F77_CHAR_ARG_LEN (1))); + F77_XFCN (dgemv, DGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), + nr, nc, 1.0, m.data (), nr, + a.data (), 1, 0.0, y, 1 + F77_CHAR_ARG_LEN (1))); + } } } diff --git a/liboctave/fCColVector.cc b/liboctave/fCColVector.cc --- a/liboctave/fCColVector.cc +++ b/liboctave/fCColVector.cc @@ -346,12 +346,17 @@ if (nr != 0) { - FloatComplex *y = retval.fortran_vec (); + if (nc == 0) + retval.fill (0.0); + else + { + FloatComplex *y = retval.fortran_vec (); - F77_XFCN (cgemv, CGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), - nr, nc, 1.0f, m.data (), nr, - a.data (), 1, 0.0f, y, 1 - F77_CHAR_ARG_LEN (1))); + F77_XFCN (cgemv, CGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), + nr, nc, 1.0f, m.data (), nr, + a.data (), 1, 0.0f, y, 1 + F77_CHAR_ARG_LEN (1))); + } } } diff --git a/liboctave/fColVector.cc b/liboctave/fColVector.cc --- a/liboctave/fColVector.cc +++ b/liboctave/fColVector.cc @@ -211,12 +211,17 @@ if (nr != 0) { - float *y = retval.fortran_vec (); + if (nc == 0) + retval.fill (0.0); + else + { + float *y = retval.fortran_vec (); - F77_XFCN (sgemv, SGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), - nr, nc, 1.0f, m.data (), nr, - a.data (), 1, 0.0f, y, 1 - F77_CHAR_ARG_LEN (1))); + F77_XFCN (sgemv, SGEMV, (F77_CONST_CHAR_ARG2 ("N", 1), + nr, nc, 1.0f, m.data (), nr, + a.data (), 1, 0.0f, y, 1 + F77_CHAR_ARG_LEN (1))); + } } } diff --git a/liboctave/mk-ops.awk b/liboctave/mk-ops.awk --- a/liboctave/mk-ops.awk +++ b/liboctave/mk-ops.awk @@ -93,13 +93,13 @@ if (list_cc_files) { - print cc_file; + printf (" %s", cc_file); next; } if (list_h_files) { - print h_file; + printf (" %s", h_file); next; } diff --git a/liboctave/sparse-mk-ops.awk b/liboctave/sparse-mk-ops.awk --- a/liboctave/sparse-mk-ops.awk +++ b/liboctave/sparse-mk-ops.awk @@ -92,13 +92,13 @@ if (list_cc_files) { - print cc_file; + printf (" %s", cc_file); next; } if (list_h_files) { - print h_file; + printf (" %s", h_file); next; } diff --git a/src/Makefile.am b/src/Makefile.am --- a/src/Makefile.am +++ b/src/Makefile.am @@ -20,11 +20,13 @@ include $(top_srcdir)/build-aux/common.mk +## Search local directories before those specified by the user. AM_CPPFLAGS = \ - @CPPFLAGS@ -I../libgnu -I$(top_srcdir)/libgnu \ + -I../libgnu -I$(top_srcdir)/libgnu \ -I$(top_srcdir)/libcruft/misc \ -I../liboctave -I$(top_srcdir)/liboctave \ - -I. -I$(srcdir) + -I. -I$(srcdir) \ + @CPPFLAGS@ AUTOMAKE_OPTIONS = subdir-objects