view liboctave/cruft/blas-xtra/zconv2.f @ 16499:facf00ce97d3

gui: configurable synchronization between file browser and octave directory * default-qt-settings: all settings of the file browser are now located in its section, new setting sync_octave_directory * files-dock-widget.cc(constructor): make QToolBar and QAction variables local, add two buttons for syncing from octave to file browser and vice versa, change status-tips into tool-tips * files-dock-widget.cc(set_current_directory): do not emit signal displayed_directory_changed (would change octave dir) * files-dock-widget.cc(do_sync_octave_directory): new function for manually setting the octave dir to the one in the file browser * files-dock-widget.cc(do_sync_browser_directory): new function for manually setting the file browser to the octave directory * files-dock-widget.cc(update_octave_directory): new function called from the main-window when the octave directory has changed * files-doc-widget.cc(display_directory): new second parameter (bool, default is true) determining whether the signal with the new displayed directory should be emitted if synchronizing is enabled * files-dock-widget.cc(notice-settings): read new setting, enalbe or disable the sync buttons and set file browser to octave directory depending on setting * files-dock-widget.h: removed QToolBar and QAction variibles, new varaibles for storing the actual octave directory and whether syncing is desired or not, new functions (do_sync_octave_directory, do_sync_browser_directory, update_octave_directory), function display_directory with second parameter (bool, default true) * libgui/src/icons/ok.png,libgui/src/icons/reload.png: new icons for the toolbar * main-window.cc(change_directory): call new function update_octave_directory instead of display_directory * main-window.cc(construct-window-menu): rename "Current Directory" into "File Browser" * libgui/src/module.mk: new files icons/ok.png and icons/reload.png * settings-dialog.cc(constructor,write_changed_settings): all files-dock-widgets settings in a section, new setting sync_octave_directory * settings-dialog.ui: new setting sync_octave_directory
author Torsten <ttl@justmail.de>
date Thu, 11 Apr 2013 19:01:55 +0200
parents 648dabbb4c6b
children
line wrap: on
line source

c Copyright (C) 2010-2012  VZLU Prague, a.s., Czech Republic
c
c Author: Jaroslav Hajek <highegg@gmail.com>
c
c This file is part of Octave.
c
c Octave is free software; you can redistribute it and/or modify
c it under the terms of the GNU General Public License as published by
c the Free Software Foundation; either version 3 of the License, or
c (at your option) any later version.
c
c This program is distributed in the hope that it will be useful,
c but WITHOUT ANY WARRANTY; without even the implied warranty of
c MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
c GNU General Public License for more details.
c
c You should have received a copy of the GNU General Public License
c along with this software; see the file COPYING.  If not, see
c <http://www.gnu.org/licenses/>.
c
      subroutine zconv2o(ma,na,a,mb,nb,b,c)
c purpose:      a 2-dimensional outer additive convolution.
c               equivalent to the following:
c                 for i = 1:ma
c                   for j = 1:na
c                     c(i:i+mb-1,j:j+mb-1) += a(i,j)*b
c                   endfor
c                 endfor
c arguments:
c ma,na (in)    dimensions of a
c a (in)        1st matrix
c mb,nb (in)    dimensions of b
c b (in)        2nd matrix
c c (inout)     accumulator matrix, size (ma+mb-1, na+nb-1)
c
      integer ma,na,mb,nb
      double complex a(ma,na),b(mb,nb)
      double complex c(ma+mb-1,na+nb-1)
      integer i,j,k
      external zaxpy
      do k = 1,na
        do j = 1,nb
          do i = 1,mb
            call zaxpy(ma,b(i,j),a(1,k),1,c(i,j+k-1),1)
          end do
        end do
      end do
      end subroutine

      subroutine zconv2i(ma,na,a,mb,nb,b,c)
c purpose:      a 2-dimensional inner additive convolution.
c               equivalent to the following:
c                 for i = 1:ma-mb+1
c                   for j = 1:na-nb+1
c                     c(i,j) = sum (sum (a(i+mb-1:-1:i,j+nb-1:-1:j) .* b))
c                   endfor
c                 endfor
c arguments:
c ma,na (in)    dimensions of a
c a (in)        1st matrix
c mb,nb (in)    dimensions of b
c b (in)        2nd matrix
c c (inout)     accumulator matrix, size (ma+mb-1, na+nb-1)
c
      integer ma,na,mb,nb
      double complex a(ma,na),b(mb,nb)
      double complex c(ma-mb+1,na-nb+1)
      integer i,j,k
      external zaxpy
      do k = 1,na-nb+1
        do j = 1,nb
          do i = 1,mb
            call zaxpy(ma-mb+1,b(i,j),a(mb+1-i,k+nb-j),1,c(1,k),1)
          end do
        end do
      end do
      end subroutine