Frobenius norm of a null matrix is not zero

View: New views
15 Messages — Rating Filter:   Alert me  

Frobenius norm of a null matrix is not zero

by Jean-Francois Cardoso-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

--------
Bug report for Octave 3.0.0 configured for i386-apple-darwin8.11.1

Description:
-----------

        The Frobenius norm of a null matrix is reported to be NaN
        and a warning is raised.

Repeat-By:
---------

        norm(zeros(5), "fro" )


Configuration (please do not edit this section):
-----------------------------------------------

uname output:     Darwin rajif 8.11.1 Darwin Kernel Version 8.11.1: Wed
Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
configure opts:   'LDFLAGS=-L/usr/local/lib'
'CPPFLAGS=-I/usr/local/include/readline'
Fortran compiler: gfortran
FFLAGS:           -O -mieee-fp
F2C:              @F2C@
F2CFLAGS:         @F2CFLAGS@
FLIBS:            -L/usr/local/lib
-L/usr/local/lib/gcc/i386-apple-darwin8.8.1/4.2.0
-L/usr/local/lib/gcc/i386-apple-darwin8.8.1/4.2.0/../../.. -lz -lm
-lgfortranbegin -lgfortran
CPPFLAGS:         -I/usr/local/include/readline -I/usr/local/include
INCFLAGS:         -I. -I. -I./liboctave -I./src -I./libcruft/misc
C compiler:       gcc, version 4.0.1 (Apple Computer, Inc. build 5367)
CFLAGS:           -g -O2
CPICFLAG:         -fPIC
C++ compiler:     g++, version 4.0.1
CXXFLAGS:         -g -O2
CXXPICFLAG:       -fPIC
LD_CXX:           g++
LDFLAGS:          -L/usr/local/lib
LIBFLAGS:         -L.
RLD_FLAG:
BLAS_LIBS:        -Wl,-framework -Wl,vecLib
FFTW_LIBS:        -lfftw3
LIBS:             -lreadline  -lncurses -lz -lm
LEXLIB:
LIBGLOB:
SED:              /usr/local/bin/sed
DEFS:

   -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION=""
   -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DOCTAVE_SOURCE=1
   -D_GNU_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
   -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
   -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSEPCHAR=':'
   -DSEPCHAR_STR=":" -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1
   -DCXX_ISO_COMPLIANT_LIBRARY=1 -DCXX_ABI=gnu_v3
-DCXX_PREPENDS_UNDERSCORE=1
   -DHAVE_LIBM=1 -DHAVE_QHULL=1 -DHAVE_PCRE=1 -DHAVE_REGEXEC=1
   -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1 -DHAVE_ZLIB=1 -DHAVE_FFTW3=1
   -DHAVE_GLPK_H=1 -DHAVE_GLPK=1 -DHAVE_IEEE754_DATA_FORMAT=1
   -DF77_FUNC(name,NAME)=name ## _ -DF77_FUNC_(name,NAME)=name ## _
   -DHAVE_BLAS=1 -DHAVE_GETHOSTNAME=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1
   -DHAVE_INO_T=1 -DHAVE_NLINK_T=1 -DHAVE_NLINK_T=1 -DHAVE_LONG_LONG_INT=1
   -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_SIGSET_T=1 -DHAVE_SIG_ATOMIC_T=1
   -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8
   -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DNPOS=std::string::npos
   -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1 -DSTDC_HEADERS=1
   -DHAVE_DIRENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1
   -DHAVE_ASSERT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1
   -DHAVE_FLOAT_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1
   -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1 -DHAVE_POLL_H=1
   -DHAVE_PWD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
   -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_POLL_H=1
   -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_STAT_H=1
   -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_SYS_TYPES_H=1
   -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1 -DHAVE_UNISTD_H=1
   -DHAVE_UTIME_H=1 -DHAVE_SSTREAM=1 -DHAVE_SGTTY_H=1 -DHAVE_GLOB_H=1
   -DHAVE_FNMATCH_H=1 -DHAVE_FNMATCH=1 -DHAVE_GLOB=1 -DHAVE_ATEXIT=1
   -DHAVE_BASENAME=1 -DHAVE_BCOPY=1 -DHAVE_BZERO=1 -DHAVE_CHMOD=1
   -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1
   -DHAVE_FCNTL=1 -DHAVE_FORK=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1
   -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1
   -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 -DHAVE_GETPPID=1
   -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_GETUID=1
   -DHAVE_GETWD=1 -DHAVE_KILL=1 -DHAVE_LGAMMA=1 -DHAVE_LINK=1
   -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT=1 -DHAVE_MEMMOVE=1 -DHAVE_MKDIR=1
   -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_PIPE=1 -DHAVE_POLL=1
   -DHAVE_PUTENV=1 -DHAVE_RAISE=1 -DHAVE_READLINK=1 -DHAVE_REALPATH=1
   -DHAVE_RENAME=1 -DHAVE_RINDEX=1 -DHAVE_RMDIR=1 -DHAVE_ROUND=1
   -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1 -DHAVE_SETPWENT=1
   -DHAVE_SETVBUF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGLONGJMP=1
-DHAVE_SIGPENDING=1
   -DHAVE_SIGPROCMASK=1 -DHAVE_SIGSUSPEND=1 -DHAVE_SNPRINTF=1 -DHAVE_STAT=1
   -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRERROR=1
-DHAVE_STRNCASECMP=1
   -DHAVE_STRPTIME=1 -DHAVE_STRSIGNAL=1 -DHAVE_SYMLINK=1 -DHAVE_TEMPNAM=1
   -DHAVE_TGAMMA=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1 -DHAVE_UNLINK=1
   -DHAVE_USLEEP=1 -DHAVE_UTIME=1 -DHAVE_VFPRINTF=1 -DHAVE_VSPRINTF=1
   -DHAVE_VSNPRINTF=1 -DHAVE_WAITPID=1 -DHAVE_STRFTIME=1
   -DOCTAVE_HAVE_BROKEN_STRPTIME=1 -DHAVE_DYLD_API=1
   -DENABLE_DYNAMIC_LINKING=1 -DHAVE_TIMEVAL=1 -DHAVE_FINITE=1
   -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_COPYSIGN=1 -DHAVE_DECL_SIGNBIT=1
   -DHAVE_ACOSH=1 -DHAVE_ASINH=1 -DHAVE_ATANH=1 -DHAVE_ERF=1 -DHAVE_ERFC=1
   -DHAVE_EXP2=1 -DHAVE_LOG2=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1
   -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1
   -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1
   -DEXCEPTION_IN_MATH=1 -DRETSIGTYPE=void -DHAVE_DECL_SYS_SIGLIST=1
   -DHAVE_POSIX_SIGNALS=1 -DRETSIGTYPE_IS_VOID=1 -DHAVE_GETRUSAGE=1
   -DHAVE_TIMES=1 -DYYTEXT_POINTER=1 -DGNUPLOT_BINARY="gnuplot"

User-preferences (please do not edit this section):
--------------------------------------------------

   EDITOR = emacs
   EXEC_PATH =
/usr/local/libexec/octave/3.0.0/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/api-v32/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/3.0.0/exec/i386-apple-darwin8.11.1:/usr/local/bin:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/Users/cardoso/bin:/Users/cardoso/bin:/Users/cardoso/local/bin:/Volumes/partage/Soft/Astro/Healpix_2.01/src/cxx/generic_gcc/bin
   IMAGE_PATH = .:/usr/local/share/octave/3.0.0/imagelib
   PAGER = less
   PS1 = \s:\#>
   PS2 = >
   PS4 = +
   beep_on_error = 0
   completion_append_char =
   crash_dumps_octave_core = 1
   echo_executing_commands = 0
   fixed_point_format = 0
   gnuplot_binary = /usr/local/bin/gnuplot
   gnuplot_command_end =

   gnuplot_command_plot = pl
   gnuplot_command_replot = rep
   gnuplot_command_splot = sp
   gnuplot_command_title = t
   gnuplot_command_using = u
   gnuplot_command_with = w
   history_file = /Users/cardoso/.octave_hist
   history_size = 1024
   ignore_function_time_stamp = system
   info_file = /usr/local/share/info/octave.info
   info_program = info
   makeinfo_program = makeinfo
   max_recursion_depth = 256
   output_max_field_width = 5
   output_precision = 5
   page_output_immediately = 1
   page_screen_output = 0
   print_answer_id_name = 1
   print_empty_dimensions = 1
   save_precision = 16
   saving_history = 1
   sighup_dumps_octave_core = 1
   sigterm_dumps_octave_core = 1
   silent_functions = 0
   split_long_rows = 1
   string_fill_char =
   struct_levels_to_print = 2
   suppress_verbose_help_message = 0
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero

by Rolf Fabian :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

This fixes the problem.
Sorry, no time to send patches etc ....

Rolf Fabian

< r dot fabian at jacobs-university dot de >


## Copyright (C) 1996, 1997, 2007 John W. Eaton
##
## This file is part of Octave.
##
## Octave 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 3 of the License, or (at
## your option) any later version.
##
## Octave 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 Octave; see the file COPYING.  If not, see
## <http://www.gnu.org/licenses/>.

## Undocumented internal function.

## Author: jwe

function retval = __norm__ (x, p)

  if (nargin < 1 || nargin > 2)
    print_usage ();
  endif

  if (isempty (x))
    retval = [];
    return;
  endif

  if (ndims (x) > 2)
    error ("norm: only valid on 2-D objects")
  endif

  if (nargin == 1)
    p = 2;
  endif

  ## Do we have a vector or matrix as the first argument?
  if (ndims(x) == 2 && (rows (x) == 1 || columns (x) == 1))
    if (ischar (p))
      if (strcmp (p, "fro"))
        inf_norm = norm (x, "inf");
        if ( inf_norm )
          retval = inf_norm .* sqrt (sum (abs (x ./ inf_norm) .^ 2));
        else
          retval = inf_norm;
        endif
      elseif (strcmp (p, "inf"))
        retval = max (abs (x));
      else
        error ("norm: unrecognized norm");
      endif
    else
      if (p == Inf)
        retval = max (abs (x));
      elseif (p == -Inf)
        retval = min (abs (x));
      elseif (p == 1)
        retval = sum (abs (x));
      elseif (p == 2)
        if (iscomplex (x))
          x = abs (x);
        endif
        retval = sqrt (sumsq (x));
      else
        retval = sum (abs (x) .^ p) ^ (1/p);
      endif
    endif
  else
    if (ischar (p))
      if (strcmp (p, "fro"))
        inf_norm = norm (x, "inf");
        if ( inf_norm )
          retval = inf_norm .* sqrt (sum (sum (abs (x ./ inf_norm) .^ 2)));
        else
          retval = inf_norm;
        endif
    elseif (strcmp (p, "inf"))
        retval = max (sum (abs (x.')));
      else
        error ("norm: unrecognized vector norm");
      endif
    else
      if (p == 1)
        retval = max (sum (abs (x)));
      elseif (p == 2)
        s = svd (x);
        retval = s (1);
      elseif (p == Inf)
        retval = max (sum (abs (x.')));
      else
        error ("norm: unrecognized matrix norm");
      endif
    endif
  endif

endfunction




Jean-Francois Cardoso wrote:
--------
Bug report for Octave 3.0.0 configured for i386-apple-darwin8.11.1

Description:
-----------

        The Frobenius norm of a null matrix is reported to be NaN
        and a warning is raised.

Repeat-By:
---------

        norm(zeros(5), "fro" )


Configuration (please do not edit this section):
-----------------------------------------------

uname output:     Darwin rajif 8.11.1 Darwin Kernel Version 8.11.1: Wed
Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
configure opts:   'LDFLAGS=-L/usr/local/lib'
'CPPFLAGS=-I/usr/local/include/readline'
Fortran compiler: gfortran
FFLAGS:           -O -mieee-fp
F2C:              @F2C@
F2CFLAGS:         @F2CFLAGS@
FLIBS:            -L/usr/local/lib
-L/usr/local/lib/gcc/i386-apple-darwin8.8.1/4.2.0
-L/usr/local/lib/gcc/i386-apple-darwin8.8.1/4.2.0/../../.. -lz -lm
-lgfortranbegin -lgfortran
CPPFLAGS:         -I/usr/local/include/readline -I/usr/local/include
INCFLAGS:         -I. -I. -I./liboctave -I./src -I./libcruft/misc
C compiler:       gcc, version 4.0.1 (Apple Computer, Inc. build 5367)
CFLAGS:           -g -O2
CPICFLAG:         -fPIC
C++ compiler:     g++, version 4.0.1
CXXFLAGS:         -g -O2
CXXPICFLAG:       -fPIC
LD_CXX:           g++
LDFLAGS:          -L/usr/local/lib
LIBFLAGS:         -L.
RLD_FLAG:
BLAS_LIBS:        -Wl,-framework -Wl,vecLib
FFTW_LIBS:        -lfftw3
LIBS:             -lreadline  -lncurses -lz -lm
LEXLIB:
LIBGLOB:
SED:              /usr/local/bin/sed
DEFS:

   -DPACKAGE_NAME="" -DPACKAGE_TARNAME="" -DPACKAGE_VERSION=""
   -DPACKAGE_STRING="" -DPACKAGE_BUGREPORT="" -DOCTAVE_SOURCE=1
   -D_GNU_SOURCE=1 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1
   -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1
   -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DSEPCHAR=':'
   -DSEPCHAR_STR=":" -D__NO_MATH_INLINES=1 -DCXX_NEW_FRIEND_TEMPLATE_DECL=1
   -DCXX_ISO_COMPLIANT_LIBRARY=1 -DCXX_ABI=gnu_v3
-DCXX_PREPENDS_UNDERSCORE=1
   -DHAVE_LIBM=1 -DHAVE_QHULL=1 -DHAVE_PCRE=1 -DHAVE_REGEXEC=1
   -DHAVE_REGEX=1 -DHAVE_ZLIB_H=1 -DHAVE_ZLIB=1 -DHAVE_FFTW3=1
   -DHAVE_GLPK_H=1 -DHAVE_GLPK=1 -DHAVE_IEEE754_DATA_FORMAT=1
   -DF77_FUNC(name,NAME)=name ## _ -DF77_FUNC_(name,NAME)=name ## _
   -DHAVE_BLAS=1 -DHAVE_GETHOSTNAME=1 -DHAVE_GETPWNAM=1 -DHAVE_DEV_T=1
   -DHAVE_INO_T=1 -DHAVE_NLINK_T=1 -DHAVE_NLINK_T=1 -DHAVE_LONG_LONG_INT=1
   -DHAVE_UNSIGNED_LONG_LONG_INT=1 -DHAVE_SIGSET_T=1 -DHAVE_SIG_ATOMIC_T=1
   -DSIZEOF_SHORT=2 -DSIZEOF_INT=4 -DSIZEOF_LONG=4 -DSIZEOF_LONG_LONG=8
   -DHAVE_ALLOCA_H=1 -DHAVE_ALLOCA=1 -DNPOS=std::string::npos
   -DHAVE_PLACEMENT_DELETE=1 -DHAVE_DYNAMIC_AUTO_ARRAYS=1 -DSTDC_HEADERS=1
   -DHAVE_DIRENT_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_SYS_WAIT_H=1
   -DHAVE_ASSERT_H=1 -DHAVE_CURSES_H=1 -DHAVE_DLFCN_H=1 -DHAVE_FCNTL_H=1
   -DHAVE_FLOAT_H=1 -DHAVE_GRP_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_LIMITS_H=1
   -DHAVE_LOCALE_H=1 -DHAVE_MEMORY_H=1 -DHAVE_NCURSES_H=1 -DHAVE_POLL_H=1
   -DHAVE_PWD_H=1 -DHAVE_STDINT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1
   -DHAVE_SYS_IOCTL_H=1 -DHAVE_SYS_PARAM_H=1 -DHAVE_SYS_POLL_H=1
   -DHAVE_SYS_RESOURCE_H=1 -DHAVE_SYS_SELECT_H=1 -DHAVE_SYS_STAT_H=1
   -DHAVE_SYS_TIME_H=1 -DHAVE_SYS_TIMES_H=1 -DHAVE_SYS_TYPES_H=1
   -DHAVE_SYS_UTSNAME_H=1 -DHAVE_TERMCAP_H=1 -DHAVE_UNISTD_H=1
   -DHAVE_UTIME_H=1 -DHAVE_SSTREAM=1 -DHAVE_SGTTY_H=1 -DHAVE_GLOB_H=1
   -DHAVE_FNMATCH_H=1 -DHAVE_FNMATCH=1 -DHAVE_GLOB=1 -DHAVE_ATEXIT=1
   -DHAVE_BASENAME=1 -DHAVE_BCOPY=1 -DHAVE_BZERO=1 -DHAVE_CHMOD=1
   -DHAVE_DUP2=1 -DHAVE_ENDGRENT=1 -DHAVE_ENDPWENT=1 -DHAVE_EXECVP=1
   -DHAVE_FCNTL=1 -DHAVE_FORK=1 -DHAVE_GETCWD=1 -DHAVE_GETEGID=1
   -DHAVE_GETEUID=1 -DHAVE_GETGID=1 -DHAVE_GETGRENT=1 -DHAVE_GETGRGID=1
   -DHAVE_GETGRNAM=1 -DHAVE_GETPGRP=1 -DHAVE_GETPID=1 -DHAVE_GETPPID=1
   -DHAVE_GETPWENT=1 -DHAVE_GETPWUID=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_GETUID=1
   -DHAVE_GETWD=1 -DHAVE_KILL=1 -DHAVE_LGAMMA=1 -DHAVE_LINK=1
   -DHAVE_LOCALTIME_R=1 -DHAVE_LSTAT=1 -DHAVE_MEMMOVE=1 -DHAVE_MKDIR=1
   -DHAVE_MKFIFO=1 -DHAVE_MKSTEMP=1 -DHAVE_PIPE=1 -DHAVE_POLL=1
   -DHAVE_PUTENV=1 -DHAVE_RAISE=1 -DHAVE_READLINK=1 -DHAVE_REALPATH=1
   -DHAVE_RENAME=1 -DHAVE_RINDEX=1 -DHAVE_RMDIR=1 -DHAVE_ROUND=1
   -DHAVE_SELECT=1 -DHAVE_SETGRENT=1 -DHAVE_SETLOCALE=1 -DHAVE_SETPWENT=1
   -DHAVE_SETVBUF=1 -DHAVE_SIGACTION=1 -DHAVE_SIGLONGJMP=1
-DHAVE_SIGPENDING=1
   -DHAVE_SIGPROCMASK=1 -DHAVE_SIGSUSPEND=1 -DHAVE_SNPRINTF=1 -DHAVE_STAT=1
   -DHAVE_STRCASECMP=1 -DHAVE_STRDUP=1 -DHAVE_STRERROR=1
-DHAVE_STRNCASECMP=1
   -DHAVE_STRPTIME=1 -DHAVE_STRSIGNAL=1 -DHAVE_SYMLINK=1 -DHAVE_TEMPNAM=1
   -DHAVE_TGAMMA=1 -DHAVE_UMASK=1 -DHAVE_UNAME=1 -DHAVE_UNLINK=1
   -DHAVE_USLEEP=1 -DHAVE_UTIME=1 -DHAVE_VFPRINTF=1 -DHAVE_VSPRINTF=1
   -DHAVE_VSNPRINTF=1 -DHAVE_WAITPID=1 -DHAVE_STRFTIME=1
   -DOCTAVE_HAVE_BROKEN_STRPTIME=1 -DHAVE_DYLD_API=1
   -DENABLE_DYNAMIC_LINKING=1 -DHAVE_TIMEVAL=1 -DHAVE_FINITE=1
   -DHAVE_ISNAN=1 -DHAVE_ISINF=1 -DHAVE_COPYSIGN=1 -DHAVE_DECL_SIGNBIT=1
   -DHAVE_ACOSH=1 -DHAVE_ASINH=1 -DHAVE_ATANH=1 -DHAVE_ERF=1 -DHAVE_ERFC=1
   -DHAVE_EXP2=1 -DHAVE_LOG2=1 -DHAVE_STRUCT_STAT_ST_BLKSIZE=1
   -DHAVE_STRUCT_STAT_ST_BLOCKS=1 -DHAVE_STRUCT_STAT_ST_RDEV=1
   -DHAVE_STRUCT_TM_TM_ZONE=1 -DHAVE_TM_ZONE=1 -DUSE_READLINE=1
   -DEXCEPTION_IN_MATH=1 -DRETSIGTYPE=void -DHAVE_DECL_SYS_SIGLIST=1
   -DHAVE_POSIX_SIGNALS=1 -DRETSIGTYPE_IS_VOID=1 -DHAVE_GETRUSAGE=1
   -DHAVE_TIMES=1 -DYYTEXT_POINTER=1 -DGNUPLOT_BINARY="gnuplot"

User-preferences (please do not edit this section):
--------------------------------------------------

   EDITOR = emacs
   EXEC_PATH =
/usr/local/libexec/octave/3.0.0/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/api-v32/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/site/exec/i386-apple-darwin8.11.1:/usr/local/libexec/octave/3.0.0/exec/i386-apple-darwin8.11.1:/usr/local/bin:/sw/bin:/sw/sbin:/bin:/sbin:/usr/bin:/usr/sbin:/usr/X11R6/bin:/usr/local/bin:/Users/cardoso/bin:/Users/cardoso/bin:/Users/cardoso/local/bin:/Volumes/partage/Soft/Astro/Healpix_2.01/src/cxx/generic_gcc/bin
   IMAGE_PATH = .:/usr/local/share/octave/3.0.0/imagelib
   PAGER = less
   PS1 = \s:\#>
   PS2 = >
   PS4 = +
   beep_on_error = 0
   completion_append_char =
   crash_dumps_octave_core = 1
   echo_executing_commands = 0
   fixed_point_format = 0
   gnuplot_binary = /usr/local/bin/gnuplot
   gnuplot_command_end =

   gnuplot_command_plot = pl
   gnuplot_command_replot = rep
   gnuplot_command_splot = sp
   gnuplot_command_title = t
   gnuplot_command_using = u
   gnuplot_command_with = w
   history_file = /Users/cardoso/.octave_hist
   history_size = 1024
   ignore_function_time_stamp = system
   info_file = /usr/local/share/info/octave.info
   info_program = info
   makeinfo_program = makeinfo
   max_recursion_depth = 256
   output_max_field_width = 5
   output_precision = 5
   page_output_immediately = 1
   page_screen_output = 0
   print_answer_id_name = 1
   print_empty_dimensions = 1
   save_precision = 16
   saving_history = 1
   sighup_dumps_octave_core = 1
   sigterm_dumps_octave_core = 1
   silent_functions = 0
   split_long_rows = 1
   string_fill_char =
   struct_levels_to_print = 2
   suppress_verbose_help_message = 0
_______________________________________________
Bug-octave mailing list
Bug-octave@octave.org
https://www.cae.wisc.edu/mailman/listinfo/bug-octave
Rolf Fabian
<r dot fabian at jacobs-university dot de>

Re: Frobenius norm of a null matrix is not zero

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 11-Jan-2008, Rolf Fabian wrote:

|
| This fixes the problem.
| Sorry, no time to send patches etc ....

Sorry, how hard is it to run diff -u my-orig-file my-new-file?

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero

by jfc :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

John W. Eaton wrote:
| Sorry, no time to send patches etc ....
Sorry, how hard is it to run diff -u my-orig-file my-new-file?
jwe
Hi there,

I sent a patch about two weeks ago:

http://www.nabble.com/Bug%2Bpatch%3A--norm%28X%2C-%22fro%22%29-fails-when-X-has-zero-norm-p14550359.html

Best, JF

Re: Frobenius norm of a null matrix is not zero

by Rolf Fabian :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

You should not expect that anybody doing work for Octave is
doing it always on a UNIX system.

E.g. trying to use 'diff.exe' (which is distributed as part of
'msys' shell with the Octave 3.0.0 windows installer) from
within a Windows XP command prompt ('cmd') results in :

   Microsoft Windows XP [Version 5.1.2600]
   (C) Copyright 1985-2001 Microsoft Corp.

   C:\WINDOWS\system32> diff --help
   'diff' is not recognized as an internal or external command,
   operable program or batch file.

Obviously appropriate system paths for 'msys' were not added
during the installation process ( at least on the system I used ).

I needed some time to figure out, that in order to use 'diff'
implemented in the Windows 'msys' - shell is expected to be
used from the Octave prompt using Octave's "system"-command
( then 'msys'-functions are obviously found ):

octave-3.0.0.exe:1>
system ("diff  -u  old_file.m  new_file.m  >  new_file.patch")

which is a bit different from your oversimplification above.

Rolf Fabian


John W. Eaton wrote:
On 11-Jan-2008, Rolf Fabian wrote:

|
| This fixes the problem.
| Sorry, no time to send patches etc ....

Sorry, how hard is it to run diff -u my-orig-file my-new-file?

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@octave.org
https://www.cae.wisc.edu/mailman/listinfo/bug-octave
Rolf Fabian
<r dot fabian at jacobs-university dot de>

Re: Frobenius norm of a null matrix is not zero

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Jan 14, 2008, at 5:37 AM, Rolf Fabian wrote:

>
> You should not expect that anybody doing work for Octave is
> doing it always on a UNIX system.
>
> E.g. trying to use 'diff.exe' (which is distributed as part of
> 'msys' shell with the Octave 3.0.0 windows installer) from
> within a Windows XP command prompt ('cmd') results in :
>
>   Microsoft Windows XP [Version 5.1.2600]
>   (C) Copyright 1985-2001 Microsoft Corp.
>
>   C:\WINDOWS\system32> diff --help
>   'diff' is not recognized as an internal or external command,
>   operable program or batch file.
>
> Obviously appropriate system paths for 'msys' were not added
> during the installation process ( at least on the system I used ).
>
> I needed some time to figure out, that in order to use 'diff'
> implemented in the Windows 'msys' - shell is expected to be
> used from the Octave prompt using Octave's "system"-command
> ( then 'msys'-functions are obviously found ):
>
> octave-3.0.0.exe:1>
> system ("diff  -u  old_file.m  new_file.m  >  new_file.patch")
>
> which is a bit different from your oversimplification above.
>
> Rolf Fabian
>
>
>
> John W. Eaton wrote:
>>
>> On 11-Jan-2008, Rolf Fabian wrote:
>>
>> |
>> | This fixes the problem.
>> | Sorry, no time to send patches etc ....
>>
>> Sorry, how hard is it to run diff -u my-orig-file my-new-file?
>>
>> jwe
>>
> -----
> Rolf Fabian
> <r dot fabian at jacobs-university dot de>


Rolf,

It appears to me that the changes you made and those of jfc were  
different (at least a diff of yours produced a larger result).

Are jfc's in fact the same, or sufficient?

Ben

_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero

by Rolf Fabian :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Right, I did more changes.

Besides catching the 'division by zero' errors which appeared
for both input shapes (vector & matrix) of Frobenius norm (p='fro'),
I also applied minor changes to modes (p='inf') and (p=Inf) of the
the infinity norm which is used for scaling the input in the Frobenius
case.

Conceptually, infinity norm (largest sum of abs of row elements ) of
a (non-vector) matrix x may be calculated as the 1-norm
(largest sum of abs of column elements ) of the transposed
input matrix x.' , thus  
"retval = max (sum (abs (x.')));"  
should be appropriate for matrix infinity norm case in the
'__norm__.m' code.

Instead,  Octave used  "retval = max (sum (abs (x')));"
as long as I can remember back ( >10 y ).
Of course, the result for 'retval' in both code snippets is
the same ( as a consequence of the invoked abs-function ),
but I thought it's really time now to remove this confusing
redundant complex conjugation of the transposed matrix while
evaluating matrix infinity norm.

Rolf Fabian

<r dot fabian at jacobs-university dot de>


Ben Abbott wrote:
On Jan 14, 2008, at 5:37 AM, Rolf Fabian wrote:

>
> You should not expect that anybody doing work for Octave is
> doing it always on a UNIX system.
>
> E.g. trying to use 'diff.exe' (which is distributed as part of
> 'msys' shell with the Octave 3.0.0 windows installer) from
> within a Windows XP command prompt ('cmd') results in :
>
>   Microsoft Windows XP [Version 5.1.2600]
>   (C) Copyright 1985-2001 Microsoft Corp.
>
>   C:\WINDOWS\system32> diff --help
>   'diff' is not recognized as an internal or external command,
>   operable program or batch file.
>
> Obviously appropriate system paths for 'msys' were not added
> during the installation process ( at least on the system I used ).
>
> I needed some time to figure out, that in order to use 'diff'
> implemented in the Windows 'msys' - shell is expected to be
> used from the Octave prompt using Octave's "system"-command
> ( then 'msys'-functions are obviously found ):
>
> octave-3.0.0.exe:1>
> system ("diff  -u  old_file.m  new_file.m  >  new_file.patch")
>
> which is a bit different from your oversimplification above.
>
> Rolf Fabian
>
>
>
> John W. Eaton wrote:
>>
>> On 11-Jan-2008, Rolf Fabian wrote:
>>
>> |
>> | This fixes the problem.
>> | Sorry, no time to send patches etc ....
>>
>> Sorry, how hard is it to run diff -u my-orig-file my-new-file?
>>
>> jwe
>>
> -----
> Rolf Fabian
> <r dot fabian at jacobs-university dot de>


Rolf,

It appears to me that the changes you made and those of jfc were  
different (at least a diff of yours produced a larger result).

Are jfc's in fact the same, or sufficient?

Ben

_______________________________________________
Bug-octave mailing list
Bug-octave@octave.org
https://www.cae.wisc.edu/mailman/listinfo/bug-octave
Rolf Fabian
<r dot fabian at jacobs-university dot de>

Re: Frobenius norm of a null matrix is not zero

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Monday, January 14, 2008, at 09:16AM, "Rolf Fabian" <Rolf.Fabian@...> wrote:

>
>
>Ben Abbott wrote:
>>
>>
>> On Jan 14, 2008, at 5:37 AM, Rolf Fabian wrote:
>>
>>>
>>> You should not expect that anybody doing work for Octave is
>>> doing it always on a UNIX system.
>>>
>>> E.g. trying to use 'diff.exe' (which is distributed as part of
>>> 'msys' shell with the Octave 3.0.0 windows installer) from
>>> within a Windows XP command prompt ('cmd') results in :
>>>
>>>   Microsoft Windows XP [Version 5.1.2600]
>>>   (C) Copyright 1985-2001 Microsoft Corp.
>>>
>>>   C:\WINDOWS\system32> diff --help
>>>   'diff' is not recognized as an internal or external command,
>>>   operable program or batch file.
>>>
>>> Obviously appropriate system paths for 'msys' were not added
>>> during the installation process ( at least on the system I used ).
>>>
>>> I needed some time to figure out, that in order to use 'diff'
>>> implemented in the Windows 'msys' - shell is expected to be
>>> used from the Octave prompt using Octave's "system"-command
>>> ( then 'msys'-functions are obviously found ):
>>>
>>> octave-3.0.0.exe:1>
>>> system ("diff  -u  old_file.m  new_file.m  >  new_file.patch")
>>>
>>> which is a bit different from your oversimplification above.
>>>
>>> Rolf Fabian
>>>
>>>
>>>
>>> John W. Eaton wrote:
>>>>
>>>> On 11-Jan-2008, Rolf Fabian wrote:
>>>>
>>>> |
>>>> | This fixes the problem.
>>>> | Sorry, no time to send patches etc ....
>>>>
>>>> Sorry, how hard is it to run diff -u my-orig-file my-new-file?
>>>>
>>>> jwe
>>>>
>>> -----
>>> Rolf Fabian
>>> <r dot fabian at jacobs-university dot de>
>>
>>
>> Rolf,
>>
>> It appears to me that the changes you made and those of jfc were  
>> different (at least a diff of yours produced a larger result).
>>
>> Are jfc's in fact the same, or sufficient?
>>
>> Ben
>>
>
>Right, I did more changes.
>
>Besides catching the 'division by zero' errors which appeared
>for both input shapes (vector & matrix) of Frobenius norm (p='fro'),
>I also applied minor changes to modes (p='inf') and (p=Inf) of the
>the infinity norm which is used for scaling the input in the Frobenius
>case.
>
>Conceptually, infinity norm (largest sum of abs of row elements ) of
>a (non-vector) matrix x may be calculated as the 1-norm
>(largest sum of abs of column elements ) of the transposed
>input matrix x.' , thus  
>"retval = max (sum (abs (x.')));"  
>should be appropriate for matrix infinity norm case in the
>'__norm__.m' code.
>
>Instead,  Octave used  "retval = max (sum (abs (x')));"
>as long as I can remember back ( >10 y ).
>Of course, the result for 'retval' in both code snippets is
>the same ( as a consequence of the invoked abs-function ),
>but I thought it's really time now to remove this confusing
>redundant complex conjugation of the transposed matrix while
>evaluating matrix infinity norm.
>
>Rolf Fabian
><r dot fabian at jacobs-university dot de>
>

Ok. It sounds like you're version is to be preferred over the one submitted by jfc, correct?

If so perhaps a patch and changelog can be created?

It would also be useful to add some test scripts. If you're unfamiliar with those I can add them. I just need some examples of how  __norm__ is used.

Ben
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 14-Jan-2008, Ben Abbott wrote:

| Ok. It sounds like you're version is to be preferred over the one
| submitted by jfc, correct?
|
| If so perhaps a patch and changelog can be created?
|
| It would also be useful to add some test scripts. If you're
| unfamiliar with those I can add them. I just need some examples of
| how __norm__ is used.

It would be helpful if you could submit a new patch that reconciles
the two proposed patches and includes a ChangeLog entry.

Thanks,

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Jan 14, 2008, at 7:14 PM, John W. Eaton wrote:

> On 14-Jan-2008, Ben Abbott wrote:
>
> | Ok. It sounds like you're version is to be preferred over the one
> | submitted by jfc, correct?
> |
> | If so perhaps a patch and changelog can be created?
> |
> | It would also be useful to add some test scripts. If you're
> | unfamiliar with those I can add them. I just need some examples of
> | how __norm__ is used.
>
> It would be helpful if you could submit a new patch that reconciles
> the two proposed patches and includes a ChangeLog entry.
>
> Thanks,
>
> jwe

I'm hoping Rolf will do so. This is outside my area of expertise.  
However, if Rolf doesn't have the time, I'll study the problem and do  
it myself.

Ben
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero (patch & changelog)

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message


On Jan 14, 2008, at 7:14 PM, John W. Eaton wrote:

> On 14-Jan-2008, Ben Abbott wrote:
>
> | Ok. It sounds like you're version is to be preferred over the one
> | submitted by jfc, correct?
> |
> | If so perhaps a patch and changelog can be created?
> |
> | It would also be useful to add some test scripts. If you're
> | unfamiliar with those I can add them. I just need some examples of
> | how __norm__ is used.
>
> It would be helpful if you could submit a new patch that reconciles
> the two proposed patches and includes a ChangeLog entry.
>
> Thanks,
>
> jwe
I looked up the Frobenius norm ... a rather simple calculation.

I've attached the patch and ChangeLog. Both jfc's and Rolf's changes  
fixed the bug.
Rolf went further and modified the transpose operators to avoid the  
time needed for
the conjugate. I added some tests.

        2008-01-11  Ben Abbott <bpabbott@...>

        * linear-algebra/__norm__.m: Bug fix. norm (X, "fro") now works in the
        event that  X is a matrix of zeros. Tabs were converted to spaces
        to ensure consistent formatting. Some transpose operators ("'") were
        converted to the non-conjugate form (".'") to save time. Added tests.





_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

__norm__.diff (2K) Download Attachment

Re: Frobenius norm of a null matrix is not zero (patch & changelog)

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 14-Jan-2008, Ben Abbott wrote:

| I looked up the Frobenius norm ... a rather simple calculation.
|
| I've attached the patch and ChangeLog. Both jfc's and Rolf's changes  
| fixed the bug.
| Rolf went further and modified the transpose operators to avoid the  
| time needed for
| the conjugate. I added some tests.
|
| 2008-01-11  Ben Abbott <bpabbott@...>
|
| * linear-algebra/__norm__.m: Bug fix. norm (X, "fro") now works in the
| event that  X is a matrix of zeros.

I applied this patch and checked it in.

| Tabs were converted to spaces
| to ensure consistent formatting.

Please don't bother doing this.  We assume people are reading the
Octave sources in a fixed-width font with 8-space tabs as god
indented.

Thanks,

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Re: Frobenius norm of a null matrix is not zero (patch & changelog)

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 15-Jan-2008, John W. Eaton wrote:

| On 14-Jan-2008, Ben Abbott wrote:
|
| | Rolf went further and modified the transpose operators to avoid the  
| | time needed for
| | the conjugate.

I looked at this again and decided to go with

  sum (abs (x), 2)

instead of

  sum (abs (x.'))

Can you think of any reason not to do this?  I think the transpose
here is something inherited from the dark ages when the sum function
did not have a DIM argument.

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

Frobenius norm of a matrix containing NaN/Inf (NEW patch & changelog)

by Ben Abbott :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Rolf noticed that matrices containing "NaN" or "inf" were not handled  
properly by __norm__(). He produced a fix and asked me to submit the  
patch.

It is attached.

Ben




_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave

__norm__.patch (1K) Download Attachment
ChangeLog (187 bytes) Download Attachment

Frobenius norm of a matrix containing NaN/Inf (NEW patch & changelog)

by John W. Eaton :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 15-Jan-2008, Ben Abbott wrote:

| Rolf noticed that matrices containing "NaN" or "inf" were not handled  
| properly by __norm__(). He produced a fix and asked me to submit the  
| patch.

I applied this patch and checked it in.

Thanks,

jwe
_______________________________________________
Bug-octave mailing list
Bug-octave@...
https://www.cae.wisc.edu/mailman/listinfo/bug-octave